求大神讲解汇编!!最好每步在干什么,想干什么备注一下!!!
data segment
buffer db 0ah,0dh,255 ;缓冲区,用于存放字符串
ptr1 db 0dh,0ah,"please input stuno:$"
ptr2 db 0ah,0dh,"stuno:$"
string db 13 dup("0")
mess1 db 0ah,0dh,"Input a number:$"
mess2 db 0ah,0dh,"Out:$"
buf db 5
nu db 0
nustr db 5 dup("0")
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea dx,mess1
mov ah,09h
int 21h
lea dx,buf
mov ah,0ah
int 21h
mov cl,nu
xor ch,ch
lea si,nustr
mov bp,10
xor bx,bx
lp: lodsb
and ax,000fh
xchg ax,bx
mul bp
xchg ax,bx
add bx,ax
loop lp
mov ax,bx
xor bx,bx
mov si,3
call sub1
mov bx,ax
lea dx,mess2
mov ah,09h
int 21h
xor cx,cx
mov si,10
mov ax,bx
lp1: xor dx,dx
div si
or dl,30h
push dx
inc cx
or ax,ax
jnz lp1
lp2: pop dx
mov ah,02h
int 21h
loop lp2
mov ah,4ch
int 21h
sub1 proc
dec ax
cmp ax,1
jz next
call sub1
next: xchg ax,bx
mul si
add ax,bx
ret
sub1 endp
code ends
end start