题目一:
           有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为____,最大为____。
我的问题:
          段地址=(物理地址-偏移地址)/10H
          偏移地址范围:0000H—FFFFH
          SA最小为(20000H-FFFFH)/10H=1000.1H,肯定不对,答案是1001H。答案1001H,是怎么计算出来的?


题目二:
         下面的指令执行完后,CPU修改几次IP?都是在什么时候?最后IP中的值是多少?
          mov ax,bx
          sub  ax,ax
          jmp  ax
我的问题:
       最后IP中的值应该是ax中的值,答案说是0?我认为答案错了~~
       虽然CPU默认CS:IP=FFFFH:0000H,但是这里是用ax寄存器内容修改IP寄存器内容,并没有将IP恢复默认。
       所以最后IP应该是ax中的值。
       请问我的理解对吗?
   
      

共收到 4 条回复
标-子 · #-1 · 2014-11-4 03:24:59  回复 支持 0 反对
第一题,最大为2000H,2000*10H+0H=20000.最小为sa*10H+FFFFH=20000H。SA=1001H.因为1000*10H+FFFFH=10000+FFFFH=1FFFF<20000H。所以取1001H。画图最直观。也就是说当段地址为1000H时,他无法取得到20000H,当段地址为1001H时,他地址可取的范围为10010+0~10010+FFFF。而20000在其范围内。
第二题sub后ax不是等于0么?jmp ax=jmp 0不对?

点评

第一题懂了,谢谢学长~~没学习微机所以基础比较薄~~  详情 回复 发表于 2014-11-5 13:13
sub ax,ax 这个指令,我把sub当成自加了.....失败失败~~  详情 回复 发表于 2014-11-5 13:10
手贱~~~电脑卡了下,不小心点了反对~~  详情 回复 发表于 2014-11-5 13:09
fighting · #3 · 2014-11-5 13:09:48  回复 支持 反对
标-子 发表于 2014-11-4 03:24
第一题,最大为2000H,2000*10H+0H=20000.最小为sa*10H+FFFFH=20000H。SA=1001H.因为1000*10H+FFFFH=10000+ ...

手贱~~~电脑卡了下,不小心点了反对~~
fighting · #4 · 2014-11-5 13:10:52  回复 支持 反对
标-子 发表于 2014-11-4 03:24
第一题,最大为2000H,2000*10H+0H=20000.最小为sa*10H+FFFFH=20000H。SA=1001H.因为1000*10H+FFFFH=10000+ ...

sub  ax,ax  这个指令,我把sub当成自加了.....失败失败~~
fighting · #5 · 2014-11-5 13:13:12  回复 支持 反对
标-子 发表于 2014-11-4 03:24
第一题,最大为2000H,2000*10H+0H=20000.最小为sa*10H+FFFFH=20000H。SA=1001H.因为1000*10H+FFFFH=10000+ ...

第一题懂了,谢谢学长~~没学习微机所以基础比较薄~~
回帖
B Color Image Link Quote Code Smilies
Command + Enter
快速回复 返回顶部 返回列表