mov ah,0Ah ; формирование функции буферизованного ввода с клавиатуры
int 21h ; программное прерывание типа 21h
mov di,2 ; инициализация индексного регистра di числом 2
cyc1: ; пользовательская метка cyc1
sub bcd1[di],30h ; разность вида bcd1[di]:=bcd1[di]-30h
push word ptr bcd1[di] ; запись в стек как слова di-ого элемента цепочки bcd1
inc di ; инкремент di
cmp di,12 ; сравнение вида di=12, и если false, то...
jne cyc1 ; ...переход на метку cyc1
mov cx,10 ; инициализация счетчика cx десятью
mov di,2 ; инициализация индексного регистра di числом 2
cyc11: ; пользовательская метка cyc11
pop ax ; извлечение в регистр ax числа из стека
mov bcd1[di],al ; запись в di-й элемент цепочки bcd1 младшего байта регистра ax
inc di ; инкремент di
loop cyc11 ; сравнение вида cx=0, и если false, то cx:=cx-1, и переход на метку cyc11
mov dx,10 ; инициализация dx символом "Line Feed" ("Перевод Строки")
mov ah,02h ; формирование функции вывода единичного символа на экран
int 21h ; программное прерывание типа 21h
mov ah,9 ; формирование функции вывода строки на экран
mov dx,offset mess2 ; инициализация dx адресом начала символьной цепочки mess2
int 21h ; программное прерывание типа 21h
mov dx,offset bcd2 ; инициализация dx адресом начала буфера ввода bcd2
mov ah,0Ah ; формирование функции буферизованного ввода с клавиатуры
int 21h ; программное прерывание типа 21h
mov di,2 ; инициализация индексного регистра di числом 2
cyc2: ; пользовательская метка cyc2
sub bcd2[di],30h ; разность вида bcd2[di]:=bcd2[di]-30h
push word ptr bcd2[di] ; запись в стек как слова di-ого элемента цепочки bcd2
inc di ; инкремент di
cmp di,12 ; сравнение вида di=12, и если false, то...
jne cyc2 ; ...переход на метку cyc1
mov cx,10 ; инициализация счетчика cx десятью
mov di,2 ; инициализация индексного регистра di числом 2
cyc22: ; пользовательская метка cyc11
pop ax ; извлечение в регистр ax числа из стека
mov bcd2[di],al ; запись в di-й элемент цепочки bcd2 младшего байта регистра ax
inc di ; инкремент di
loop cyc22 ; сравнение вида cx=0, и если false, то cx:=cx-1, и переход на метку cyc22
mov dx,10 ; инициализация dx символом "Line Feed" ("Перевод Строки")
mov ah,02h ; формирование функции вывода единичного символа на экран
int 21h ; программное прерывание типа 21h
ret ; возврат в основную процедуру
innum endp ; конец процедуры innum
output proc ; начало процедуры output
mov ah,9 ; формирование функции вывода строки на экран
mov dx,offset mess3 ; инициализация dx адресом начала символьной цепочки mess3
int 21h ; программное прерывание типа 21h
mov si,9 ; инициализация индексного регистра si девятью
cmp sign,1 ; сравнение вида sign=1, и если true, то...
je shsign ; ...переход на метку shsign
jmp nshsign ; ...в противном случае безусловный переход на метку nshsign
shsign: ; пользовательская метка shsign
mov dx,45 ; инициализация регистра dx символом "минус" (код 45d)
mov ah,02h ; формирование функции вывода символа на экран
int 21h ; программное прерывание типа 21h
nshsign: ; пользовательская метка nshsign
mov cx,10 ; инициализация счетчика cx нулем
star: ; пользовательская метка star
mov dx,word ptr res[si] ; запись в регистр dx как слова si-ого элемента цепочки res
add dx,30h ; сумма вида dx:=dx+30h
mov ah,02h ; формирование функции вывода символа на экран
int 21h ; программное прерывание типа 21h
dec cx ; декремент cx
dec si ; декремент si
cmp cx,0 ; сравнение вида cx=0, и если false, то...
jne star ; ...переход на метку star
mov ah,07h ; формирование функции ввода единичного символа (в целях ожидания)
int 21h ; программное прерывание типа 21h
ret ; возврат в основную процедуру
output endp ; конец процедуры output
main proc ; начало основной процедуры main
mov ax,@data ; инициализация...
mov ds,ax ; ...сегментного регистра ds
call innum ; вызов процедуры innum
mov di,11 ; запись в индексный регистр di числа 11
mov si,2 ; запись в индексный регистр si числа 2
mov cx,10 ; инициализация счетчика циклов cx десятью
compare: ; пользовательская метка compare
xor ax,ax ; очистка регистра ax
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.