指令系统1研究报告

上传人:yulij****0329 文档编号:138876727 上传时间:2020-07-18 格式:PPT 页数:36 大小:368KB
返回 下载 相关 举报
指令系统1研究报告_第1页
第1页 / 共36页
指令系统1研究报告_第2页
第2页 / 共36页
指令系统1研究报告_第3页
第3页 / 共36页
指令系统1研究报告_第4页
第4页 / 共36页
指令系统1研究报告_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《指令系统1研究报告》由会员分享,可在线阅读,更多相关《指令系统1研究报告(36页珍藏版)》请在金锄头文库上搜索。

1、第3章 8088/8086的指令系统,是本课程的一个关键内容, 是程序设计的基础 难点是 8088/8086的各种寻址方式 重点是 掌握8088/8086常用6大类指令的 功能及应用,补充内容:基本数据类型及数据在 存储器中的存放方式,数据的类型 数据的长度:字节数或位数 数据的内容(无符号数,有符号数,字符 ) 数据存放的位置:地址 数据存放的方式:存放规则,一、数据的要素,1、数据的类型,无符号整数 有符号整数 指针数据类型 NEAR(16位):偏移地址 FAR (32位):段地址:偏移地址 串(字串,位串),D7 D0,D15 D0,D31 D0,字节 字 双字,3、 规则存放:数据的地

2、址对齐,字节数据:顺序存放。 字数据: 规则字-低字节存放在地址为偶数的单元,顺序存 放高字节。读写用1个总线周期。 非规则字-低字节存放在地址为奇数的单元, 顺序存放高字节。读写用2个总线周期。,8086的两个512 KB存储体:奇体、偶体,D15-D8,D7-D0,高位存储体 (奇数地址),低位存储体 (偶数地址),A19-A1,A19-A1,A19-A1,D7-D0,D7-D0,64KB8片,64KB8片,SEL 512X8,SEL 512X8,BHE,A0,读16位数据时每个体被选中几次?,X8,8088的1M存储器为1体,进行字数据读写时,需要访问2次存储器。,微处理器的主要功能是由

3、它的指令系统来体现的。编写汇编程序时 ,必须首先了解所用计算机的CPU的指令系统,然后把我们要解决的问题用一条条指令描述出来。 各种CPU指令条数不一样,但功能相近,格式类似。 80X86系列CPU有共同的基本指令。,3.1 8086/8088的指令格式和寻址方式,3.1.1 指令格式 机器指令:指令的二进制代码形式。如:89D8H 汇编指令:助记符形式的指令。如:MOV AX,BX,由指令的格式入手,掌握其中操作数的表达方法,即寻址方式,为展开8086指令系统做好准备。,指令由操作码和操作数两部分组成 操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部

4、分 操作数是指令执行的参与者,即各种操作的对象,操作码,操作数,操作码:由CPU设计人员定义。每一种操作唯一对应一个操作码。 例:加法操作助记符ADD; 数据传送操作助记符MOV; 比较操作助记符CMP; 操作数:可由编程人员采用不同方式给出。,1、机器码的格式 对X86,由116个字节构成。,data,disp,S-i-b,Mod r/m,操作码,前缀,14 1 2 1 1 0.1.2.4 0.1.2.4,指令中的操作数: 操作数可以有0 -3个; 操作数可以是参加操作的数的本身,即一个具体的数值; 也可以是操作数所在的位置的指示,即提供了操作数的地址 例: L1: MOV AL,CL,2、

5、 指令的助记符格式,标号:助记符 操作数1 , 操作数2 ,3、说明: 汇编语言指令可手工汇编成机器码. 即使是同一种指令,不同的寻址方式也会使机器指令占据不同的存贮空间。编程时应选择合理算法、数据结构、寻址方 式等节省MEM。,目的操作数,源操作数,3.1.2 寻址方式,寻址方式指令中给出操作数所在地址的方法。 指令中操作数可能存在的地方: 指令中 寄存器 存储单元 I/O端口 对应的寻址方式: 立即寻址 寄存器寻址 存储器寻址:给出EA的方式多样,5种。 I/O端口寻址,1、立即寻址,指令中的源操作数是立即数,即源操作数是参加操作的数据本身。 立即数可以是8位或16位的整数 例: MOV

6、AX,1234H,12H,34H,AH AL,操作码,代码段,2、寄存器寻址,参加操作的操作数存放在CPU的内部寄存器中。 8/16位。 例:MOV AH,BL MOV AX,CX,AX,CX,存储器寻址,操作数存放在存储器中 指令的操作数部分给出的是该操作数的段内偏移地址 而段地址在默认的或用段超越前缀指定的段寄存器中 8086设计了多种存储器寻址方式 1、直接寻址 2、寄存器间接寻址 3、基址加变址寻址 4、寄存器相对寻址 5、相对基址加变址寻址,EA = 基址值 + 变址值 比例因子 + 位移量,(BX或BP) (SI或DI ) 运算是在指令执行时根据所采用的寻址方式自动计算得出,结果为

7、一个16位的无符号数。 设计多种寻址方式是为了处理各种数据结构的需要。 存储器寻址的各种寻址方式的不同,实质上是构成段内偏移量 EA的方法不同。,有效地址EA:段内偏移地址由几个基本部分组合而成,把这种方式提供的偏移地址称为有效地址EA。 EA的基本部分包括:基址寄存器、变址寄存器、位移量、比例因子。 最终的偏移地址是这几部分运算后的结果。 计算EA的通式:(16位寻址,比例因子为1),3、直接寻址方式,指令中直接给出操作数的16位偏移地址 直接寻址方式下,操作数默认为在数据段,段地址在DS中。 但允许段超越。可在指令中增加段超越前缀指出特定段寄存器名。 MOV AX , 2000H ;将DS

