Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2707509
  • 博文数量: 416
  • 博客积分: 10220
  • 博客等级: 上将
  • 技术积分: 4193
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 09:47
文章分类

全部博文(416)

文章存档

2022年(1)

2021年(1)

2020年(1)

2019年(5)

2018年(7)

2017年(6)

2016年(7)

2015年(11)

2014年(1)

2012年(5)

2011年(7)

2010年(35)

2009年(64)

2008年(48)

2007年(177)

2006年(40)

我的朋友

分类: C/C++

2008-09-13 09:15:01

源程序:
assume cs:code
code segment
 start: mov ax, 0
 mov bx, 0
 jmp short s       ;(1)
 ;jmp near ptr s   ;(2)
 ;jmp far ptr s    ;(3)
 add ax, 2
 ;db 16 dup (0)
 s: add ax, 1
 inc ax
code ends
end start

调试工具tr
*** (1) *******************************************
AX=0000  BX=0000  CX=0000  DX=255B  SP=0000  BP=0000  SI=0100  DI=0000
DS=255B  ES=255B  SS=256B  CS=256B  IP=0000  o d I S z a p c t
255B:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 0B 82 8E 05 4B 01  ═  ƒ.Ü≡■.≡.éÄ.K.
255B:0010  23 04 56 01 23 04 23 04-01 01 01 00 02 FF FF FF  #.V.#.#......   
256B:0000  B80000          MOV       AX,0000
256B:0003  BB0000          MOV       BX,0000
256B:0006  EB03            JMP       000B   ;jmp short s(8bit)
256B:0008  83C002          ADD       AX,02
256B:000B  83C001          ADD       AX,01
256B:000E  40              INC       AX
*** (2) *******************************************
AX=0000  BX=0000  CX=0000  DX=255B  SP=0000  BP=0000  SI=0100  DI=0000
DS=255B  ES=255B  SS=256B  CS=256B  IP=0000  o d I S z a p c t
255B:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 0B 82 8E 05 4B 01  ═  ƒ.Ü≡■.≡.éÄ.K.
255B:0010  23 04 56 01 23 04 23 04-01 01 01 00 02 FF FF FF  #.V.#.#......   
256B:0000  B80000          MOV       AX,0000
256B:0003  BB0000          MOV       BX,0000
256B:0006  E90300          JMP       000C  ;jmp near ptr s(16bit)
256B:0009  83C002          ADD       AX,02
256B:000C  83C001          ADD       AX,01
256B:000F  40              INC       AX
*** (3) *******************************************
AX=0000  BX=0000  CX=0000  DX=255B  SP=0000  BP=0000  SI=0100  DI=0000
DS=255B  ES=255B  SS=256B  CS=256B  IP=0000  o d I S z a p c t
255B:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 0B 82 8E 05 4B 01  ═  ƒ.Ü≡■.≡.éÄ.K.
255B:0010  23 04 56 01 23 04 23 04-01 01 01 00 02 FF FF FF  #.V.#.#......   
256B:0000  B80000          MOV       AX,0000
256B:0003  BB0000          MOV       BX,0000
256B:0006  EA0E006B25      JMP FAR   256B:000E  ;jmp far ptr s(32bit)
256B:000B  83C002          ADD       AX,02
256B:000E  83C001          ADD       AX,01
256B:0011  40              INC       AX

************************************************
指令"jmp short 标号"的功能为:(ip)=(ip)+8位位移
指令"jmp near ptr 标号"的功能为:(ip)=(ip)+16位位移
指令"jmp far  ptr 标号"的功能为:实现的是段间转移
功能:(CS)=标号所在段的段地址;(ip)=标号所在段的偏移地址

机器指令跳转时表示的位移长度有差异
阅读(1402) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~