汇编指令机器码对应表45634

合集下载

op code 汇编

op code 汇编

op code 汇编

OP Code汇编操作码(Operation Code,OPCode):描述机器语言指令中,指定要执行某种操作的机器码。

OPCode与指令的对应关系:同类型的指令,OPCode不一定相同;

指令不一定相同; 90 nop 90 xchg ax,ax

主要数据域:6个

代码(Code)

构造模式(MODR/M):主要解析逻辑集中在ModR/M域,通过查找Intel手册解析该域确定指令的具体格式;

分为三部分:模式(Mod)、寄存器(Reg)、寄存器(R/M)

SIB:辅助解析;

分为三部分:比例(Scale)、索引(Index0)、基数(Base)

以上数据域只有代码(Code)必须存在,指令长度在1~16字节之间;

我们查找的内容在Intel手册的“OPCode Map”中,也称为“操作码映射表”,作用是列出汇编指令与OPCode的对应关系。

大全指令二进制代码手册

大全指令二进制代码手册

汇编指令与二进制代码对应手册

汇编指令与二进制代码具有一一对应关系,也就是说,一条汇编指令必将唯一对应一条二进制代码指令,而一条二进制代码指令也唯一对应一条汇编指令,这就为写一个汇编语言与二进制指令相互对应的参考表成为可能。

手册的使用范围

本手册的读者需要据有一定的计算机专业知识,了解CPU的工作原理及内部的体系结构,熟悉IBM汇编、NASM或其它汇编语言,并且对汇编语言指令的二进制代码有足够的兴趣。本手册列出了绝大部分的中文汇编指令与二进制指令的对应关系,及相应的英文汇编指令名称。由于作者水平有限,而且本手册主要是对照NASM汇编语言指令集、《Intel微处理器结构、编程与接口》中文第六版及其Intel公司公布的《IA-32IntelArchitectureSoftwareDeveloper’sManual》2001年版的PDF格式文档指令集而生成的,或许有一些比较新的指令或者其他CPU特有的指令,并未收集在本手册中。

汇编指令解析

一、操作码汇编指令按其功能可分为:一般指令、浮点指令、多媒体指令和SIMD流式扩展(SSE)指令。汇编指令因其繁多且对应的二进制代码有多种变化而变得异常复杂,二进制代码的指令都是由操作码与操作数构成,就指令与操作数的关系而言,指令无非是无操作数、单操作数、双操作数和三操作数。所谓的操作码就是唯一代表着指令的意义的一段二进制码,操作码可以是单字节或者是双字节。有一种特殊的操作码,它与操作数合起来共用一个字节或者两个字节,这种操作码的操作数都是寄存器,而且寄存器的二进制代码都为这操作码字节的最后三位,在参照表中用“操作数指令”字段表示,如果这个段中的数据为“是”就表示这个操作码是与寄存器操作数共用一个字节或两个字节,否则就不是。从对照表中,我们可以看出,实事上二进制操作码与汇编指令名称并非一一对应,一条汇编指令的名称如:转移指令,它可以对应多个操作码,只有当指令名称与指令操作数合在一起,才与操作码和操作数有一一对应的关系。也就是说同一个指令名称,指令操作数类型不同,对应的二进制操作码也可能不同。操作码在对照表是用“操作码”字段表示。

STC汇编指令表

STC汇编指令表

STC汇编指令表

单片机指令功能一览表

助记符 代码 说明

MOV A,Rn E8~EF 寄存器A

MOV A,direct E5 dircet 直接字节送A

MOV A,@Ri ER~E7 间接RAM送A

MOV A,#data 74 data 立即数送A

MOV Rn,A F8~FF A送寄存器

MOV Rn,dircet A8~AF dircet 直接字节送寄存器

MOV Rn,#data 78~7F data 立即数送寄存器

MOV dircet,A F5 dircet A送直接字节

MOV dircet,Rn 88~8F dircet 寄存器送直接字节

