Сравнить 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д