关于汇编语言中的除法指令
刚接触汇编,很多问题不大明白,请高手赐教:书上说字节除法指令的余数放AL中,商放AH中,那么如果商的二进制数大于8位那该怎么办啊?如:DIVBH已知:BH=50HAX=9...
刚接触汇编,很多问题不大明白,请高手赐教:书上说字节除法指令的余数放AL中,商放AH中,那么如果商的二进制数大于8位那该怎么办啊?如:
DIV BH
已知:BH=50H AX=904AH
算出来商是9位的,该怎么办?
另外,希望各位能提供些练习题,尽量简单点的,网上题很少,我都找不到,谢谢啦!
这种情况是不是作为除数为0来处理啊?产生0中断?
有没有练习题啊?怎么都没人理我的问题啊…… 展开
DIV BH
已知:BH=50H AX=904AH
算出来商是9位的,该怎么办?
另外,希望各位能提供些练习题,尽量简单点的,网上题很少,我都找不到,谢谢啦!
这种情况是不是作为除数为0来处理啊?产生0中断?
有没有练习题啊?怎么都没人理我的问题啊…… 展开
5个回答
展开全部
DIV
(unsigned
divide)
无符号数除法
格式:DIV
SRC
执行的操作:
字节操作:16位被除数在AX,8位除数为源操作数,结果的8位商在AL中,8位余数在AH中。表示为
(AL)<-(AX)/(SRC)
的商
(AH)
<-(AX)/(SRC)
的余数
字操作:32位被除数放在DX,AX中。其中DX为高位字,16位除数为源操作数,结果的16位端在AX中,16位余数在DX中。表示为
(AX)<-(DX,AX)/(SRC)
的商
(DX)<-(DX,AX)/(SRC)
的余数
双字操作:64位被除数在EDX,EAX中,其中EDX为高位双字,32位除数为源操作数,结果的32位商在EAX中,32位余数在EDX中,表示为
(EAX)<-(EDX,EAX)/(SRC)
的商
(EDX)<-(EDX,EAX)/(SRC)
的余数。
商和余数均为无符号数。
IDIV
带符号除法指令
格式:IDIV
SRC
执行的操作:与DIV相同,但操作数必须是带符号的数,商和余数也都是带符号的数,且余数的符号和被除数的符号相同
(unsigned
divide)
无符号数除法
格式:DIV
SRC
执行的操作:
字节操作:16位被除数在AX,8位除数为源操作数,结果的8位商在AL中,8位余数在AH中。表示为
(AL)<-(AX)/(SRC)
的商
(AH)
<-(AX)/(SRC)
的余数
字操作:32位被除数放在DX,AX中。其中DX为高位字,16位除数为源操作数,结果的16位端在AX中,16位余数在DX中。表示为
(AX)<-(DX,AX)/(SRC)
的商
(DX)<-(DX,AX)/(SRC)
的余数
双字操作:64位被除数在EDX,EAX中,其中EDX为高位双字,32位除数为源操作数,结果的32位商在EAX中,32位余数在EDX中,表示为
(EAX)<-(EDX,EAX)/(SRC)
的商
(EDX)<-(EDX,EAX)/(SRC)
的余数。
商和余数均为无符号数。
IDIV
带符号除法指令
格式:IDIV
SRC
执行的操作:与DIV相同,但操作数必须是带符号的数,商和余数也都是带符号的数,且余数的符号和被除数的符号相同
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机种类:按通用性可分为通用型和专用型;按总线结构可分为总线型和非总线型;按应用领域可分为家电类、工控类、通信类、个人信息终端类等等;按单片机数据总线位数可分为4位、8位、16位和32位单片机。
意法半导体致力于引领单片机技术和产品的创新...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
汇编语言中除法指令有两种溢出的情况:一是被0除,产生0号中断;二是当除得的商超出范围时,即你所的除以字节时商超出了字节或者除以字时商超出了字,都会产生溢出。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
80x86 的除法指令(DIV SRC)有三种:
被除数在 AX,除数为源操作数,商在 AL,余数在 AH。
被除数在 DX_AX,除数为源操作数,商在 AX,余数在 DX。
被除数在 EDX_EAX,除数为源操作数,商在 EAX,余数在 EDX。
商,必须小于指定的寄存器的容量,否则就会出错,CPU 给出溢出标志。
除数为 0,必然就会溢出。
不为零时,为了防止溢出,可以采用“多字节相除的方法”。
这就需要编写一段程序了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
div 啊怎么了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DIV (unsigned divide) 无符号数除法
格式:DIV SRC
执行的操作:
字节操作:16位被除数在AX,8位除数为源操作数,结果的8位商在AL中,8位余数在AH中。表示为
(AL)<-(AX)/(SRC) 的商
(AH) <-(AX)/(SRC) 的余数
字操作:32位被除数放在DX,AX中。其中DX为高位字,16位除数为源操作数,结果的16位端在AX中,16位余数在DX中。表示为
(AX)<-(DX,AX)/(SRC) 的商
(DX)<-(DX,AX)/(SRC) 的余数
双字操作:64位被除数在EDX,EAX中,其中EDX为高位双字,32位除数为源操作数,结果的32位商在EAX中,32位余数在EDX中,表示为
(EAX)<-(EDX,EAX)/(SRC) 的商
(EDX)<-(EDX,EAX)/(SRC) 的余数。
商和余数均为无符号数。
IDIV 带符号除法指令
格式:IDIV SRC
执行的操作:与DIV相同,但操作数必须是带符号的数,商和余数也都是带符号的数,且余数的符号和被除数的符号相同
格式:DIV SRC
执行的操作:
字节操作:16位被除数在AX,8位除数为源操作数,结果的8位商在AL中,8位余数在AH中。表示为
(AL)<-(AX)/(SRC) 的商
(AH) <-(AX)/(SRC) 的余数
字操作:32位被除数放在DX,AX中。其中DX为高位字,16位除数为源操作数,结果的16位端在AX中,16位余数在DX中。表示为
(AX)<-(DX,AX)/(SRC) 的商
(DX)<-(DX,AX)/(SRC) 的余数
双字操作:64位被除数在EDX,EAX中,其中EDX为高位双字,32位除数为源操作数,结果的32位商在EAX中,32位余数在EDX中,表示为
(EAX)<-(EDX,EAX)/(SRC) 的商
(EDX)<-(EDX,EAX)/(SRC) 的余数。
商和余数均为无符号数。
IDIV 带符号除法指令
格式:IDIV SRC
执行的操作:与DIV相同,但操作数必须是带符号的数,商和余数也都是带符号的数,且余数的符号和被除数的符号相同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询