|
主题 : : 本网的检测题的一个疑问 [待解决] |
回复[ 11次 ]
点击[ 726次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2009-09-18 00:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-08-04 21:04 |
下列指令的书写正确的是:__3__
1、 push al
2、 mov cs:[0],ds:[10]
3、 pop si
4、 mov ds:[0],2
答案是3
我就是不知道4为什么错啊。希望大家帮帮我。
数据可以直接送入内存单元的有什么错吗? | | |
|
|
|
|
[第1楼]
[ 回复时间:2009-09-18 16:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:273
信誉值:0
注册日期:2008-01-23 20:23 |
少了操作数据的大小说明了,反问楼主一句:你的2是字型还是字节型或者是双字型的数据啊?这涉及这个数据占几个内存单元的问题。你不写明,程序怎么知道你什么类型呢。
mov word ptr ds:[0],2
这样就知道2占两个内存单元了。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2009-09-19 23:54 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-08-30 20:59 |
|
|
|
|
|
[第3楼]
[ 回复时间:2009-09-28 14:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:6
信誉值:0
注册日期:2009-08-22 20:30 |
不明白的,为什么不上机DEBUG呢?
实践是检验真理的唯一标准,验证自己的推想,检验他人的正误。
何乐而不为? | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-05-19 01:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-17 02:23 |
|
|
|
|
|
[第5楼]
[ 回复时间:2010-07-21 19:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:8
信誉值:0
注册日期:2010-07-12 08:47 |
楼上的。。题目哪有直接向ds传数据了。。4错的原因。。
2他代表几个意思了。。0002,这个是16位的。02,这个是8位的。。不注明,CPU无法判断2是8位还是16位。younggay说了。要加上 word ptr。它的意思是传入的是字,16位的。。CPU可以通过这个判断出2代表0002. | | |
|
|
|
|
[第6楼]
[ 回复时间:2010-07-29 12:56 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-07-23 22:20 |
5楼的应该是你理解错了,mov ds:[0],2 这就是把2传到ds寄存器里,王爽老师在书里已经讲过了,不能直接向段寄存器里传数据的,只能通过通用寄存器来中转。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2010-07-29 16:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
5楼的应该是你理解错了,mov ds:[0],2 这就是把2传到ds寄存器里,王爽老师在书里已经讲过了,不能直接向段寄存器里传数据的,只能通过通用寄存器来中转。
------------------
回复:你也错啦。 mov ds:[0],2并不是把2传到ds里,而是把2传送至段地址为DS,偏移地址为0的内存单元中。 | | |
|
|
|
|
[第8楼]
[ 回复时间:2010-07-29 23:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-07-23 22:20 |
嗯,我的意思就是传送到DS:[0]的内存单元中,可能是表述没有清楚。 | | |
|
|
|
|
[第9楼]
[ 回复时间:2010-10-05 18:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-09-25 21:54 |
段寄存器不能进行内部传送,只能通用别的寄存器传送所以2和4都是错的。1更错. | | |
|
|
|
|
[第10楼]
[ 回复时间:2010-12-26 09:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-23 12:24 |
|
|
|
|
|
[第11楼]
[ 回复时间:2011-01-19 05:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-01-01 18:29 |
4、 mov ds:[0],2
尽管我不懂得3的意思,但其它3个答案都有错,
1因为16位寄存器传输的是16位数据
2,4犯了同样一个错,因为在执行mov内存单元地址操作时,CPU已经给了DS,cs那么指令存在重复。我想是这样,还有不能直接向内存单元写入数据,不能直接给段寄存器传数据。 | | |