. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于检测题3.1(2)的问题···求救~  [待解决] 回复[ 2次 ]   点击[ 279次 ]  
xyq13560
[帖 主]   [ 发表时间:2012-08-02 15:07 ]   [引用]   [回复]   [ 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:53 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:4
注册日期:2012-01-01 16:36
mov ax,[0008]
这条指令的意思是,将2000:0008(ds:偏移地址)处的字,送入ax。
2000:0008=20008H    此处对应的字是C389。所以ax=C389。
关于bx的值,一直没用到bx,所以bx=0。

你前面的基础不稳。你认真的重新看一遍前面的知识吧,书上的都是基础。
xyq13560
[第2楼]   [ 回复时间:2012-08-03 15:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-07-14 11:16
回复:[第1楼]
------------------
额额···我明白了·谢谢了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved