. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
转移指令的原理
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
不懂啊``好不容易学到这了``
[待解决]
回复[
6
次 ] 点击[
665
次 ]
xuan214
[帖 主]
[ 发表时间:2009-03-17 00:51 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:4
注册日期:2009-02-22 23:57
第9章检测题9.1 (1)
assume cs:code
data segment
?
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start
若要使程序中的JMP指令执行后,CS:IP 指向程序的第一条指令,在data 段中应该定义哪些数据?
这题我不懂啊``他们说填 db 0,0,0 我不懂 为什么要填3个0? 希望有人能详细的解答出来``我也看过别的帖子`说要使[bx+1]=ip=0 就行了``那为什么要填3个0呢`他定义的是字 2个0就好了丫``
他们
mywiil
[第
1
楼]
[ 回复时间:2009-03-18 10:24 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:61
信誉值:4
注册日期:2008-10-14 16:29
这题我不懂啊``他们说填 db 0,0,0 我不懂 为什么要填3个0? 希望有人能详细的解答出来``我也看过别的帖子`说要使[bx+1]=ip=0 就行了``那为什么要填3个0呢`他定义的是字 2个0就好了丫``
=============
“使[bx+1]=ip=0 就行了”的理解是对的。只要保证第2、3个位置上是0就行了。更兼容的定义数据形式我觉得应该这么写 db *,0,0,*,...
当然,这么写不是真的答案,取其中的一种就是正确的。你说的“他们”就是取了一种。
楼主之所以不懂,是因为没有理解jmp指令通过内存空间跳转的知识。我觉得书中说的很清楚,楼主不妨在多看两遍这一章的内容,仔细看,仔细想,这个问题没有弯子绕的。
xuan214
[第
2
楼]
[ 回复时间:2009-03-18 14:39 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:4
注册日期:2009-02-22 23:57
我明白了`这题的偏移地址是[bx+1][bx+2] 因为是word 而在内存中是以0算起的`所以第一个数不管他是什么都可以 只要第1 和第2个是0就好了(起始地址以0算起) 想了2天 =.=
xueyugaoyuan
[第
3
楼]
[ 回复时间:2012-08-20 22:18 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2012-08-14 17:57
O(∩_∩)O哈哈哈~ 不容易啊 ,明白了就好。
sz_hgc
[第
4
楼]
[ 回复时间:2012-08-31 02:48 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2012-07-21 21:21
我明白了`这题的偏移地址是[bx+1][bx+2] 因为是word 而在内存中是以0算起的`所以第一个数不管他是什么都可以 只要第1 和第2个是0就好了(起始地址以0算起) 想了2天 =.=
------------------
回复: 呵呵
whaition
[第
5
楼]
[ 回复时间:2012-09-26 11:34 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2012-09-26 11:24
db 3 dup(0) 也是可以的
qq1027798947
[第
6
楼]
[ 回复时间:2012-12-25 13:21 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2012-12-25 12:34
这题只能定义:3个0,,只定义两个是不可以的。。
因为:jmp word prt [bx+1}
ip的值是从第2个0开始取,,
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved