|
主题 : : 检测点3.1(2)中jmp 0ff0:0100,指令的意思是什么 [已解决] |
回复[ 6次 ]
点击[ 901次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-12-28 22:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54 |
P53
检测点3.1(2)
CS=2000H
IP=0
DS=1000H
AB=0,BX=0
只有2个段,10000H~1000CH 20000H~2000CH
20003H~20007H为 EA 00 01 F0 0F 即 jmp 0ff0:0100
20000h:
MOV AX,6622H
JMP 0FF0:0100
MOV BX,AX
10000H:
MOV AX,2000H
MOV DS,AX
MOV AX,[0008]
MOV AX,[0002]
实在是不明白那句JMP是干什么。。。 | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-12-28 22:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54 |
mov ax,6622 DS=0AFD CS=2000 IP=0003 AX=6622 BX=0000
jmp 0ff0:0100 DS=0AFD CS=0FF0 IP=0100 AX=6622 BX=0000
MOV AX,2000 DS=0AFD CS=0FF0 IP=0103 AX=2000 BX=0000
MOV DS,AX DS=2000 CS=0FF0 IP=0105 AX=2000 BX=0000
MOV AX,[0008] DS=2000 CS=0FF0 IP=0108 AX=C389 BX=0000
MOV AX,[0002] DS=2000 CS=0FF0 IP=010B AX=EA66 BX=0000 | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-12-29 08:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
如果没有jmp,程序只能顺序执行20000h处的代码了,JMP 0FF0:0100 -将cs=0ff0 ip=0100,也就是把指针指向了10000h处,开始执行这个内存单元开始的代码了。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2007-12-29 11:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54 |
不明白啊,为什么CS=0FF0 IP=0100后,就指向了10000H处``难道不是CS=1000H IP=0000吗
就算有多总方式,我也不明白为什么0FF0*16+0100=10000H啊 | | |
|
|
|
|
[第4楼]
[ 回复时间:2007-12-30 21:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:0
注册日期:2007-11-30 18:31 |
0ff0*16=0ff00, 0ff00+0100=10000 | | |
|
|
|
|
[第5楼]
[ 回复时间:2007-12-31 21:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54 |
|
|
|
|
|
[第6楼]
[ 回复时间:2007-12-31 21:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54 |
此贴由 贴主 于 [ 2007-12-31 21:43 ] 结贴。 结贴原因:问题已解决 | | |