k-中心点:谁帮我遍一个简单的汇编程序

来源:百度文库 编辑:高考问答 时间:2024/04/27 02:38:13
完成(X*Y-Z)/X , X Y Z 自定,速度哈!~~~在线等
完整的程序,执行成功立即给分

data segment

x db 34
y db 2
z db 3
string1 db 'yushu ',13,10,'$'
string2 db 'shang ',13,10,'$'
data ends

prognam segment
main proc far
assume cs:prognam,ds:data
start:
sub ax,ax
push ds
push ax
mov ax,data
mov ds,ax

mov al,x
mov ah,0
mul y ;x*y

mov bl,z ;x*y-z
mov bh,0
sub ax,bx
div x ;(X*Y-Z)/X ,商在al,余数在ah

push ax
mov bl,al
mov bh,0
lea dx,string2
mov ah,09h
int 21h
call binidec
call crlf

pop ax
mov bl,ah
mov bh,0
lea dx,string1
mov ah,09h
int 21h
call crlf
call binidec
ret
main endp

;---------------
binidec proc near
cmp bx,0
jne nz
mov dl,'0'
mov ah,2
int 21h
ret
nz:
push bx
push cx
push si
push di
mov di,0
mov cx,10000d
call dec_div
mov cx,1000d
call dec_div
mov cx,100d
call dec_div
mov cx,10d
call dec_div
mov cx,1
call dec_div
pop di
pop si
pop cx
pop bx
ret
binidec endp
;------------------
dec_div proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
cmp dl,'0'
je done
mov di,1
done:cmp di,1
jne exit2
mov ah,2
int 21h
exit2:ret
dec_div endp
crlf proc near
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
int 21h
ret
crlf endp
prognam ends
end start