新手求助汇编语言问题

leonyang1118 2012-09-12 11:11:32
各位大哥 我最近在自学汇编 看的王爽的书 到段地址后面的检测点 我遇到了障碍
题目:有一数据存放在内存20000H单元内,现给定段地址为SA,若想用偏移地址寻址到此单元。则SA应满足的条件是:最小__
最大__?
公式是 SA*16+EA=20000H 后面我就不知道怎么算了 后来我去看了下网站! (实在没辙了)
答案:偏移地址为0000H~0FFFFH,因此从物理地址20000H可以得到SA的范围为:
1001H~2000H
过程:最大值为(20000H-0000H)/ 10H = 2000H
最小值为(20000H-0FFFFH)/10H = 1000.1H,因此上取整为1001H,注意段址SA为1000H时,无法得到物理地址20000H
这个答案我没看懂 为什么计算最大值和最小值 都是除以10H .. 为什么后面是1000.1 要取整为1001
为什么 SA为1000H时 无法得到物理地址20000H 为什么1001H 可以 我没搞懂 书上看也没看明白
求助各位大神 帮我过下这个问题吧3 感谢!
...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
leonyang1118 2012-09-13
  • 打赏
  • 举报
回复
太感谢了 明白
zara 2012-09-13
  • 打赏
  • 举报
回复
“为什么都要除以 10h ”,因为段址的单位是 para 节 为 10h 字节,所以地址转段址时就需要这个操作了。

“为什么 SA为1000H时 无法得到物理地址20000H 为什么1001H 可以 ”,SA=1000H 时要访问 200000H 的话,偏址得是多少?10000H!这不就已经超过了 0FFFFH 这个偏址的最大范围了。所以 1000.1 要向上取整而非向下,以保证对应的偏址在可表示的范围之内。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