Страница 1 из 1

Помгите с Ассемблером!!ПОЖАЛУЙСТА!!!

Добавлено: 16 янв 2013, 02:13
Vovik59
Задание:При выводе результата пробел делать после каждой цифры.
Вот код самой программы:
title LaborRabota1

sts SEGMENT PARA STACK 'Stack'
DW 32 DUP (?)
sts ENDS

data SEGMENT
mes1 db 'Enter',0Ah,0Dh,'$'
mes2 db '1st',0Ah,0Dh,'$'
mes3 db 10,13,'2nd',0Ah,0Dh,'$'
mes4 db 10,13,'Rezult ',0Ah,0Dh,'$'
famm db 21,?
fam dw 10 dup (?)
tabss db 21,?
tabs dw 10 dup (?)
dim dw 10 dup (?)
data ends

text SEGMENT
assume CS:text, DS:data, SS:sts
main proc far
;-----Block 1-----------
push DS
xor AX,AX
push ax
;-----Block 2-----------
mov ax,data
mov DS,AX
;-----Block 3-----------
lea DX,mes1
mov AH,09h
int 21h
;-----Block 4-----------
lea DX,mes2
mov AH,09h
int 21h
;-----Block 5-----------
lea DX,tabss
mov AH,0Ah
int 21h
;-----Block 6-----------
lea DX,mes3
mov AH,09h
int 21h
;-----Block 7-----------
lea DX,famm
mov AH,0Ah
int 21h
;-----Block 8-----------
mov SI,0
lea DI,dim
mov CX,10
;-----Block 9-----------
M1:
mov AX,tabs[SI]
mov bx,fam[SI]
cmp AX,BX
je Equal
mov AX,3030h
Equal:
mov [DI],AX
add SI,2
add DI,2
loop M1
;-----Block 10----------
mov CH,0
mov CL,0
mov DH,25
mov DL,80
mov BH,07
mov AH,06
mov AL,0
int 10h
;-----Block 11----------
mov AH,02
mov BH,0
mov DX,0
int 10h
;-----Block 12----------
lea DX,mes4
mov AH,09
int 21h
;-----Block 13----------
mov CX,5
mov SI,0
M2:
push CX
mov AX,dim[SI]
mov BL,04h
call print
mov AX,dim[SI+2]
mov BL,10h
call print
pop CX
add SI,4
loop M2
;-----------------------
ret
main endp
;=======================
print proc
;-----Block 14----------
push AX
;-----Block 15----------
mov AH,09
mov BH,0
mov CX,1
int 10h
;-----Block 16----------
mov AH,03
mov BH,0
int 10h
;-----Block 17----------
add DL,1
mov AH,02
mov BH,0
int 10h
;-----Block 18----------
pop AX
xchg AH,AL
;-----Block 19----------
mov AH,09
mov CX,1
int 10h
;-----Block 20----------
mov AH,03
mov BH,0
int 10h
;-----Block 21----------
add DL,2
mov AH,02
mov BH,0
int 10h
;-----------------------
ret
print endp
text ends
end main