8、段中2000H和2001H单元的内容送到AX ;指令代码:A10020 MOV AX , ES: 2000H ;AX(ES:2000H 和 ES:2001H) ;指令代码:26A10020 以符号地址(变量名)的形式给出 VALUE DB 12H MOV AL ,VALUE MOV AL ,VALUE,例:设DS=2000H MOV AX,3102H ;AL (DS:3102H) , AH (DS:3103H) ;机器码为:A10231H,指令执行后:(AX) = 0ABCDH,A1H,02H,31H,AH,AL,23102H,CDH,ABH,存储器,代码段,数据段,. .,23102,+,D

9、S 20000H,3102H,物理地址,4、寄存器间接寻址,操作数存放在内存中,其偏移地址在指令中指定的寄存器中。 存放偏移地址的寄存器可以是: BX,BP,SI,DI 操作数的段地址(数据处于哪个段)取决于选择哪一个寄存器: BX,SI,DI 默认在数据段,DS BP 默认在堆栈段,SS 均可使用段超越前缀改变 例: MOV AX , BX MOV AX , ES:BX MOV AL , BP,例:MOV AX,BX 设 BX=1200H, DS=2000H,22H,11H,21200H,AH AL,11 22,数据段,代码段,MOV,DS 20000H EA 1200H 21200H,20

10、000H,5、寄存器相对寻址,有效地址是基址或变址寄存器的内容再加上一个8/16位的位移量。 默认段地址同寄存器间接寻址。且均可段超越。 MOV AX, BX+ 04H MOV AL, DI + 1203H MOV AL, SI + VALUE ,例:MOV AX,DATABX 若(DS)=8000H, (BX)=2000H, DATA=200H,82200,82200H,AH,AL,AX,+ DATA 0200,机器码,代码段,数据段,. . .,. . .,. . .,FF,A8,DS 80000,BX 2000,2200,+,7、基址变址寻址,有效地址由基址寄存器(BX或BP)的内容加上

11、变址寄存器(SI或DI)的内容构成: 默认段地址由使用的基址寄存器决定 BX默认是DS,BP默认是SS;均可用段超越前缀改变。 例:MOV AX, BX+SI MOV AX , DS: BP+DI,例:MOV AX, DI+BX 若(DS)=8000H, (BX)=2000H, (DI)=1000H,83000,83000H,AH,AL,AX,操作码,代码段,数据段,. . .,. . .,. . .,12,A5,DS 80000,BX 2000,DI 1000,+,3000,8、相对基址变址寻址,在基址-变址寻址的基础上再加上一个位移量 默认段地址同基址加变址寻址。 MOV AX , BX+

12、DI+34H MOV AX , BP+DI +0200H,EA =,(BX) (BP),+,(SI) (DI),+,8位 16位,位移量,例:MOV AX,DATADIBX 若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H,83200,83200H,AH,AL,AX,+ DATA 0200,机器码,代码段,数据段,. . .,. . .,. . .,FF,A8,DS 80000,BX 2000,DI 1000,为什么搞这么复杂的存储器寻址方式?,提高了灵活性 便于处理各种数据结构的数据 寄存器相对寻址常用于存取表格或一维数组中的元素把表格的起始地址作

13、为位移量,元素的下标值放在间址寄存器中。 例: BX+0100H BX+MAT,使用相对基址-变址 寻址方式可以很方 便地访问二维数组 或表格。 例: BX+SI+0100H ,SI指向一行中的某一个元素。 由02 变化,BX指向某一行。 BX=BX+3 为0,3 ,6,1 2 3,7 8 9,4 5 6,1 2 3 4 5 6 7 8 9,0100H,20000H,数 据 段,存储器寻址方式的多种表示方式,位移量可用符号表示: MOV AX,SI+COUNT ;COUNT是事先定义的变量或常量(就是数值) MOV AX,BX+SI+WNUM ;WNUM是变量或常量 同一寻址方式可以写成不同的

14、形式: MOV AX , BX+SI MOV AX , BXSI MOV AX, SI+COUNT MOV AX , COUNT SI MOV AX, BX+SI+WNUM MOV AX, WNUM BXSI MOV AX, WNUM BX+SI,指令操作数是隐含的,在指令中未显式地指明 串操作指令寻址方式 源串 DS:SI 目的串 ES:DI 例: MOVSB 堆栈操作指令 SS:SP PUSH AX POP BX MUL BL 指令隐含了被乘数AL及乘积AX 类似的指令还有:DIV、CBW等,8 、隐含寻址方式,被隐含的可以是寄存器或存储器操作数,存储器操作数寻址时段寄存器的使用约定,9、

15、I/O端口寻址方式,在8086/8088指令系统中,输入/输出指令对I/O端口的寻址可采用直接或间接两种方式。 (1) 直接端口寻址: I/O端口地址以8位常数方式在指令中直接给出。 即所寻址的端口号只能在0255范围内。 例: IN AL ,n (2) 间接端口寻址: 这类似于寄存器间接寻址,16位的I/O端口地址在DX寄存器中,即通过DX间接寻址,故可寻址的端口号为065535。 例: OUT DX,AL ;它是将AL的内容输出到 ;由(DX)指出的端口中去。,10、转移类指令寻址方式,转移类指令的寻址方式:如何提供要转移到的指令的地址。 具体方式讲转移类指令时再展开。 例:JMP L1,指令由( )和( )构成,如何取得操作数称为( ) 理解操作数的寻址方式,是理解指令功能的前提。学习具体指令时,操作数给出方式:操作数本身或操作数的地址,几乎是每条指令都要涉及到。,操作码,操作数,寻址方式,SUM-U

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号