Sunteți pe pagina 1din 2

.

model small
.stack 100h
.data
num1 dw 0
num2 dw 0
mesaj1 db "Introduceti numarul unu:$"
mesaj2 db "Introduceti numarul doi:$"
mesaj_da db "Produsul este un patrat perfect.$"
mesaj_nu db "Produsul nu este un patrat perfect.$"
.code
start:
mov ax, @data
mov ds, ax

mov dx, offset mesaj1


mov ah, 09
int 21h

numarul1:
mov ah, 01
int 21h
mov ah,0
cmp al, 13
je m2
sub al, 48
mov bx, ax
mov ax, num1
mov dx, 10
mul dx
add bx, ax
mov num1, bx
jmp numarul1

m2:
mov dx, offset mesaj2
mov ah, 09
int 21h

numarul2:
mov ah, 01
int 21h
mov ah,0
cmp al, 13
je inmultire
sub al, 48
mov bx, ax
mov ax, num2
mov dx, 10
mul dx
add bx, ax
mov num2, bx
jmp numarul2

inmultire:
mov ax, num1
mov bx, num2
mul bx
mov cx, ax

mov bx, 0
verificare:
inc bx
cmp bx, cx
jg nu_e_patrat_perfect
mov dx, bx
mov ax, dx
mul dx
cmp ax, cx
je patrat_perfect
jmp verificare

patrat_perfect:
mov dx, offset mesaj_da
mov ah, 09
int 21h
jmp gata

nu_e_patrat_perfect:
mov dx, offset mesaj_nu
mov ah, 09
int 21h

gata:
mov ah, 4ch
int 21h
end start

S-ar putea să vă placă și