汇编学习笔记

EIP  用来存储CPU要读取指令的地址,CPU通过EIP寄存器读取即将要执行的指令。每次CPU执行完相应的汇编指令之后,EIP寄存器的值就会增加。

jmp 分为段间转移和段内转移,段间转移需要提供新的段地址和偏移地址。

ip    instruction pointer,即 段,用来存储将要执行的下一条指令的偏移量

条件转移指令:v(1)根据单个标志位的状态判断转移的指令

指令 转移条件 说明
JC DEST CF=1 有进位/借位
JNC DEST CF=0 无进位/借位
JE/JZ DEST ZF=1 相等/等于零
JNE/JNZ DEST ZF=0 不相等/不等于零
JS DEST SF=1 是负数
JNS DEST SF=0 是正数
JO DEST OF=1 有溢出
JNO DEST OF=0 无溢出
JP/JPE DEST PF=1 有偶数个“1”
JNP/JPO DEST PF=0 有奇数个“1”
v(2)根据两个有符号数的比较结果判断转移的指令

 

指令 转移条件 含义 英文表述
  
JG/JNLE DEST SF=OF AND ZF=0 有符号数A>B JMP greater (not less or equal)
JGE/JNL DEST SF=OF OR ZF=1 有符号数A≥B JMP greater or equal (not less)
JL/JNGE DEST SF≠OF AND ZF=0 有符号数A<B JMP less (not greater or equal)
  
JLE/JNG DEST SF≠OF OR ZF=1 有符号数A≤B JMP less or equal (not greater)

v(3)根据两个无符号数的比较结果判断转移的指令 v

指令 转移条件 含义 英文表述
  
JA/JNBE DEST CF=0 AND ZF=0 无符号数A>B JMP above (not below or equal)
JAE/JNB DEST CF=0 无符号数A≥B JMP above or equal (not below )
JB/JNAE DEST CF=1
  
无符号数A<B JMP blow (not above or equal)
  
JBE/JNA DEST CF=1 OR ZF=1 无符号数A≤B JMP blow or equal (not above)
  
posted @ 2017-11-21 11:34  ur10ser  阅读(168)  评论(0编辑  收藏  举报