. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点3.1(2)中jmp 0ff0:0100,指令的意思是什么  [已解决] 回复[ 6次 ]   点击[ 901次 ]  
gocker
[帖 主]   [ 发表时间: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是干什么。。。
gocker
[第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
mouse
[第2楼]   [ 回复时间:2007-12-29 08:26 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
如果没有jmp,程序只能顺序执行20000h处的代码了,JMP 0FF0:0100 -将cs=0ff0 ip=0100,也就是把指针指向了10000h处,开始执行这个内存单元开始的代码了。
gocker
[第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啊
liunan2008
[第4楼]   [ 回复时间:2007-12-30 21:48 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:0
注册日期:2007-11-30 18:31
0ff0*16=0ff00,  0ff00+0100=10000
gocker
[第5楼]   [ 回复时间:2007-12-31 21:43 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
难怪,谢谢!liunan2008
gocker
[第6楼]   [ 回复时间:2007-12-31 21:43 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:14
注册日期:2007-10-15 14:54
此贴由 贴主 于 [ 2007-12-31 21:43 ] 结贴。 结贴原因:问题已解决
得分情况: 2楼(mouse):2分   4楼(liunan2008):8分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved