Задача Assembler
Формулировка задачи:
Здравствуйте, нужно написать код, если кто поможет, буду очень благодарен. В этой дисциплине вообще не разбираюсь, по-этому прошу вашей помощи.
Что нужно: В регистры AX,BX вводятся 2 числа, их надо распечатать, затем находим сумму этих чисел, и разницу, если сумма больше разницы - нужно вывести знак ">", если меньше - "<"
Если кто сможет помочь, напишите пожалуйста.
Решение задачи: «Задача Assembler»
textual
Листинг программы
model tiny .code org 100h start: lea dx,dbEnterA call inpNumb mov numbA,ax lea dx,dbEnterB call inpNumb mov numbB,ax mov ax,numbA lea dx,dbNumberA call outNumb mov ax,numbB lea dx,dbNumberB call outNumb mov ax,numbA add ax,numbB mov summ,ax lea dx,dbSumm call outNumb mov ax,numbA sub ax,numbB mov subb,ax lea dx,dbSubb call outNumb mov bl,'>' mov ax,summ cmp ax,subb ja @@01; mov bl,'<' @@01: lea dx,dbRes mov ah,09 int 21h mov al,bl int 29h xor ax,ax int 16h ret outNumb: push ax mov ah,9 int 21h pop ax xor cx,cx mov bx,10 @@02: xor dx,dx div bx push dx inc cx or ax,ax jnz @@02 @@03: pop ax or al,'0' int 29h loop @@03 ret inpNumb: push ax mov ah,9 int 21h pop ax xor di,di mov bx,10 @@04: xor ax,ax int 16h cmp al,13 jz @@05 cmp al,'0' jb @@04 cmp al,'9' ja @@04 push ax int 29h pop ax and ax,0fh xchg di,ax xor dx,dx mul bx add di,ax jmp @@04 @@05: mov ax,di ret dbEnterA db 10,13,'Enter A:$' dbEnterB db 10,13,'Enter B:$' dbNumberA db 10,13,'Number A:$' dbNumberB db 10,13,'Number B:$' dbSumm db 10,13,'Summa:$' dbSubb db 10,13,'Difference:$' dbRes db 10,13,'Result:$' numbA dw ? numbB dw ? Summ dw ? subb dw ? end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д