Assembly 8086总成换档减法和除法
嘿,伙计们,这是我第一次发帖,所以对我好一点!我必须制作一个程序,通过移位和减法最终将两个数字除法。我已经做了一个程序,可以移动加法和乘法。。。现在只需要分开。这就是我目前所拥有的。你必须制作一个带有菜单的程序,要求用户输入2个输入,然后加、减、乘、除Assembly 8086总成换档减法和除法,assembly,shift,subtraction,divide,Assembly,Shift,Subtraction,Divide,嘿,伙计们,这是我第一次发帖,所以对我好一点!我必须制作一个程序,通过移位和减法最终将两个数字除法。我已经做了一个程序,可以移动加法和乘法。。。现在只需要分开。这就是我目前所拥有的。你必须制作一个带有菜单的程序,要求用户输入2个输入,然后加、减、乘、除 product_a_b proc near clc push ax push cx push bx push si push dx
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
类似的方法可能会奏效:
; divide cx by dx, leaving the quotient in cx and the remainder in ax.
mov ax, 0
mov bp, 10h
divide: sal cx, 1
rcl ax, 1
cmp ax, dx
jb smaller
sub ax, dx
inc cx
smaller: dec bp
jnz divide
我不确定我是否理解问题是什么?我不知道如何使用shift和subtract进行正确的除法程序
你必须用菜单制作一个程序..
。那是你,不是我们,对吗?如果你的家庭作业需要帮助,请使用[家庭作业]标签。