. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  有关9.2第二题的一些问题  [待解决] 回复[ 7次 ]   点击[ 329次 ]  
hai1222
[帖 主]   [ 发表时间:2011-10-11 19:58 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-11 19:38
原题如下:

assume cs:code

data segment
 dd 12345678h
data ends

code segment

  start: mov ax,data
         mov ds,ax
         mov bx,0
         mov [bx],_____
         mov [bx+2],_____
         jmp dword ptr ds:[0]
         
code ends

end start
补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令。

我原本的想法是把data的地址作为段地址,放在[bx+2]处,一个dd字符占的空间算出偏移地址放在[bx]处,所以我打算这样补充:
mov [bx],16
mov [bx+2],ax
编译出错,指出我填的第一行有错误 operand must have size
但是我这样写:
mov [bx],1234h
又能通过编译, 我又试过010h,依然不能通过编译
我的问题是:1、这道我的想法可不可行,答案我已经看过了
           2、为何我直接把立即数写入内存,有的可行,有的不可行,可能我前面有点知识没学好,求解答
chinatree
[第1楼]   [ 回复时间:2011-10-12 04:00 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
书上说了,首先要知道一个数据的地址,还要知道数据的大小。mov word ptr [bx],1234h就不会有语法错误了。
hai1222
[第2楼]   [ 回复时间:2011-10-12 08:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-11 19:38
谢谢这么晚了还给我回信息啊。
mov [bx],1234h是能够通过编译的
mov [bx],16或mov [bx],010h却不能通过编译
如果说要指定大小,那什么情况下应该指定
fengyuxiang
[第3楼]   [ 回复时间:2011-11-09 16:42 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-10 09:15
答案应该是:
ds:[4]
cs
fengyuxiang
[第4楼]   [ 回复时间:2011-11-09 16:59 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-10 09:15
写错了
0
cx
grc10010010
[第5楼]   [ 回复时间:2011-11-30 13:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:13
注册日期:2011-07-13 08:38
此题的正确答案:http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1010&qkSg=2&qID=60903&readSg=1
sunnysong14
[第6楼]   [ 回复时间:2011-12-08 18:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-12-06 11:00
编译器指出的错误是:你没有指定传给内存 ds:[bx]的数据的大小。
内存ds:[bx]可以有两种意思:一个是字节,一个是字单元;所以我们必须要指出传进去的数字的性质

    “mov [bx],1234h是能够通过编译的 ”
———因为:1234h明显可以看出他代表一个字单元
     “mov [bx],16或mov [bx],010h却不能通过编译 ”
———因为,16可能是0016h:2比特,或者16h:1比特,编译器无法识别到底选择哪种
sunnysong14
[第7楼]   [ 回复时间:2011-12-08 18:40 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-12-06 11:00
5楼的兄弟答非所问啊!!!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved