一个不难的 汇编问题

zhulinjia 2008-10-14 10:36:47
下列说法中正确的是:____ 
1、 8086CPU采用“段地址*16+偏移地址=物理地址”的寻址模式,所以内存是由一个一个的段组成,每一个段有一个段地址。
2、 物理地址为ffff0H的内存单元的偏移地址可能为ffffH。
3、 一个段的大小可以是8Byte。
4、 在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行。


我知道第 1 个是错的.

第 2 个 我认为有错. 因为:FFFF0-FFFF=EFFF1;

第 3 个 看不出哪里错了.

第 4 个 看不出哪里错了.

谁帮下忙.
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
byunting 2011-05-31
  • 打赏
  • 举报
回复
第三个错,第四个对。因为偏移地址的变化范围是0~ffff也就是64kb,段的大小是64k。而第四个,前面说过便宜地址的变化范围是0~ffff,ffff再加3=2,又回到了开始的地方(注意,有可能不是第一条指令)
BAYNPU 2008-10-14
  • 打赏
  • 举报
回复
仔细看看第2道题的问题出在哪里?
cnzdgs 2008-10-14
  • 打赏
  • 举报
回复
2、 物理地址为ffff0H的内存单元的偏移地址可能为ffffH。
内存单元地址的最后一位是由偏移量决定的,地址的最后一位是0,偏移量的最后一位也一定是0。

3、 一个段的大小可以是8Byte。
这个看要如何理解,如果从汇编语言编程方面来理解是对的。

4、 在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行。
段间调用和返回、中断都可以超出64K。
zhulinjia 2008-10-14
  • 打赏
  • 举报
回复
因为 段地址*16=基地址 也就是说段地址左移一个0 就行了. 而FFFF0-FFFF=EFFF1的基地址等于EFFF1所以错了.

21,500

社区成员

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

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