. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  本网的检测题的一个疑问  [待解决] 回复[ 11次 ]   点击[ 726次 ]  
love.asm
[帖 主]   [ 发表时间: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为什么错啊。希望大家帮帮我。
数据可以直接送入内存单元的有什么错吗?
younggay
[第1楼]   [ 回复时间:2009-09-18 16:16 ]   [引用]   [回复]   [ top ] 
荣誉值:273
信誉值:0
注册日期:2008-01-23 20:23
少了操作数据的大小说明了,反问楼主一句:你的2是字型还是字节型或者是双字型的数据啊?这涉及这个数据占几个内存单元的问题。你不写明,程序怎么知道你什么类型呢。
mov word ptr ds:[0],2
这样就知道2占两个内存单元了。
bluebird
[第2楼]   [ 回复时间:2009-09-19 23:54 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-08-30 20:59
解释的还是没有看明白。
wnfzy-126
[第3楼]   [ 回复时间:2009-09-28 14:44 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2009-08-22 20:30
不明白的,为什么不上机DEBUG呢?
实践是检验真理的唯一标准,验证自己的推想,检验他人的正误。
何乐而不为?
hwenycocodq520
[第4楼]   [ 回复时间:2010-05-19 01:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-17 02:23
不能向ds寄存器直接传送数据
liuquanhao7232
[第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.
wenjie
[第6楼]   [ 回复时间:2010-07-29 12:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-23 22:20
5楼的应该是你理解错了,mov ds:[0],2  这就是把2传到ds寄存器里,王爽老师在书里已经讲过了,不能直接向段寄存器里传数据的,只能通过通用寄存器来中转。
masmaster
[第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的内存单元中。
wenjie
[第8楼]   [ 回复时间:2010-07-29 23:28 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-23 22:20
嗯,我的意思就是传送到DS:[0]的内存单元中,可能是表述没有清楚。
84404037
[第9楼]   [ 回复时间:2010-10-05 18:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-09-25 21:54
段寄存器不能进行内部传送,只能通用别的寄存器传送所以2和4都是错的。1更错.
goodxiaowan
[第10楼]   [ 回复时间:2010-12-26 09:59 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-23 12:24
直接数不能直接传送给内存!
linfeng0928
[第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那么指令存在重复。我想是这样,还有不能直接向内存单元写入数据,不能直接给段寄存器传数据。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved