[006][x86汇编语言] jmp near infi E9FDFF

学习笔记

《x86汇编语言:从实模式到保护模式》
https://www.jianshu.com/p/d481cb547e9f

标号

  • 标号可以由字母 数字 _ $ # @ ~ . ?组成;
  • 标号必须以字母 . _ ?中的任意一个打头;

声明(Declare)

并不是处理器指令,只是编译器提供的汇编指令,称为伪指令(pseudo instruction)

  • DB declare byte 声明字节
  • DW declare word 声明字
  • DD declare double word 声明双字
  • DQ declare quad word 声明四字数据

转移指令 JMP

  • 0xEA:直接转移指令

  • 0xE9:相对转移指令
    near 仅仅用以指示相对量是16位的

c5-4.lst

     1 00000000 E90200                  jmp near start
     2 00000003 55AA                    data db 0x55,0xaa
     3 00000005 B80000                  start:  mov ax,0
     4 00000008 EA05000020                      jmp 0x2000:0x0005

e5-2.lst

行号  汇编地址  机器码                  汇编指令                            注释
98 0000012B E9FDFF                     infi: jmp near infi                 ;无限循环
  • 0xFDFF 等于十进制数 65533,本质等于 jmp -3

https://www.jianshu.com/p/e8eea9f2ceb5

  • 当指令jmp near infi执行时,转移到的目标位置是 IP+0xFFFD+30xFFFD+3 = 0x 1 0000,处理器只使用16位的偏移地址,保留16位的结果是0x0000,导致处理器再次执行当前的指令,无限循环。

你可能感兴趣的:([006][x86汇编语言] jmp near infi E9FDFF)