01/10/2018, 15:13
Nhân 2 số có 2 chữ số trong Assembly
Ai giỏi hợp ngữ cho e hỏi với ạ, em có chương trình nhập vào 2 số có 2 chứ số trong Assembly
nhưng bây giờ 2 muốn nhân 2 số đây thì chưa biết làm như thế nào. Em chỉ nhập và xuất dc thôi chứ chưa biết cách gán vào thanh ghi như nào để nhân ạ.
code của e
.model small
.stack 100
.data
mes1 db "Nhap so co 2 chu so thu nhat:$"
mes2 db 10,13,"Nhap so co 2 chu so thu 2:$"
mes3 db 10,13,"So thu nhat la:$"
mes4 db 10,13,"So thu 2 la:$"
mes5 db 10,13,"Tich cua 2 so la:$"
x dw ?
y dw ?
a dw ?
b dw ?
.code
main proc
mov ax,@data
mov ds,ax
;nhap so
mov ah,9
lea dx,mes1
int 21h
call nhapso
;hienthi1
mov ah,9
lea dx,mes3
int 21h
call hienthi
mov ah,9
lea dx,mes2
int 21h
call nhapso
;hienthi2
mov ah,9
lea dx,mes4
int 21h
call hienthi
;ketthuc
mov ah,4ch
int 21h
main endp
;Nhap
nhapso proc
mov x,0
mov y,0
;mov a,0
;mov b,0
mov bx,10
nhap:
mov ah,1
int 21h
cmp al,13
je thoat
sub al,30h
xor ah,ah
mov y,ax
mov ax,x
mul bx
add ax,y
mov x,ax
;mov b,ax
;mov ax,a
;mul bx
;add ax,b
;mov a,ax
jmp nhap
thoat:
ret
nhapso endp
;xuat
hienthi proc
mov dx,0
mov ax,x
mov cx,0
chia:
mov dx,0
div bx
inc cx
push dx
cmp al,0
je ht
jmp chia
ht:
pop dx
add dl,30h
mov ah,2
int 21h
dec cx
cmp cx,0
jne ht
ret
hienthi endp
endp main
Bài liên quan