汇编指令、机器码表


 一、状态寄存器

PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下图所示:

条件码:
①OF(Overflow Flag)溢出标志。溢出时为1,否则置0。
②SF(Sign Flag)符号标志。结果为负时置1,否则置0.
③ZF(Zero Flag)零标志,运算结果为0时ZF位置1,否则置0.
④CF(Carry Flag)进位标志,进位时置1,否则置0.
⑤AF(Auxiliary carry Flag)辅助进位标志,记录运算时第3位(半个字节)产生的进位置。有进位时1,否则置0.
⑥PF(Parity Flag)奇偶标志。结果操作数中1的个数为偶数时置1,否则置0.

控制标志位:
⑦DF(Direction Flag)方向标志,在串处理指令中控制信息的方向。
⑧IF(Interrupt Flag)中断标志。
⑨TF(Trap Flag)陷井标志。

二、 直接标志转移(8位寻址)

指令格式机器码测试条件如...则转移指令格式机器码测试条件如...则转移
JC72C=1有进位JNS79S=0正号
JNC73C=0无进位JO70O=1有溢出
JZ/JE74Z=1零/等于JNO71O=0无溢出
JNZ/JNE75Z=0不为零/不等于JP/JPE7AP=1奇偶位为偶
JS78S=1负号JNP/IPO7BP=0奇偶位为奇

三、间接标志转移(8位寻址)

指令格式机器码测试格式如...则转移
JA/JNBE(比较无符号数)77C或Z=0> 高于/不低于或等于
JAE/JNB(比较无符号数)73C=0>= 高于或等于/不低于
JB/JNAE(比较无符号数)72C=1< 低于/不高于或等于
JBE/JNA(比较无符号数)76C或Z=1<= 低于或等于/不高于
JG/JNLE(比较带符号数)7F(S异或O)或Z=0> 大于/不小于或等于
JGE/JNL(比较带符号数)7DS异或O=0>= 大于或等于/不小于
JL/JNGE(比较带符号数)7CS异或O=1< 小于/不大于或等于
JLE/JNG(比较带符号数)7E(S异或O)或Z=1<= 小于或等于/不大于

四、无条件转移指令(fisheep译 fisheep@sohu.com )

操作码伪码指令含义
EB  cbJMP rel8 相对短跳转(8位),使rel8处的代码位下一条指令
E9  cwJMP rel16相对跳转(16位),使rel16处的代码位下一条指令
FF  /4JMP r/m16绝对跳转(16位),下一指令地址在r/m16中给出
FF  /4JMP r/m32绝对跳转(32位),下一指令地址在r/m32中给出
EA  cbJMP ptr16:16远距离绝对跳转, 下一指令地址在操作数中
EA  cbJMP ptr16:32远距离绝对跳转, 下一指令地址在操作数中
FF  /5JMP m16:16远距离绝对跳转, 下一指令地址在内存m16:16中
FF  /5JMP m16:32远距离绝对跳转, 下一指令地址在内存m16:32中

五、16位/32位寻址方式(fisheep译 fisheep@sohu.com  

操作码伪码指令跳转含义 跳转类型跳转的条件(标志位)
0F 87  cw/cdJA rel16/32大于near(CF=0 and ZF=0)
0F 83  cw/cdJAE rel16/32大于等于near(CF=0)
0F 82  cw/cdJB rel16/32小于near(CF=1)
0F 86  cw/cdJBE rel16/32小于等于near(CF=1 or ZF=1)
0F 82  cw/cdJC rel16/32进位near(CF=1)
0F 84  cw/cdJE rel16/32等于near(ZF=1)
0F 84  cw/cdJZ rel16/32为0near(ZF=1)
0F 8F  cw/cdJG rel16/32大于near(ZF=0 and SF=OF)
0F 8D  cw/cdJGE rel16/32 大于等于near(SF=OF)
0F 8C  cw/cdJL rel16/32小于 near(SF<>OF)
0F 8E  cw/cdJLE rel16/32小于等于near(ZF=1 or SF<>OF)
0F 86  cw/cdJNA rel16/32 不大于near(CF=1 or ZF=1)
0F 82  cw/cdJNAE rel16/32不大于等于near(CF=1)
0F 83  cw/cdJNB rel16/32不小于near(CF=0)
0F 87  cw/cdJNBE rel16/32不小于等于near(CF=0 and ZF=0)
0F 83  cw/cdJNC rel16/32 不进位near(CF=0)
0F 85  cw/cdJNE rel16/32不等于near(ZF=0)
0F 8E  cw/cdJNG rel16/32不大于near(ZF=1 or SF<>OF)
0F 8C  cw/cdJNGE rel16/32 不大于等于near(SF<>OF)
0F 8D  cw/cdJNL rel16/32不小于near(SF=OF)
0F 8F  cw/cdJNLE rel16/32 不小于等于near(ZF=0 and SF=OF)
0F 81  cw/cdJNO rel16/32未溢出near(OF=0)
0F 8B  cw/cdJNP rel16/32 不是偶数near(PF=0)
0F 89  cw/cdJNS rel16/32 非负数near(SF=0)
0F 85  cw/cdJNZ rel16/32非零(不等于)near(ZF=0)
0F 80  cw/cdJO rel16/32 溢出near(OF=1)
0F 8A  cw/cdJP rel16/32 偶数near(PF=1)
0F 8A  cw/cdJPE rel16/32偶数near(PF=1)
0F 8B  cw/cdJPO rel16/32 奇数near(PF=0)
0F 88  cw/cdJS rel16/32负数near(SF=1)
0F 84  cw/cdJZ rel16/32 为零(等于)near(ZF=1) 

注:一些指令操作数的含义说明: 

  rel8           表示 8 位相对地址 
  rel16         表示 16 位相对地址 
  rel16/32    表示 16 或 32 位相对地址 
  r/m16        表示 16 位寄存器 
  r/m32        表示 32 位寄存器


评论



个人信息

求注册,求登录!

解题动态

精选练习

精选教程

联系我们