简单的汇编问题请教.

akimoto 2007-01-10 09:29:22
1.
最多可寻64KB内存单元.
即64kb=65536k
然后可以将65536转换为FFFFH的.为什么阿?有什么公式的吗?
65536转换为十六进制不是1000H的吗?
怎么变成FFFFH了?


2.
有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是:最小为____,最大为____.

答案是 1001H,2000H

最大为2000H我自己可以求出来.但最小为1001H是怎样求出来的./?
可以说出具体的方法吗?



其实第二个问题昨晚已经有一位论坛上的朋友说了.但我看不明白阿.
现在再来请教下广大论坛上的朋友.
...全文
203 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2007-01-10
  • 打赏
  • 举报
回复
这是因为, 欲段址最小的话, 偏址就要最大啊. 虽然偏址最大可以到 0FFFFh, 但这里的目标地址是 20000h, 最低 4 个二进制位为 0, 而段址不能管辖到最低 4 个二进制位的 (段址在形成最后的完整地址时是需要左移 4 个二进制位的), 所以, 这个最低的 4 个二进制位只能完全由偏址来实现, 所以偏址的最低的 4 个二进制位也就必须是 0 了, 所以, 最大的偏址就只能是 0FFF0h
akimoto 2007-01-10
  • 打赏
  • 举报
回复
我基本上明白第一个问题了.但第二个问题就不懂了.5555..

段址*16+偏址 这个我书上看过.64K的的范围是0~FFFFH的.

为什么完整地址为20000H,偏移就只能是0FFF0H阿.?

0FFF0H 这数的第一位 0 可以不要的吧.?
zara 2007-01-10
  • 打赏
  • 举报
回复
不会吧. 楼主的那个帖子我也看过的, 那里都已经说得够明白的了.
1. 64KB=65536B, 不是 65536k. 65536 是容量, 可以理解为多少个单元. 给单元编地址的话, 就是 0 - (65536-1) 了. 65536-1=65535=0FFFFh
2. 完整的地址是 段址*16+偏址. 段址要最小, 那应该是偏址最大. 偏址最大为 0FFFFh, 完整地址为 20000h, 那偏址就只能是 0FFF0h. 所以, 这时段址就是 (20000h-0FFF0h)/16(10h)=2000h-0FFFh=1001h
paullbm 2007-01-10
  • 打赏
  • 举报
回复
zara(Kyrie eleison) 回答得太清楚了,我再说就是班门弄斧了。
xaobao 2007-01-10
  • 打赏
  • 举报
回复
楼上的说的很清楚啦~我就不作重复~

21,459

社区成员

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

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