IN TASM:
Citiți 2 cifre și efectuați scăderea (cifra1 - cifra2). Afișați rezultatul în zecimal, incluzând un „+” dacă rezultatul este pozitiv sau un „-” dacă este negativ.
Se presupune că inputul este corect (la rulare, userul apasă doar taste conținând cifre).
Nu se acceptă varianta în care se inversează scăderea (făcând cifra2-cifra1).
Exemple de execuție:
Introdu prima cifra: 7
Introdu a doua cifra: 5
Rezultat: +2
Introdu prima cifra: 2
Introdu a doua cifra: 9
Rezultat: -7
Răspunsuri la întrebare
.model small
.stack 100h
.data
result db ?
.code
mov ax, @data
mov ds, ax
; Citim cifra1
mov ah, 0
mov dx, offset cifra1_prompt
int 21h
mov ah, 1
int 21h
sub al, '0'
mov bl, al
; Citim cifra2
mov ah, 0
mov dx, offset cifra2_prompt
int 21h
mov ah, 1
int 21h
sub al, '0'
mov cl, al
; Facem scaderea
sub bl, cl
mov result, bl
; Verificam daca rezultatul este pozitiv sau negativ
cmp result, 0
jge afisare_pozitiva
; Daca rezultatul este negativ, afisam semnul "-"
mov dl, '-'
mov ah, 2
int 21h
jmp afisare_finala
afisare_pozitiva:
; Daca rezultatul este pozitiv, afisam semnul "+"
mov dl, '+'
mov ah, 2
int 21h
afisare_finala:
; Afisam rezultatul
add result, '0'
mov dl, result
mov ah, 2
int 21h
; Sfarsitul programului
mov ah, 0
int 21h
.data
cifra1_prompt db "Introdu prima cifra: ", 0
cifra2_prompt db "Introdu a doua cifra: ", 0