Сравнить 2 цифры первой строки с двумя цифрами второй строки - Assembler
Формулировка задачи:
Всем привет
У меня есть программа на языке Ассемблер, в которой пользователь вводит две строки по 20 цифр, программа сравнивает 2 цифры первой строки с двумя цифрами второй строки и выводит результат: в группе, у которых цифры совпали - цифры первой строки; в группе, у которых не совпали - нули.
Необходимо поменять программу так, чтобы записывались в результат цифры первой строки еще и в том случае, когда левая цифра каждой группы первой строки больше правой цифры каждой группы второй строки.
Подскажите пожалуйста
Решение задачи: «Сравнить 2 цифры первой строки с двумя цифрами второй строки»
textual
Листинг программы
- 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д