【王爽-汇编语言】第二章 监测点2.2
1. 从物理地址1H*16+0到1H*16+FFFFH也就是 10H 到 1000FH 。
2. 物理地址等于 段地址*16+偏移地址,现在物理地址是20000H,如果段地址要最小,那偏移地址就要为最大FFFFH,20000H-FFFFH=10001H ,此时的10001H是通过段地址*16得到的,也就是左移一位,但是我们拿10001H除以16H话,那不就是成了1000.1H了,当然这是不允许的,所以我们就要像要怎样才能满足 段地址为最小的呢,因为段地址都是16的倍数,如果我们吧段地址取 1000的话,这样虽然去了小数,但是 1000*16+FFFF 可寻址不到20000F这么大的地址,所以我们只能把向上加1变成1001H,所以段地址最小为1001H。段地址取最大的话,那就简单了,字节就是 20000-0/16(这里都是16进制) = 2000,所以段地址最大为2000H
物理地址=段地址*16+偏移地址
20000H=SA*16+偏移地址
由于16为十进制,转换为十六进制=10H
最小偏移地址=0H
最大偏移地址=FFFFH
最小SA=(20000H-FFFFH)/10H=20000H/10H-FFFFH/10H=2000H-FFFH=1001H
最大SA=(20000H-0H)/10H=20000H/10H-0H/10H=2000H-0H=2000H
当SA<1001或 SA>2000时 CPU无法寻到20000H
请教一个问题:0001H*16+FFFF怎么=1000F
不是0001H*10H+FFFF=F吗? 物理地址=SA*16+EA
20000h=SA*16+EA
SA=(20000h-EA)/16=2000h-EA/16
EA取最大值时,SA=2000h-ffffh/16=1001h,SA为最小值
EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值
这里的ffffH/16=fffh是通过WIN自带计算器算的
按位移来算确实应该为fff.fh,这里小数点后的f应该是省略了
单就除法来说,应有商和余数,但此题要求的是地址最大和最小,所以余数忽略了
如果根据位移的算法(段地址*16=16进制左移一位),小数点后应该是不能省略的
我们可以反过来再思考下,如果SA为1000h的话,小数点后省略
SA=1000h,EA取最大ffffh,物理地址为1ffffh,将无法寻到20000H单元 还是没明白,继续去看看视频来。 好好学习 SA=2000h-ffffh/16=1001h SA=2000h-0h/16=2000h SA=2000h-ffffh/16=1001h 这个要先转成10进制的把 除了以后再转16进制 我是这么算出来的
最小SA=(20000H-FFFFH)/10H=20000H/10H-FFFFH/10H=2000H-FFFH=1001H 这里后面怎么成三个FFF了 20000H/10后—FFFFH 怎么成三个FFF了 ?? a280153458 发表于 2015-1-24 23:42
物理地址=段地址*16+偏移地址
20000H=SA*16+偏移地址
由于16为十进制,转换为十六进制=10H
为啥会等于F:shock:?自己手算和计算器算都不是F,是不是计算方法不对:smile 太难了 真的要好好看视频 :smile:smile:smile:smile:smile 视频为都反复看了5编译上了。。。=以上了。。 还是不懂 xkwyas 发表于 2015-10-20 15:36
最小SA=(20000H-FFFFH)/10H=20000H/10H-FFFFH/10H=2000H-FFFH=1001H 这里后面怎么成三个FFF了 20000H/10 ...
SA=2000H-FFFFH/16
=2000H-65535/16 (将16进制数FFFF转化为十进制数65535)
=2000H-4095 (将十进制数4095转化为16进制数FFF)
=2000H-FFFH (用计算器计算得出1001H)
=1001H
xiehaofeng 发表于 2018-3-15 20:44
SA=2000H-FFFFH/16
=2000H-65535/16 (将16进制数FFFF转化为十进制数65535)
=2000H-4095 ...
65535/16在十进制下也不会是4095的,只看末尾数字,16的6乘上4095的5不可能是65535的5,所以计算器再这里还是省略了余数的 xiehaofeng 发表于 2018-3-15 20:44
SA=2000H-FFFFH/16
=2000H-65535/16 (将16进制数FFFF转化为十进制数65535)
=2000H-4095 ...
瞎扯淡,你自己把这个结果反着加回去试试,看看是不是最终物理地址等于20000H,谁告诉你段地址x16+偏移地址可以直接用数学公式代入?直接反着来就成为了物理地址-偏移地址除以16了?这特么不是瞎指挥是啥?再起码也应该是SA=(20000H-IP)/16吧?你数学是真特么好
页:
[1]