王爽《汇编语言》实验10:编写子程序divdw 解答

;公式我们可以用十进制模拟一下,和二进制一样的原理
assume cs:code,ss:stack

stack segment
	dw 8 dup(0)
stack ends

code segment
start:	
	mov ax,stack
	mov ss,ax
	mov sp,10h
	mov ax,4240h
	mov dx,0fh
	mov cx,0ah

	call divdw

	mov ax,4c00h
	int 21h
divdw:
	push ax

	mov ax,dx ;int(H/N)
	mov dx,0
	div cx
	mov bx,ax ;商暂存到bx,乘65536是高16位

	pop ax ;取出ax作为低16位,上次计算的余数在dx中,刚好做为高16位
	div cx

	mov cx,dx ;余数赋值给cx
	mov dx,bx ;dx赋值为上次暂存的bx

	ret

code ends

end start


你可能感兴趣的:(汇编)