Java教程

汇编语言中解决除法溢出的问题

本文主要是介绍汇编语言中解决除法溢出的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

所谓的除法溢出超过寄存器的存储范围.例如对于div bx,此时寄存器是16位,算出来的商超过了16位,AX(保存商的寄存器)无法保存超过16位的数据。

解决方法:例如803/7为例,先拿8/7等于商为1,余数为1,接着余数1乘以10加上0/7为商为1,余数为3,接着再拿余数3乘以10加上3为33/7商为4余数5,那么最后的结果就位商为114,且余数为5

assume cs:code,ss:stack

stack segment stack
		db	256	dup	(0)
stack ends

code segment
		start:
			mov ax,0FFFFh
			mov dx,0ffffh
			mov bx,4h

			push ax
			mov ax,dx
			xor dx,dx;dx清0, xor dx,dx 比mov dx,0快
			div bx
			mov cx,ax

			pop ax
			div bx

			
			
			mov ax,4c00h
			int 21h

code ends
end start

st

这篇关于汇编语言中解决除法溢出的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!