|
主题 : : 检测题不明白,请教? [待解决] |
回复[ 8次 ]
点击[ 562次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-05-16 00:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-04 17:53 |
能够将ax中的内容送到内存0000:0200H处的指令序列是( )。
1、 mov ds,0
mov bx,200h
mov [bx],ax
2、 mov ax,200h
mov ds,ax
mov bx,0
mov [bx],ax
3、 mov ax,20h
mov ds,ax
mov bx,0
mov [bx],ax
4、 mov bx,20h
mov ds,bx
mov bx,0
mov [bx],ax
上面4个答案 按我所学应为1是对的, 但是DS 是不能直接装入数据的的,而是要通过寄存器来中转! 其它的段地址均错了,应不对!
请教各位老师指点 是这样吗? 希能详细解说!
谢谢! | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-05-17 15:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48 |
上面4个答案 按我所学应为1是对的, 但是DS 是不能直接装入数据的的,而是要通过寄存器来中转!
--------------
你已经给自己解释了,第一题不对的原因,此句有语法错误。
0:200=200H(物理地址)
20:0 =200H(物理地址)
两者的物理地址相同。
注意理解,同一个物理地址可以由不同的段地址和偏移地址组成。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-05-17 23:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-04 17:53 |
|
|
|
|
|
[第3楼]
[ 回复时间:2010-11-29 16:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2010-11-24 11:04 |
|
|
|
|
|
[第4楼]
[ 回复时间:2010-11-29 21:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2010-11-25 19:35 |
bx可以用来存放存储器的地址或地址的一部分。。。】 | | |
|
|
|
|
[第5楼]
[ 回复时间:2010-12-16 11:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-12-16 11:41 |
3已经把AX原来的内容覆盖了…虽然最后送入了内存,却已经不是之前想要传进取的数据了… | | |
|
|
|
|
[第6楼]
[ 回复时间:2011-01-14 15:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-01-13 23:25 |
1错啦 因为它执行了mov ds,0 违反了立即数不能直接赋值给段寄存器的原则
2错 因为mov ax,200h
mov ds,ax
mov bx,0
得到的地址是02000+0=02000H 是错误的地址
3跟4是对的 | | |
|
|
|
|
[第7楼]
[ 回复时间:2011-01-14 15:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-01-13 23:25 |
|
|
|
|
|
[第8楼]
[ 回复时间:2011-01-17 00:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-01-01 18:29 |
|