汇编指令和机械码的对应表
2021-04-20 21:07:19 阅读259 评论0 字号:大中小定阅
一、汇编速查
MOV  AA,BB        将BB  放到AA  里
CALL                  调用子程序(相当于BASIC  的GOSUB)
RET  与RETF    返回程序(相当于BASIC  的RETURN)
CMP  XX,YY        比拟XX  与YY
JZ                      假设相等那么转移
JNZ                    假设不相等那么转移
JB                      假设小于那么转移
JG                      假设大于那么转移
JMP                    无条件转移
J                  (各种转移指令)
LOOP                  循环直到CX为0
INT  XX              类似CALL  的中断涵数
PUSH  推入栈〔STACK〕ESP:PUSH  AX
POP  出栈ESP:POP  CX
XCHG  交换ESP:XCHG  AX,BX
IN、OUT  与PORT有关的IN/OUT
XLAT  查表
LEA  段内偏移量。ESP:LEA  AX,AREA1=MOV  AX,OFFSET  AREA1    LAHF、SAHF与棋标有关的存放器AH
PUSHF、POPF将棋标入/出栈
ADD  ESP  ADD  AX,CX  〔AX=AX+CX〕
ADC  参加棋标C的ADD
INC  ESP  INC  AX〔AX=AX+1〕
AAA  加法校正
SUB、SBB  减法
DEC  ESP:DEC  AX〔AX=AX-1〕
NEG  去补,
MUL、IMUL  乘
DIV、IDIV  除
SHR、SAR、SHL  算术、逻辑位移R=RIGHT  L=LEFT    OR、XOR、AND  逻辑运算ESP  :XOR  AX,AX〔AX=0〕
直接标志转移
指令格式机器码测试条件如...那么转移
JC            72            C=1                有进位
JNS          79            S=0                正号
JNC          73            C=0                无进位
JO            70            O=1                有溢出
JZ/JE      74            Z=1                零/等于
JNO          71            O=0                无溢出
JNZ/JNE  75            Z=0                不为零/不等于
JP/JPE    7A            P=1                奇偶位为偶
JS            78            S=1                负号
JNP/IPO  7B            P=0                奇偶位为奇
间接标志转移
指令格式机器码测试格式如...那么转移
JA/JNBE(比拟无符号数)      77                          C或Z=0  >                      高于/不低于或等于
JAE/JNB(比拟无符号数)      73                          C=0  >=                          高于或等于/不低于
JB/JNAE(比拟无符号数)      72                          C=1  <                            低于/不高于或等于
JBE/JNA(比拟无符号数)      76                          C或Z=1  <=                    低于或等于/不高于
JG/JNLE(比拟带符号数)      7F                          (S异或O〕或Z=0  >    大于/不小于或等于
JGE/JNL(比拟带符号数)      7D                          S异或O=0  >=                大于或等于/不小于
JL/JNGE(比拟带符号数)      7C                          S异或O=1  <                  小于/不大于或等于
JLE/JNG(比拟带符号数)      7E                          (S异或O)或Z=1  <=      小于或等于/不大于
无条件转移指令JMP
指令格式执行操作机器码说明
段内直接短转移Jmp  short        (IP)←(IP)+8位位移量EB                  转移范围-128到+127字节
段内直接近转移Jmp  near          (IP)←(IP)+16位位移量E9                  转移到段内的任一位置
段内间接转移Jmp  word              (IP)←(有效地址EA)          FF
段间直接(远)转移Jmp  far        (IP)←(偏移地址)
(CS)←(段地址)                  EA
段间间接转移Jmp                      dword  (IP)←(EA)
(CS)←(EA+2)
********************************************************************************************************************************
汇编指令与机器码的相互转换(转载)
查看上面的网址。
机器语言我们只要重点理解一下几个概念:
1. 机器语言指令有操作码(OP)和地址码两局部组成
|_____________OP_______________|__d__|__w__|
|_____________OP_______________|__s__|__w__| MOV AX,1234H 对应的机器码为:B83412
解法:判断-> 这个是8086汇编16位汇编指令格式,并且是立即寻址方式
查表-> 翻开opcodes.html文件,到标题为"Main Instructions ",单击"M "字母,然后对应查看"MOV Reg,Imm
"格式的"OpCode "项为:1011wrrr
再判断-> 由于存放器是AX, 立即数是1234H,明显是"对字操作",所以w=1
在查看本文章上面的"表1 ",对应的查到rrr的值为000
组合结果-> w=1
rrr=000
1011wrrr=1011 1000B -> B8H
根据"    3.指令格式简介" -> B8H + |立即数(低位在前高位在后)|=B83412H
PS: "+ " 符号不为"加号"
好了,已经解完第一题了,机器码为B83412H
汇编判断指令———————————————————————————————————————
指令4 -> MOV AX,BX 对应的机器码为:8BC3
解法:判断-> 这个是8086汇编16位汇编指令格式,并且是存放器寻址方式
查表-> 翻开opcodes.html文件,到标题为"Main Instructions ",单击"M
"字母,然后对应查看"MOV Reg,Reg "格式的"OpCode "项为:1000101woorrrmmm
再判断-> 由于存放器是AX, BX 明显是"对字操作",所以w=1
在查看本文章上面的"表4 ",对应查到oo=11 因为是存放器寻址方式
在查看本文章上面的"表1 ",对应查到rrr的值为000 ,因为当两个操
作数都是存放器,那么一般要以目的操作数为准
在查看本文章上面的"表3 ", 对应查到mmm的值为011 ,因为当两个操作数都是存放器,那么一般要以源操作数为准
组合结果-> w=1
oo=11
rrr=000
mmm=011
1000101woorrrmmm=1000 1011 1100 0011B -> 8BC3H
好了,已经解完第二题了,机器码为8BC3H
———————————————————————————————————————
呵呵,不错吧,很简单吧,有了80X86 OPCODES 查询表一切都是那么简单,如果还有什么问题,大家都来这里提问!
剩下的:
指令2 -> MOV EBX,0 对应的机器码为:66BB00000000
指令3 -> MOV CL,55H 对应的机器码为: B155
大家来练练手,注意指令2 需要用到32位指令格式,请查阅相关的80x86汇编语言书籍的机器语言局部,应该有解释的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。