0
안녕 얘들 아 내게 글을 처음 게시하면 나에게 잘 해줘! 나는 두 개의 숫자를 나누기 위해 시프트와 뺄셈을하는 프로그램을 만들어야 만한다. 나는 이미 더하기와 곱셈을 바꿀 수있는 프로그램을 만들었습니다. 지금 나누기 만하면됩니다. 이것은 내가 지금까지 가지고있는 것이다. 사용자는 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
나는 shift를 사용하여 적절한 나누기 절차를 만드는 방법을 모르며 – Caliendo55
'메뉴가있는 프로그램을 만들어야합니다 .'라고 뺍니다. 그게 너야 * 우리가 아니라, 맞지? 숙제에 도움이 필요하면 [숙제] 태그를 사용하십시오. –