【发布时间】:2011-07-06 17:45:28
【问题描述】:
大家好,这是我第一次发帖,请善待我!我必须编写一个程序来移动和减去最终将两个数字相除。我已经做了一个可以移位加法和乘法的程序......现在只需要除法。这是我到目前为止所拥有的。你必须制作一个带有菜单的程序,它要求用户输入 2 个输入,然后它会加、减、乘然后除。
product_a_b proc near
clc
push ax
push cx
push bx
push si
push dx
push di
push bp
mov si, 00h
mov ax, 00h
mov bx, 00h
mov dx, 00h
mov cx, 00
mov al, A[si]
mov ah, A[si+1]
mov dl, B[bx]
mov dh, B[bx+1]
mov bp, 10h
multiply: TEST DX, 01B
jz skip
add cx, ax
skip: rcr cx, 01
rcr dx, 01
dec bp ; dec number
jnz multiply
mov [di],dl
mov [di+1],dh
mov [di+2],cl
mov [di+3],ch
pop bp
pop di
pop dx
pop si
pop bx
pop cx
pop ax
ret
product_a_b endp
QUOTIENT_A_B proc near
clc
push ax
push cx
push bx
push si
push dx
push di
push bp
mov si, 00h
mov ax, 00h
mov bx, 00h
mov dx, 00h
mov cx, 00
mov dl, A[si] ;ax = m
mov dh, A[si+1]
mov al, B[bx] ; dx = q
mov ah, B[bx+1] ; cx = a
mov bp, 10h
divide: rcl cx, 01
rcl dx, 01
cmp cx, dx
jb div_add
dec bp ; dec number
jnz divide
div_add: add cx, dx
jmp divide
mov [di],dl
mov [di+1],dh
mov [di+2],cl
mov [di+3],ch
pop bp
pop di
pop dx
pop si
pop bx
pop cx
pop ax
ret
QUOTIENT_A_B endp
【问题讨论】:
-
我不确定我是否理解问题所在?
-
我不知道如何使用移位和减法进行正确的除法程序
-
You have to make a program with a menu..。那是你,不是我们,对吧?如果您需要家庭作业方面的帮助,请使用 [homework] 标签。
标签: assembly shift subtraction divide