2022年2022年汇编语言基础--汇编指令 .pdf
《2022年2022年汇编语言基础--汇编指令 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言基础--汇编指令 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微处理器指令系统概述:一台计算机所能识别和执行的全部指令,称为该机器的指令系统,又称指令集。一般指令分为: “告诉计算机干什么”的指令操作助记符,“指令操作对象”即操作数。寻址方式概述:指定操作数或操作数存放位置的方法称为寻址方式。8086 的寻址方式有三类:立即寻址、寄存器寻址和存储器寻址;其中存储器寻址又分为 直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址五种。立即寻址: 操作数直接写在指令中的寻址方式,因为这种操作数称为立即数,所以这种寻址方式也称为立即数寻址方式。立即数可以使8 位; 16 位; 32 位;例如: MOV AX,6789H ADD AX,1
2、234H 寄存器寻址: 指令所要的操作数事先已存储在某寄存器中,或把目标操作数存入寄存器中,或者源操作数和目标操作数都是寄存器。例如: MOV AX,BX MOV AX,6789H( 源操作数是立即数寻址,目的操作数是寄存器寻址 ) 存储器寻址:在存储器中查找操作数。1直接寻址方式:指令所要的操作数存放在内存中,在指令中直接给出操作数的段地址和有效地址,从而使8086 的 BIU 部件能够利用地址加法器得到实际物理地址。例如: MOV AX,DS:2000H (mov 默认DS 为存放数据的段,所以这个指令等价于MOV AX,2000H )MOV AX,ES:2000H 2寄存器间接寻址方式:
3、操作数在存储器中,操作数的有效地址用SI,DI,BX,BP 4 个集训期之一来指定。若不使用段前缀,则规定若有效地址用SI,DI,BX 等之一来指定,则默认的段寄存器是DS,若有效地址用BP 来指定,则其默认的段寄存器位SS。例如: MOV BX,DI 3寄存器相对寻址方式:操作数的有效地址是一个基址寄存器(BX,BP )或变址寄存器( SI、DI)的内容和指令中的8/16 位偏移量之和。例如: MOV BX,SI+100H 4基址加变址寻址方式:操作数有效地址是一个基址寄存器(BX,BP )和一个变址寄存器( SI,DI)的内容之和。 (不要混淆基址寄存器和变址寄存器)例如: MOV BX,
4、BX,DI 5相对基址加变址寻址方式:操作数有效地址是一个基址寄存器(BX 、 BP)的值、一个变址寄存器(SI、DI )的值和指令中的8/16 位偏移量之和。例如:MOV AX, BX+DI+1234H 32 位地址的寻址方式在用 16 位寄存器来访问存储单元时, 只能使用基地址寄存器 (BX和 BP )和变址寄存器( SI 和 DI)来作为地址偏移量的一部分,但在32 位寄存器寻址时,不存在上述限制, 所有 32位寄存器(EAX 、EBX 、ECX 、EDX 、ESI、EDI、EBP 、ESP )都可以是地址偏移量的一个组成部分。名师资料总结 - - -精品资料欢迎下载 - - - - -
5、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 8086 指令概述:指令系统确定了CPU 所能完成的功能,是用汇编语言进行程序设计的最基本部分。分类:数据传送指令, 标志位操作指令,算术运算指令, 逻辑运算指令, 移位操作指令,比较运算指令,循环指令,转移指令,条件设置字节指令,字符串操作指令,ASCII-BCD码运算调整指令,处理器指令。基本格式:指令助记符操作数 1,操作数 2,操作数 3 (指令助记符体现该指令的功能,它对应一条二进制编码的机器指令)。数据传送指令:1MOV :传
6、送指令,这是使用最频繁的指令,它相对于高级语言的赋值语句。格式: MOV Reg/Mem,Reg/Mem/Imm (Reg-Register 寄存器, Mem-Memory 存储器, Imm-Immediate 立即数)使用规定: 1 两个操作数的数据类型要相同;2 两个操作数不能同时为段寄存器;3 代码段寄存器CS 不能为目的操作数,但可作为源操作数;4立即数不能直接传给段寄存器;5立即数不能作为目的操作数;6指令指针IP,不能作为MOV 指令的操作数;7两个操作数不能同时为存储单元。2XCHG :交换指令,是两个寄存器之间,寄存器和内存变量之间进行数据交换的指令,两个操作数的数据类型要相同
7、。格式: XCHG Reg/Mem,Reg/Mem 3LEA :取有效地址指令,是把一个内存变量的有效地址送给指定的寄存器。格式: LEA Reg,Mem 4LDS/LES/LFS/LGS/LSS :装载段寄存器指令,把内存中地址的“低字”传送给指令中指定的 16 位寄存器,把随后的“高字”传给相应的寄存器(DS、ES、FS、GS、SS) ;格式: LDS/LES/LFS/LGS/LSS Reg,Mem 5PUSH/POP:堆栈操作指令,堆栈是一个重要的数据结构,具有“先进后出”的特点,通常用来保存程序的返回地址。PUSH:进栈指令;格式: PUSH Reg/Mem POP:出栈指令格式: P
8、OP Reg/Mem 6标志寄存器传送指令ALAHF :标志送 AH 指令, FLAGS 的低 8 位送 AH 。格式: LAHF BSAHF:AH 送标志寄存器指令,AH 值送 FLAGS 的低 8 位格式: SAHF CPUSHF/PUSHFD :标志寄存器进栈指令,把16/32 位标志寄存器进栈格式: SAHF DPOPF/POPFD:标志寄存器出栈指令,把栈顶的16/32 位数据出栈给标志寄存器。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - -
9、 - - - - - - 7XLAT :转换指令, 把给出的指令中明确给出的内存地址或默认的BX 值作为内存字节数组首地址、下标为AL 的数组元素的值传送给AL 。这个指令可以给出一个内存地址作为操作数,也可以没有形式上的操作数,但有两个隐含操作数 BX 和 AL 。格式: XLAT Mem 或 XLAT 8IN、 OUT:I/.O 指令,访问io 端口的指令。A输入指令IN:从端口中读入一个字节或字,并保存在寄存器AL 或 AX 中。格式: IN AL/AX,Port/DX B输出指令OUT:把寄存器AL 或 AX 的内容输出到指定端口。格式: OUT Port/DX ,AL/AX 加法指令
10、1ADD :加法指令,把源操作数的值加到目的操作数中。格式: ADD Reg/Mem,Reg/Mem 受影响的标志位:AF、CF、OF、PF、SF、ZF 2ADC :带进位的加指令,把源操作数和进位标志位CF 的值一起加到目的操作数中。格式: ADC Reg/Mem,Reg/Mem/Imm 受影响的标志位:AF、CF、OF、PF、SF、ZF 3INC :加一指令,把源操作数的值加1 格式: INC Reg/Mem 受影响的标志位:AF、OF、PF、SF、ZF,不影响CF 减法指令1SUB:减法指令,从目的操作数中减去源操作数格式: SUB Reg/Mem,Reg/Mem/Imm 受影响标志位:
11、AF、 CF、OF、PF、SF、ZF 2SBB:带借位的减,把源操作数和标志位CF 的值从目的操作数中一起减去格式: SBB Reg/Mem,Reg/Mem/Imm 受影响的标志位:AF、CF、OF、PF、SF、ZF 3DEC:减 1 指令,把源操作数减去1 格式: DEC Reg/Mem 受影响的标志位:AF、OF、PF、SF、ZF,不影响CF 4NEG:求补指令,改变操作数的正负号格式: NEG Reg/Mem 受影响的标志位:AF、CF、OF、PF、SF、ZF 5CMP:比较指令,用第二个操作数减去第一个操作数,根据差设置有关标志位。影响 ZF 标记位,比较的两者相同则ZF 为 1。名师
12、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 乘法指令隐含的操作数是被乘数,乘数在指令中显示的写出来。CPU 会根据乘数是8位、16 位、还是 32 位操作数,来自动选用被乘数:AL 、AX 或 EAX 1MUL :无符号数乘法指令,把显示操作数和隐含操作数(都作为无符号数)想乘。格式: MUL Reg/Mem 受影响的标志位:CF 和 OF(AF、PF、SF和 ZF 无定义);2IMUL :有符号数乘法指令,具有符号运算,其余
13、和MUL 相同格式: IMUL Reg/Mem 除法指令隐含的操作数是被除数,除数在指令中显示的写出来.CPU 会根据除数是8 位、 16位还是 32 位,来自动选用被除数(AX 、DX:AX ,还是 EDX :EAX ) ;功能: 用显式的操作数去除隐含操作数,可得到商和余数。当商超过数据范围或除数为 0,系统自动产生0 中断。1 DIV :无符号数除法指令,用显式操作数去除隐含操作数(都作为无符号数)。指令对标志位的影响无定义。格式: DIV Reg/Mem 2 IDIV :有符号数除法指令,用显式操作数去除隐含操作数(都作为有符号数)。格式: IDIV Reg/Mem 数据类型转换指令在
14、有符号除法时, 把短位数的被除数转换为位数更长的数据类型,以适应除法运算的要求。1 CBW :字节转换为字指令,用AL 的符号位去填充AH ,即:当AL 为正数,则 AH=0 ,否则, AH=0FFH 。指令不影响任何标志位。格式: CBW 2CWD :字转换为双字指令,该指令的隐含操作数为AX 、DX ,用 AX 的符号位去填充 DX 。指令不影响任何标志位。格式: CWD 逻辑运算指令主要有:逻辑与(AND ) 、逻辑或( OR) 、逻辑非( NOT) 、和异或指令(XOR )等1 AND :逻辑与指令,将源操作数的每位二进制与目的操作数中的相应二进制按位进行逻辑“与操作” ,操作数存入目
15、的操作数中。格式: AND Reg/Mem,Reg/Mem/Imm 受影响的标志位:CF(0) ,OF( 0) ,PF,SF, ZF(AF 无定义)2OR:逻辑或指令, 把源操作数的每位二进制与目的操作数中的相应二进制按位进行逻辑“或操作” ,操作数存入目的操作数中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 格式: OR Reg/Mem,Reg/Mem/Imm 受影响的标志位:CF(0) ,OF( 0) ,PF,SF,
16、ZF(AF 无定义)3 NOT :逻辑非指令,把源操作数的每位取反格式: NOT Reg/Mem 指令不影响任何标志位。4 XOR:逻辑异或指令,把源操作数的每位二进制与目的操作数中的相应二进制按位进行逻辑“异或操作”,操作数存入目的操作数中。格式: XOR Reg/Mem,Reg/Mem/Imm 受影响的标志位:CF(0) ,OF(0) ,PF, SF 和 ZF 5 TEST:检测指令。其实是一个不保留结果,只影响标志位的逻辑“与”指令。格式: TEST Reg/Mem,Reg/Mem/Imm 受影响的标志位:CF(0) ,OF(0) ,PF, SF,ZF 移位指令包括:算术移位、逻辑移位、
17、循环移位、带进位移位和双精度移位。1 SAL:算术左移,向左逐位移动源操作数指定(CL/Imm )的次数,移位后,最低位用 0 补充,最高位移入CF。格式: SAL Reg/Mem,CL/Imm 2 SAR:算术右移,向右逐位移动源操作数指定(CL/Imm )的次数,移动后,最高位用符号位补充,最低位移入CF。格式: SAR Reg/Mem,CL/Imm 3 SHL:逻辑左移,在功能上和SAL 完全相同格式: SHL Reg/Mem,CL/Imm 4 SHR:逻辑右移,向右逐位移动源操作数指定(CL/Imm )的次数,移动后,最高位用 0 补充,最低位移入CF。5 ROL :循环左移,对指定的
18、寄存器或存储器操作数左移循环移动源操作数指定(CL/Imm )的次数,移动后,把最高位同时移入CF 和操作数最低位。格式: ROL Reg/Mem,CL/Imm 6 ROR:循环右移,对指定的寄存器或存储器操作数右移循环移动源操作数指定(CL/Imm )的次数,移动后,把最低位同时移入CF 和操作数最高位。格式: ROR Reg/Mem,Cl/Imm 7RCL:带进位的循环左移,对指定的寄存器或存储器操作数,连同进位标志CF左循环移动源操作数指定(CL/Imm )的次数,移动后,把操作数的最高位移入CF,而把 CF 原有内容移入源操作数的最高位。格式: RCL Reg/Mem,CL/Imm 8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年汇编语言基础-汇编指令 2022 汇编语言 基础 汇编 指令
限制150内