MOV dircet1,dircet2 85 dircet1 dircet2 直接字节送直接字节

MOV dircet,@Ro 86~87 间接RAM送直接字节

MOV dircet,#data 75 dircet data 立即数送直接字节

MOV @Ri,A F6~F7 A送间接RAM

汇编语言指令大全X86和X87汇编指令大全(带注释)

汇编语言指令大全X86和X87汇编指令大全(带注释)

汇编语⾔指令⼤全X86和X87汇编指令⼤全(带注释)⽬录⼀、数据传输指令

1. 通⽤数据传送指令.

2. 输⼊输出端⼝传送指令.

3. ⽬的地址传送指令.

4. 标志传送指令.⼆、算术运算指令三、逻辑运算指令四、串指令五、程序转移指令六、伪指令

七、处理机控制指令:标志处理指令浮点运算指令集

1、控制指令

2、数据传送指令

3、⽐较指令

4、运算指令其它

1.机械码,⼜称机器码.

2.需要熟练掌握的全部汇编知识(只有这么多)

3.常见修改(机器码)

4.两种不同情况的不同修改⽅法

⼀、数据传输指令

它们在存贮器和寄存器、寄存器和输⼊输出端⼝之间传送数据.

1. 通⽤数据传送指令.

MOV 传送字或字节.

MOVSX 先符号扩展,再传送.

MOVZX 先零扩展,再传送.

PUSH 把字压⼊堆栈.

POP 把字弹出堆栈.

PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压⼊堆栈.

POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.

PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压⼊堆栈.

POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.

BSWAP 交换32位寄存器⾥字节的顺序

XCHG 交换字或字节.(⾄少有⼀个操作数为寄存器,段寄存器不可作为操作数)

CMPXCHG ⽐较并交换操作数.(第⼆个操作数必须为累加器AL/AX/EAX)

XADD 先交换再累加.(结果在第⼀个操作数⾥)

XLAT 字节查表转换.----BX指向⼀张256字节的表的起点,AL为表的索引值(0-255,即0-FFH);返回AL为查表结果.([BX+AL]->AL)

2. 输⼊输出端⼝传送指令.

IN I/O端⼝输⼊. ( 语法: IN 累加器, {端⼝号│DX} )

OUT I/O端⼝输出. ( 语法: OUT {端⼝号│DX},累加器 )输⼊输出端⼝由⽴即⽅式指定时, 其范围是 0-255; 由寄存器 DX 指定时,其范围是 0-65535.

二进制汇编语言表

二进制汇编语言表

- 1 - 二进制汇编语言表

| 二进制码 | 汇编指令 | 描述 |

| --- | --- | --- |

| 000000 | NOP | 空操作 |

| 000001 | ADD | 加法 |

| 000010 | SUB | 减法 |

| 000011 | MUL | 乘法 |

| 000100 | DIV | 除法 |

| 000101 | MOV | 数据传送 |

| 000110 | INC | 加一 |

| 000111 | DEC | 减一 |

| 001000 | AND | 逻辑与 |

| 001001 | OR | 逻辑或 |

| 001010 | XOR | 逻辑异或 |

| 001011 | NOT | 逻辑非 |

| 001100 | SHL | 左移 |

| 001101 | SHR | 右移 |

| 001110 | CMP | 比较 |

| 001111 | JMP | 无条件跳转 |

| 010000 | JZ | 零标志位跳转 |

| 010001 | JNZ | 非零标志位跳转 |

| 010010 | JE | 相等跳转 | - 2 - | 010011 | JNE | 不相等跳转 |

| 010100 | JA | 无符号大于跳转 |

| 010101 | JAE | 无符号大于等于跳转 |

| 010110 | JB | 无符号小于跳转 |

| 010111 | JBE | 无符号小于等于跳转 |

| 011000 | CALL | 调用子程序 |

| 011001 | RET | 返回子程序 |

| 011010 | INT | 中断 |

51指令机器码对照表

51指令机器码对照表

微机原理与接口技术──51指令机器码

1 MCS-51单片机指令编码

一、数据传送指令 助记符指令 机器指令编码

MOV A,Rn 1 1 1 0 1 r r r

MOV A,direct 1 1 1 0 0 1 0 1 直接地址

MOV A,@Ri 1 1 1 0 1 0 1 i

MOV A,#data 0 1 1 1 0 1 0 0 立即数

MOV Rn,A 1 1 1 1 1 r r r

MOV Rn, direct 1 0 1 0 1 r r r 直接地址

MOV Rn, #data 0 1 1 1 1 r r r 立即数

MOV direct,A 1 1 1 1 0 1 0 1 直接地址

MOV direct,Rn 1 0 0 0 1 r r r 直接地址

MOV direct,direct 1 0 0 0 0 1 0 1 直接地址(源) 直接地址(目)

MOV direct,@Ri 1 0 0 0 0 1 1 i 直接地址

MOV direct,#data 0 1 1 1 0 1 0 1 直接地址 立即数

MOV @Ri,A 1 1 1 1 0 1 1 r

MOV @Ri,direct 1 0 1 0 0 1 1 i 直接地址

MOV @Ri,#data 0 1 1 1 0 1 1 i 立即数

MOV DPTR,#data16 1 0 0 1 0 0 0 0 高位立即数 低位立即数

MOVX A,@DPTR 1 1 1 0 0 0 0 0

MOVX A,@Ri 1 1 1 0 0 0 1 i

MOVX @DPTR,A 1 1 1 1 0 0 0 0

MOVX @Ri,A 1 1 1 1 0 0 1 i

微机原理与接口技术──51指令机器码

2 MOVC A,@ A+PC 1 0 0 0 0 0 1 1

MOVC A,@ A+DPTR 1 0 0 1 0 0 1 1

SWAP A 1 1 0 0 0 1 0 0

汇编语言常见指令

‚PTR‛操作符 :强制类型转换

MOV BYTE PTR [BX], 20H

;1B立即数20H送DS:[BX]

MOV WORD PTR [BX], 20H

;立即数20H送DS:[BX],

;00H送DS:[BX+1]

2.LEA(Load Effective Address)

设:变量X的偏移地址为1020H , (BP)=0020H

执行指令后:

LEA DX, X

LEA BX, [BP]

; 执行后, (DX) = 1020H

; 执行后, (BX) = 0020H

3.地址传送指令LDS,LES

LDS REG16, MEM ; 从存储器取出4B,送入REG16和DS

LES REG16, MEM ; 从存储器取出4B,送入REG16和ES

4. 符号扩展指令CBW,CWD

CBW ;将AL寄存器内容符号位扩展到AH

CWD ;将AX寄存器内容符号位扩展到DX

设:(AX)= 8060H,(DX)=1234H

执行下列指令后

CBW

;(AX)= 0060H

设:(AX)= 8060H,(DX)=1234H

执行下列指令后

CWD

;(DX)= 0FFFFH,(AX)= 8060H

5.交换指令XCHG

例如,(AX)= 5678H

执行下面指令后

XCHG AH, AL

;(AX)= 7856H

6.换码指令XLAT

XLAT ;AL←DS: [BX+AL]

表格的首地址事先存放在内存逻辑地址DS: BX中,

AL的内容是相对于表格的位移量,

把对应内存的内容取出放在AL寄存器。

7. 逻辑运算符

SHR(右移)

SHL(左移)

AND(与)

OR(或)

XOR(异或) NOT(取反

8.关系运算符

关系运算符用于两个数的比较,结果为‚真(-1)‛或‚假(0)‛

GT(>)

GE(>=)

LT(<)

汇编基本指令

一个汇编指令API,供大家查询使用。

MOV(MOVe) 传送指令

PUSH 入栈指令

POP 出栈指令

XCHG(eXCHanG) 交换指令

XLAT(TRANSLATE) 换码指令

LEA (Load Effective Address) 有效地址送寄存器指令

LDS(Load DS with pointer) 指针送寄存器和DS指令

LES(Load ES with pointer) 指针送寄存器和ES指令

LAHF(Load AH with Flags) 标志位送AH指令

SAHF(Store AH into Flgs) AH送标志寄存器指令

PUSHF(PUSH the Flags) 标志进栈指令

POPF(POP the Flags) 标志出栈指令

ADD 加法指令

ADC 带进位加法指令

INC 加1指令

SUB(SUBtract) 不带借位的减法指令

SBB(SuVtrach with borrow) 带借位的减法指令

DEC(DECrement) 减1指领

NEG(NEGate) 求补指令

CMP(CoMPare) 比较指令

MUL(unsinged MULtiple) 无符号数乘法指令

IMUL(sIgned MUL tiple) 有符号数乘法指令

DIV(unsigned DIVide) 无符号数除法指令

IDIV(sIgned DIVide) 有符号数除法指令

CBW(Count Byte to Word) 字节转换为字指令

CWD(Count Word to Doble word) 字转换为双字指令

DAA 压缩的BCD码加法十进制调整指令

DAS 压缩的BCD码减法十进制调整指令

AAA 非压缩的BCD码加法十进制调整指令

AAS 非压缩的BCD码加法十进制调整指令

AND 逻辑与指令

汇编指令(常用指令)

.

. 汇编指令

百科名片

汇编指令是汇编语言中使用的一些操作符(如mov,inc,loop)和助记符,还包括一些伪指令(如assume,end)。用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。

目录

一、数据传输指令

二、算术运算指令

三、逻辑运算指令

四、串指令

五、程序转移指令

六、伪指令

编辑本段

一、数据传输指令

它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。

1. 通用数据传送指令

MOV 传送字或字节.

MOVSX 先符号扩展,再传送.

MOVZX 先零扩展,再传送.

PUSH 把字压入堆栈.

POP 把字弹出堆栈.

PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.

POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.

PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.

POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.

BSWAP 交换32位寄存器里字节的顺序

XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)

CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )

XADD 先交换再累加.( 结果在第一个操作数里 )

XLAT 字节查表转换.

── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即

0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL ) .

. 2. 输入输出端口传送指令.

IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )

OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )

8051单片机汇编指令速查表详解

8051系列单片机汇编语言指令速查表

编号 指令名称 指令助记符 指令说明

数据传送类指令(29条)

1

一般传送 MOV A, #data 将立即数#data送累加器A

2 MOV direct, #data 将立即数#data送片内RAM direct地址单元内

3 Mov Rn, #data 将立即数#data送寄存器Rn

4 Mov @Ri, #data 寄存器Ri内为RAM地址,将立即数#data送该地址单元内

5 Mov direct2, direct1 将direct1地址单元的数据送 direct2地址单元内

6 Mov direct, rn 将Rn的数据送 direct地址单元内

7 Mov Rn, direct 将direct地址单元内的数据送Rn寄存器

8 Mov direct, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据送direct地址单元内

9 Mov @Ri, direct 寄存器Ri内为RAM地址,将direct地址单元内的数据送该地址单元内

10 Mov A, Rn 将寄存器Rn内的数据送累加器A

11 Mov Rn, A 将累加器A内的数据送寄存器Rn

12 Mov A, direct 将direct地址单元内的数据送累加器A

13 Mov direct, A 将累加器A内的数据送direct地址单元内

14 Mov A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A

15 Mov @Ri , A 寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内

16 目的地址传送 Mov DPTR, #data16 将16位立即数送数据指针DPTR寄存器

17

字节交换 SWAP A 累加器A高低4位数据交换

18 XCH A, Rn 将累加器A数据和寄存器Rn内的数据交换

19 XCH A, direct 将累加器A数据和direct地址单元内的数据交换

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档