039.有符号数除法

     下面给出有符号数除法的实例,注意,在使用有符号除法的时候一定要在使用之前扩充被除数的符号为到更高的寄存器等级,比如 word->dword。这样一来就可以保存除法结果的商和余数,不致混淆。
; IDIV Examples             (Idiv.asm)

; This program shows examples of various IDIV formats.

INCLUDE Irvine32.inc

.code
main PROC

; Example 1
.data
byteVal SBYTE -48
.code
	mov	al,byteVal		; dividend
	cbw					; extend AL into AH
	mov	bl,+5			; divisor
	idiv	bl			; AL = -9, AH = -3
	call	DumpRegs	;
	call WaitMsg		;
; Example 2
.data
wordVal SWORD -5000		;
.code
	mov	ax,wordVal 		; dividend, low
	cwd               	; extend AX into DX
	mov	bx,+256			; divisor
	idiv	bx			; quotient AX = -19, rem DX = -136
	call	DumpRegs	;
	call WaitMsg		;
; Example 3	

.data
dwordVal SDWORD +50000	;
.code 
	mov	eax,dwordVal 	; dividend, low
	cdq 				; extend EAX into EDX
	mov	ebx,-256		; divisor
	idiv	ebx         ; quotient EAX = -195, rem EDX = +80
	call	DumpRegs	;
	call WaitMsg		;
	exit				;
main ENDP
END main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值