|
主题 : : 初学汇编,通过DEBUG改变段地址求寄存器的值理解不了? [待解决] |
回复[ 14次 ]
点击[ 3493次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-06-25 19:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:24
信誉值:3
注册日期:2007-06-06 11:53 |
检测点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=___
(指令执行时,DS=0001吗?这个段地址与题目中d 0:0 1f给的内存信息有关吗?) | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-07-15 21:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:179
信誉值:6
注册日期:2007-07-09 19:18 |
指令执行时,DS=1了,这个段地址与题目中d 0:0 1f给的内存信息有关
有段地址和偏移地址得出第一条mov ax,[0000] 中ds:0的物理地址为10H所以AX为2662H
把段地址和偏移地址都换算成物理地址就容易理解了,此题重点考察物理地址的转换. | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-12-05 20:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:1
注册日期:2007-12-02 21:14 |
首先说明有关。
根据题目要求计算第一个AX的值,因为是访问的部件是内存,偏移地址为0000,所以首要是确定它的段地址,从DS中获得,即DS=0001。接着就需要我们计算出物理地址,这时lz就会发现我们需要的数据在0000:0010处的字数据2662H。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2007-12-05 20:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:1
注册日期:2007-12-02 21:14 |
首先说明有关。
根据题目要求计算第一个AX的值,因为是访问的部件是内存,偏移地址为0000,所以首要是确定它的段地址,从DS中获得,即DS=0001。接着就需要我们计算出物理地址,这时lz就会发现我们需要的数据在0000:0010处的字数据2662H。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2008-06-09 07:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-06-06 08:42 |
mov ax,1 //ax = 1
mov ds,ax //ds = 1, ax = 1
mov ax,[0000] //ds = 1, ax = 2662 ax的值等于段地址ds乘以10加上偏移地址[0000]处的值,
因为ax是16位,所以ax=2662;
mov bx,[0001] //ds = 1, bx = e626 原因同上; | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-07-28 11:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-25 10:35 |
小弟 建立了汇编语言交流群,希望大家有什么问题可以在线交流.不知道这算不算违反了论坛的规定,如果是 就请删除吧,想一起交流的加:67024984 | | |
|
|
|
|
[第6楼]
[ 回复时间:2009-12-25 16:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51 |
mov ax,1
mov ds,ax
#此处DS中存放的地址为:0010:0000
mov ax,[0000]
#將内存单元0010:0000处内容传送至ax | | |
|
|
|
|
[第7楼]
[ 回复时间:2010-07-12 20:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-07-07 08:53 |
为什么每次 输入到MOV BX,0 这个指令的时候debug就死机了 按什么键都没反应了啊 | | |
|
|
|
|
[第8楼]
[ 回复时间:2010-09-06 14:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-20 20:50 |
0000:0010 和 0001:0000 描述的是同一个物理地址00010 | | |
|
|
|
|
[第9楼]
[ 回复时间:2010-11-02 22:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2010-10-25 16:06 |
|
|
|
|
|
[第10楼]
[ 回复时间:2010-11-11 22:40 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-11 17:55 |
|
|
|
|
|
[第11楼]
[ 回复时间:2013-12-08 21:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-12-07 11:57 |
虽然学过同一物理地址可以用不同的段地址:偏移地址来表示,, 但一做题目就忘记了,呵呵
果然做题可以发现自己那些地方掌握的不牢靠,或者说不断加深对知识的记忆 | | |
|
|
|
|
[第12楼]
[ 回复时间:2019-08-17 15:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-21 12:54 |
|