0
こんにちは、これは私の最初の投稿ですので、私に素敵です!最終的に2つの数値を分けるために、シフトと減算を行うプログラムを作成する必要があります。私はすでに追加と乗算をシフトできるプログラムを作っています...ただ今分ける必要があります。これは私がこれまで持っていたものです。ユーザーは2つの入力を求めてから、それを加算、減算、乗算して除算するメニューを使ってプログラムを作成する必要があります。8086アセンブリシフト減算と除算
このような何かが動作する可能性があり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
私は質問が何であるかを理解していませんか? – aardvarkk
シフトを使って適切な除算を行う方法を知りません。 – Caliendo55
「メニューを使ってプログラムを作成する必要があります。それはあなたじゃなく、私たちじゃない?宿題に助けが必要な場合は、[宿題]タグを使用してください。 –