. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于段地址和偏移地址的疑问(检测点3.1_1)  [待解决] 回复[ 5次 ]   点击[ 390次 ]  
lyqflnh
[帖 主]   [ 发表时间:2014-08-01 21:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-08-01 20:11
检测点3.1   
  (1)在Debug中用“d   0:0   1f”查看内存,结果如下:   
  0000:0000   70   80   F0   30   EF   60   30   E2-00   80   80   12   66   20   22   60   
  0000:0010   62   26   E6   D6   CC   2E   3C   3B-AB   BA   00   00   26   06   66   88   
  下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。   
  MOV   AX,1   
  MOV   DS,AX   
  MOV   AX,[0000]         AX=___   
  MOV   BX,[0001]         BX=_____   
  MOV   AX,BX                 AX=___   
  MOV   AX,[0000]         AX=___   
  MOV   BX,[0002]         BX=_____   
  ADD   AX,BX                 AX=___   
  ADD   AX,[0004]         AX=___   
  MOV   AX,0                   AX=___   
  MOV   AL,[0002]         AX=___   
  MOV   BX,0                   BX=_____   
  MOV   BL,[000C]         BX=_____   
  ADD   AL,BL                 AX=___   

刚开始的时候, 一上来就写了个1:0...后来发现题目根本就没有这个地址的内容

后来用公式转换成物理地址后, 所有的空都填对了

不过, 后来想想, 又有点晕了

题目中的0000:0000和0000:0010不就是 "段地址:偏移地址"的表示方法么
而ds保存的是段地址的值, 是1;
按第一空, 偏移地址是0000;
那么, 就很自然得到了要使用的地址0001:0000

但很明显,这样是错的...求解?
gyq
[第1楼]   [ 回复时间:2014-08-10 00:49 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2014-08-02 21:25
我的理解是:0001:0000 = 0000:0010
你自己问题在哪里,那个地址是对的啊。
abusiness
[第2楼]   [ 回复时间:2014-09-15 16:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-09-15 15:52
自己计算就是0010:0 这里的数据 但是你把数据给Debug他自己 计算出的地址就是0001:0
abusiness
[第3楼]   [ 回复时间:2014-09-15 16:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-09-15 15:52
难道是CPU 已经不进入血汗工厂了?
gyq
[第4楼]   [ 回复时间:2014-09-16 01:55 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2014-08-02 21:25
回复:[第2楼]
------------------
“自己计算就是0010:0 这里的数据”这个怎么来的?
1461299415
[第5楼]   [ 回复时间:2014-11-15 13:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-11-08 19:06
mov ax,1
mov ds,ax
mov ax,[0000]
此时,指向的数据段地址是0001:0000
题目是错误的,不过自己运行的话找到0001:0000中的内容做题就行了,不要按照书上给的!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved