8086与8051指令对比 - 图文

2019-03-09 13:01

8086指令集 3. 目的地址传送指令. 一、数据传输指令 LEA 装入有效地址. 作用:它们在存贮器和寄存器、 例: LEA DX,string ;把偏移地址寄存器和输入输出端口之间传存到DX. 送数据. LDS 传送目标指针,把指针内容装 入DS. 1. 通用数据传送指令. 例: LDS SI,string ;把段地址:偏移 MOV 传送字或字节. 地址存到DS:SI.

MOVSX 先符号扩展,再传 LES 传送目标指针,把指针内容装送. 入ES.

MOVZX 先零扩展,再传 例: LES DI,string ;把段地址:偏移送. 地址存到ESI.

PUSH 把字压入堆栈. LFS 传送目标指针,把指针内容装 POP 把字弹出堆栈. 入FS. PUSHA 把 例: LFS DI,string ;把段地址:偏移AX,CX,DX,BX,SP,BP,SI,DI依地址存到FSI. 次压入堆栈. LGS 传送目标指针,把指针内容装 POPA 把入GS.

DI,SI,BP,SP,BX,DX,CX,AX依 例: LGS DI,string ;把段地址:偏移次弹出堆栈. 地址存到GSI. PUSHAD 把 LSS 传送目标指针,把指针内容装EAX,ECX,EDX,EBX,ESP,EBP入SS. ,ESI,EDI依次压入堆栈. 例: LSS DI,string ;把段地址:偏移 POPAD 把地址存到SSI. EDI,ESI,EBP,ESP,EBX,EDX,E4. 标志传送指令. CX,EAX依次弹出堆栈.

LAHF 标志寄存器传送,把标志装

BSWAP 交换32位寄存器

入AH.

里字节的顺序

SAHF 标志寄存器传送,把AH内容

XCHG 交换字或字节.( 至

装入标志寄存器.

少有一个操作数为寄存器,段

PUSHF 标志入栈.

寄存器不可作为操作数)

POPF 标志出栈.

CMPXCHG 比较并交换操

PUSHD 32位标志入栈.

作数.( 第二个操作数必须为

POPD 32位标志出栈.

累加器AL/AX/EAX )

二、算术运算指令

XADD 先交换再累加.( 结

ADD 加法.

果在第一个操作数里 )

ADC 带进位加法.

XLAT 字节查表转换.

INC 加 1.

BX 指向一张 256 字节的

AAA 加法的ASCII码调整.

表的起点, AL 为表的索引值

DAA 加法的十进制调整.

(0-255,即 0-FFH); 返回 AL

SUB 减法.

为查表结果. ( [BX+AL]->

SBB 带借位减法.

AL )

2. 输入输出端口传送指令. DEC 减 1.

IN I/O端口输入. ( 语法: IN NEC 求反(以 0 减之).

CMP 比较.(两操作数作减法,仅修改累加器, {端口号│DX} )

OUT I/O端口输出. ( 语法: 标志位,不回送结果). OUT {端口号│DX},累加器 ) AAS 减法的ASCII码调整. 输入输出端口由立即方式 DAS 减法的十进制调整. 指定时, 其范围是 0-255; 由 MUL 无符号乘法. 寄存器 DX 指定时,其范围是 IMUL 整数乘法.

以上两条,结果回送AH和AL(字节0-65535.

运算),或DX和AX(字运算), 功能: 交换两个操作数的数据

语法: XCHG

AAM 乘法的ASCII码调整.

格式: XCHG r1,r2 XCHG m,r XCHG r,m

DIV 无符号除法. IDIV 整数除法. PUSH,POP

功能: 把操作数压入或取出堆栈 以上两条,结果回送:

语法: PUSH 操作数 POP 操作数 商回送AL,余数回送AH, (字节运

格式: PUSH r PUSH M PUSH data POP r POP m 算);

或 商回送AX,余数回送DX, (字运PUSHF,POPF,PUSHA,POPA 算). 功能: 堆栈指令群

格式 AAD 除法的ASCII码调整. : PUSHF POPF PUSHA POPA

CBW 字节转换为字. (把AL 中字节

LEA,LDS,LES

的符号扩展到AH中去)

功能: 取地址至寄存器

CWD 字转换为双字. (把AX中的字语法: LEA r,m LDS r,m LES r,m 的符号扩展到DX中去)

XLAT(XLATB) CWDE 字转换为双字. (把AX中的

字符号扩展到EAX中去) 功能: 查表指令

语法: XLAT XLAT m

CDQ 双字扩展. (把EAX中的字的

符号扩展到EDX中去) 三、逻辑运算指令 算数运算指令

AND 与运算.

ADD,ADC

OR 或运算.

功能: 加法指令

XOR 异或运算. 语法: ADD OP1,OP2 ADC OP1,OP2 NOT 取反. 格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data TEST 测试.(两操作数作与运算,仅: C,P,A,Z,S,O 影响标志修改标志位,不回送结果).

SUB,SBB SHL 逻辑左移.

功能:减法指令

SAL 算术左移.(=SHL) 语法: SUB OP1,OP2 SBB OP1,OP2 SHR 逻辑右移. 格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data SAR 算术右移.(=SHR) 影响标志: C,P,A,Z,S,O

ROL 循环左移.

INC,DEC ROR 循环右移.

功能: 把OP的值加一或减一

RCL 通过进位的循环左移.

语法: INC OP DEC OP

RCR 通过进位的循环右移. : INC r/m DEC r/m 格式 以上八种移位指令,其移位次数影响标志: P,A,Z,S,O

可达255次.

NEG 移位一次时, 可直接用操作码.

功能: 将OP的符号反相(取二进制补码)

如 SHL AX,1.

语法: NEG OP

移位>1次时, 则由寄存器CL给格式: NEG r/m 出移位次数. 影响标志: C,P,A,Z,S,O 如 MOV CL,04 SHL

MUL,IMUL AX,CL

功能: 乘法指令 8086/8088汇编语言指令集

语法: MUL OP IMUL OP 数据传送指令集

格式: MUL r/m IMUL r/m

影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志) MOV

功能: 把源操作数送给目的操作数

DIV,IDIV 语法: MOV 目的操作数,源操作数

功能:除法指令 格式: MOV r1,r2

语法: DIV OP IDIV OP MOV r,m

格式: DIV r/m IDIV r/m MOV m,r

MOV r,data

CBW,CWD

功能: 有符号数扩展指令 XCHG

语法: CBW CWD 语法: CLI STI 标志位: I AAA,AAS,AAM,AAD

功能: 非压BCD码运算调整指令 CMP 语法: AAA AAS AAM AAD 功能: 比较OP1与OP2的值 影响标语法: CMP r/m,r/m/data 志: A,C(AAA,AAS) S,Z,P(AAM,A标志位: C,P,A,Z,O AD) JMP DAA,DAS 功能: 跳往指定地址执行 功能: 压缩BCD码调整指令 语法: JMP 地址 语法: DAA DAS

JXX 影响标志: C,P,A,Z,S

功能: 当特定条件成立则跳往指定地址执行

位运算指令集 语法: JXX 地址 注: AND,OR,XOR,NOT,TEST A: ABOVE,当C=0,Z=0时成立 功能: 执行BIT与BIT之间的逻辑 B: BELOW,当C=1时成立 运算 C: CARRY,当弁时成立 CXZ: CX寄存器的值为0(ZERO)时成立 语 E: EQUAL,当Z=1时成立

法: AND r/m,r/m/data OR r/m,r/m/d G: GREATER(大于),当Z=0且S=0时成立 ata XOR r/m,r/m/data TEST r/m,r/m L: LESS(小于),当S不为零时成立 /d

N: NOT(相反条件),需和其它符号配合使用

ata NOT r/m

O: OVERFLOW,O=1时成立

影响标志: C,O,P,Z,S(其中C与O两

P: PARITY,P=1时成立

个标志会被设为0) NOT指令不影

PE: PARITY EVEN,P=1时成立

响任何标志位

PO: PARITY ODD,P=0时成立

S: SIGN,S=1时成立

Z: ZERO,Z=1时成立 SHR,SHL,SAR,SAL

功能: 移位指令

LOOP 语

法: SHR r/m,data/CL SHL r/m,data/功能: 循环指令集 CL SAR r/m,data/CL SAL r/m,data/语法: LOOP 地址

CL

LOOPE(Z)

地址 LOOPNE(Z) 地址 影响标志: C,P,Z,S,O

标志位: 无

ROR,ROL,RCR,RCL

CALL,RET 功能: 循环移位指令

功能: 子程序调用,返回指令 语

法: ROR r/m,data/CL ROL r/m,data/语法: CALL 地址 RET RET n CL RCR r/m,data/CL RCL r/m,data/标志位: 无

CL

INT,IRET

功能: 中断调用及返回指令 影响标志: C,P,Z,S,O

语法: INT n IRET

程序流程控制指令集 标志位: 在执行INT时,CPU会自动将标志寄存器的值入栈,在执行IRET时则会将堆 栈中的标志值弹回寄存器 CLC,STC,CMC 功能: 设定进位标志 字符串操作指令集 语法: CLC STC CMC

MOVSB,MOVSW,MOVSD 标志位: C

功能: 字符串传送指令

CLD,STD 语法: MOVSB MOVSW MOVSD 功能: 设定方向标志 标志位: 无 语法: CLD STD

CMPSB,CMPSW,CMPSD 标志位: D

功能: 字符串比较指令

CLI,STI 语法: CMPSB CMPSW CMPSD 功能: 设定中断标志 标志位: C,P,Z,S,O

SCASB,SCASW

功能: 字符串搜索指令 语法: SCASB SCASW 标志位: C,P,Z,S,O

LODSB,LODSW,STOSB,STOSW 功能: 字符串载入或存贮指令 语

法: LODSB LODSW STOSB STOSW

标志位: 无

REP,REPE,REPNE 功能: 重复前缀指令集 语法: REP 指令S REPE 指令S REPNE 指令S 标志位: 依指令S而定

80C51 汇编指令集

按功能排列 1.数据传送指令 助 记 符 MOV A,Rn MOV A,data MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,data 说明 寄存器送 A 直接字节送 A 间接 RAM 送 A 立接数送 A A 送寄存器 直接数送寄存器 立即数送寄存器 A 送直接字节 寄存器送直接字节 直接字节送直接字节 间接 Rn 送直接字节 立即数送直接字节 A 送间接 Rn 直接字节送间接 Rn 立即数送间接 Rn MOVC A,@A+PC MOVX A,@Ri MOVX A,@DPTR 字节 周期 1 2 1 2 1 2 2 2 2 3 2 3 1 1 2 3 MOVX 1 1 1 1 1 2 1 1 1 代 码 E8--EF E5 E6--E7 74 F8--FF A8--AF 78--7F F5 88—8F 85 86;87 75 F6;F7 A6;A7 76;77 90 @Ri,A MOVX @DPTR,A PUSH data MOV Rn,#data MOV data,A MOV data,Rn MOV data,data MOV data,@Ri MOV data,#data MOV @Ri,A MOV @Ri,data MOV @Ri,#data MOV C,bit MOV bit,C 2 2 2 2 1 2 1 MOV DPTR,#data16 16 位常数送数据指针 MOVC A,@A+DPTR POP data XCH A,Rn XCH A,data 直接位送进位位 进位位送直接位

2 2 1 2 2 A2 92 93 A+DPTR 寻址程序存贮字节送 A 3

A+PC 寻址程序存贮字节送 A 外部数据送 A(8 位地址) 外部数据送 A(16 位地址) A 送外部数据(8 位地址) A 送外部数据(16 位地址) 直接字节进栈道,SP 加 1 直接字节出栈,SP 减 1 寄存器与 A 交换 直接字节与 A 交换 间接 Rn 与 A 交换 间接 Rn 与 A 低半字节交换

1 2 1 2

1 2 1 2 1 2 2 2

2 2 1 1

2 1

1 1 1

1

83 E2;E3 E0 F2;F3 F0 C0 D0 C8—CF C5 C6;C7 D6;D7

XCH A,@Ri XCHD A,@Ri


8086与8051指令对比 - 图文.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于VB的学生信息管理系统

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: