. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
CALL和RET指令
主题 : :
谁能解释下实验10.2的那个公式
[待解决]
回复[
13
次 ] 点击[
1709
次 ]
abcdwzxy
[帖 主]
[ 发表时间:2009-06-07 22:04 ]
荣誉值:0
信誉值:3
注册日期:2009-03-13 16:19
X/N=INT(H/N)*65536+[REM(H/N)*65536+L]/N
H=INT(X/65536);L=REM(X/65536)
这个公式该怎样理解?那个65536好象有点问题,在16位寄存器中放不下这个数,那么怎么进行*65536的运算呢?
mess
[第
1
楼]
[ 回复时间:2009-06-09 10:36 ]
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
dx ax 存放dword型数据的高低16位
INT(H/N)*65536
--------------
dx/cx的高位16位除法,取商。存放到结果的高16位中。
(十进制数21=2*10+1)
[REM(H/N)*65536+L]/N
-------------
同理。
数值82/3,我们一般先计算:
8/3商2余2
然后再用22/3商7余1.(22得得来:高位除法的余数2*10+2(低位即个位数字)=22)
结果是27余1.
同理套入上面的公式。
数值82/3,我们一般先计算:
8/3商2余2 -----INT(H/N)*65536-保存商2,放入结果高位中
然后再用22/3商7余1. -----[REM(H/N)*65536+L]/N 用高位除法结果的余数+低位然后做除法运算,得到商和余数
结果是27余1. ----得到结果,2存放结果高位dx中(这个在INT(H/N)*65536完成),7放在ax中,1放在cx中。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved