. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于P55  检测点3.1(2)的问题  [待解决] 回复[ 2次 ]   点击[ 247次 ]  
xyq13560
[帖 主]   [ 发表时间:2012-08-02 15:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-07-14 11:16
(1)cs=2000,ip=0,ds=1000,ax=0,bx=0;  
(2)mov ax,6622H;  cs=2000.ip=3,ds=1000,ax=6622H,bx=0  
(3)jmp 0ff0:0100; cs=0ff0,ip=0100,ds=1000,ax=6622H,bx=0;  
(4)mov ax,2000H;  cs=0ff0,ip=0103,ds=1000,ax=2000H,bx=0;  
(5)mov ds,ax;     cs=0ff0,ip=0105,ds=2000,ax=2000H,bx=0;  
(6)mov ax,[0008]  cs=0ff0,ip=0108,ds=2000,ax=c389,bx=0;  
(7)mov ax,[2]     cs=0ff0,ip=010b,ds=2000,ax=ea66,bx=0.
这个是我看到别人的正确答案

我想问为什么{6}中的ax,bx是这个值?
在(5)的时候ds=2000h,而{6}的话偏移地址为8,所以关于ds的地址的话不是为2000:8吗?
这是不是要去执行mov bx,ax?那么bx不是应该为2000H吗?
而10005h那里`mov ax,[0008],这时怎么来运算?我是理解为把mov ax,2000h..
fpamc
[第1楼]   [ 回复时间:2012-08-02 19:54 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:4
注册日期:2012-01-01 16:36
请不要重复发帖,谢谢'
flower12355
[第2楼]   [ 回复时间:2012-11-15 00:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-11-14 22:39
jmp 是跳转命令,程序读到这里以后会无条件的执行跳转到10000h这个地方,所以mov bx,ax就不会被执行
mov ax,[0008]是指把物理地址20008H下的数据取出来放到AX,20008H下的是89 09H是C3,按照高高低低原则,就是AH=C3,AL=89
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved