8086指令的基本格式和寻址方式(3-1).ppt
文本预览下载声明
8086/8088的寻址方式和指令系统 本章学习目的 1. 掌握8086的指令格式和寻址方式; 2. 掌握数据传送、算术运算、逻辑运算与移位、串操作、控制转移、处理器控制等指令的功能、格式及各条指令执行后对标志F的影响; 3.掌握基本DOS功能调用(键盘输入、显示输出、屏幕设置等)及返回指令的使用方法; 概 述 指令:是计算机用以控制各部件协调动作的命令; 指令系统:CPU可执行的指令的集合; 机器指令:是CPU仅能识别的指令的二进制代码,也称机器码; 指令的符号用规定的英文字母组成,称为助记符。每条指令都是由二进制代码(即指令码)组成的,计算机通过解释每一条指令的含义,来执行指令所规定的各种操作。为此,每条指令应包括下列基本信息: 一、机器码格式 8086指令的机器码是可变长的,有1~6个字节。 第一个字节为操作码,后面的部分为操作数。 1. 操作码(Operation Code,简称OP)字段 该字段指明计算机所要执行的操作类型。在机器语言中由一组二进制代码表示,在汇编语言中用助记符代表。 指令执行的操作过程中所需的操作数,操作数字段可以是操作数本身、操作数地址或操作数地址的运算方法,还可以是指向操作数地址的指针或其它的有关操作数的信息。 8086指令可分为无操作数指令、单操作数指令、双操作数指令 。 二、8086/8088符号指令的书写格式 ? 标号 后面必须跟冒号,它可缺省,是可供选择的 自定义标志符。标识符遵循“:”以字母打 头,不超过31个字符长度。 ? 指令助记符 是指令功能的代表符号,它是指令 语句的关键字,不可缺省。 ? 操作数 是参加本操作的数据。 第二节 8086/8088 的寻址方式 8086/8088的操作数可位于寄存器、存储器或I/O端口中。对位于存储器的操作数可采用多种不同方式进行寻址。 在这种寻址方式下,操作数直接包含在指令中,它是一个8位或16位的常数,也叫立即数。这类指令翻译成机器码时,立即数作为指令的一部分,紧跟在操作码之后,存放在代码段内。如果立即数是16位数,则高字节存放在代码段的高地址单元中,低字节放在低地址单元中。 它表示将立即数Im送到AX寄存器中,其中将Im的低8位(用ImL表示)送到AL中,将Im的高8位(用ImH表示)送到AH中。 例如: MOV AX,1234H ;执行后AX=1234H, ;其中AH=12H,AL=34H。 特点及注意事项 1.执行速度快:操作数是直接从指令中取得,不执行总线周期,所以执行速度快; 2.立即数只能作源操作数,不能作目的操作数; 3.主要用来给寄存器或存储器赋初值。 操作数存放在寄存器中,由指令指定寄存器的名称。 16位寄存器:AX、BX、CX、DX、SI、DI、SP和BP等——存放16位操作数。 8位寄存器:AH、AL、BH、BL、CH、CL、DH和DL——存放8位操作数。 寄存器寻址方式 1. 执行速度快:因操作数就在CPU内部,不执行 总线周期; 2. 源操作数和目的操作数都可使用寄存器寻址。 8086的单操作数指令,其操作是规定在CPU中某个固定的寄存器中进行,这个寄存器又被隐含在操作码中,因此,这种寻址方式的指令大多为单字节指令。 加减法的十进制调整指令DAA,其操作总是固定在AL寄存器中进行; 还有一种寻址方式为双操作数指令,例如寄存器入栈和出栈指令: 1. 这种寻址方式的指令大多为单字节指令; 2. 执行速度快,因固定寻址的指令不需要计算EA(有 效地值),且部分操作发生在CPU内部。 四、存储器寻址 存储器寻址的指令,其操作数总是在代码段之外的数据段、堆栈段或附加段的存储器中,指令给出的是操作数寻址信息(逻辑地址),也就是操作数所在存储单元的地址信息。 一条指令中,最多只能有一个存储器操作数,或者是源操作数,或者是目的操作数。 在直接寻址方式中,操作数所在存储单元的有效地址直接由指令给出。有效地址是机器码的一部分,它存放在代码段中指令的操作码之后。 指令机器码为0A1H、00H、20H,执行过程如下: STEP1: 取指令机器码0A1H、00H、20H; STEP2: CPU分析操作码0A1H后得知本指令功能 为数据传送指令; STEP3: 计算操作数所在内存单元物理地址PA= 16×DS+EA,EA由指令直接给出(即所谓 直接寻址方式),DS为段基址寄存器,应事 先设置好其值。指令中如没有特别说明, 计算操作数物理地址所需段基址都由DS 段寄存器给出。 STEP4: CPU执行总线操作,从PA地址单元取得数
显示全部