新编位微型计算机原理及应用李继灿主编2知识讲解

上传人:youn****329 文档编号:137208692 上传时间:2020-07-06 格式:PPT 页数:148 大小:1.05MB
返回 下载 相关 举报
新编位微型计算机原理及应用李继灿主编2知识讲解_第1页
第1页 / 共148页
新编位微型计算机原理及应用李继灿主编2知识讲解_第2页
第2页 / 共148页
新编位微型计算机原理及应用李继灿主编2知识讲解_第3页
第3页 / 共148页
新编位微型计算机原理及应用李继灿主编2知识讲解_第4页
第4页 / 共148页
新编位微型计算机原理及应用李继灿主编2知识讲解_第5页
第5页 / 共148页
点击查看更多>>
资源描述

《新编位微型计算机原理及应用李继灿主编2知识讲解》由会员分享,可在线阅读,更多相关《新编位微型计算机原理及应用李继灿主编2知识讲解(148页珍藏版)》请在金锄头文库上搜索。

1、优秀精品课件文档资料,第3章 指令系统,3.1 概述 3.2 80486寻址方式 3.3 80486标志寄存器 3.4 汇编语言语法规则之一 3.5 80486基本集指令,3. 概述,指令:通知 CPU执行某种操作的“命令”,CPU全部指令的集合,称为指令系统,指令的书写格式 目标指令(机器指令)用一串0,1代码书写 注意:硬件只能识别,存储,运行目标指令 符号指令:用规定的助记符,规定的书写格式书写的指令,大多数指令由操作码和地址码2部分组成 操作码:通知CPU执行什么操作(唯一) 地址码:指令的操作对象所存放的位置(根据操作对象的多样性其表现形式很多) 教材上把地址码称为操作数,3.指令的

2、组成,相应的编码规则对指令进行编码 操作码的编码 地址码的编码,4.目标程序的生成,汇编 源程序,编辑、编译、链接,可执行的机器指令 程序(目标程序),5.指令长度 486指令长度(机器指令长度)为116字节 规定:多字节指令占用连续的内存单元,存放指令第一字节的内存地址,称为“指令地址”。,CPU只能识别,存储,运行目标指令,而用机器指令编程非常困难。于是早期的专家们发明了符号指令,再经过软件把符号指令机器指令。图示如下:,6.指令存放,如:12345H单元中有一条指令 MOV AX,6789H,67H,89H,B8H,12345H:,MOV AX,6789H,先写操作码,再写操作数。多字节

3、操作数连续存放。存放规律: 低位字节存放在低地址单元,高位字节存放在相邻的高地址单元,7. 符号指令的 书写格式,如:NEXT: ADD AX , BX ;AX+BX AX INC SI ;SI+1 SI,标号:以字母开头,后跟字母,数字,下划线,长度31字符 标号又称符号地址,代表该指令的逻辑地址。可有可无,设置是为了程序的转向,注解:以“ ;”开头,不执行,打印程序清单时照原样打印,“系统保留字”不能做标号。,3.2 486寻址方式,操作数是指令的操作对象,寻址方式与地址码有密切关系。形成操作数地址码的过程就是寻址。,“寻址方式”:通俗的讲,就是通知CPU本条指令的操作数在哪儿?或者说用什

4、么方式才能得到操作数。,微机系统有3类操作数: 立即数:操作数包含在本条指令中,是指令的一部分。 寄存器操作数:CPU内部的通用寄存器,段寄存器内容。 内存操作数:操作数在存储单元中。,486有3类7种寻址方式 立即寻址方式:获得立即数 寄存器寻址方式:获得寄存器操作数 存储器寻址方式:获得存储器操作数(内存操作数),学习重点:怎样在符号指令中,正确的描述各种寻址方式,1.立即寻址操作数包含在本条指令中,是指令的一部分,完整地取出该条指令,也就获得了操作数。,如:MOVEAX,12345678H MOVBL,10101010B ;AAH BL MOV CL, 4;FCH CL MOVDL,A;

5、41H DL ADD AL,0C8H MOVSI,3*5;15 SI,上例源操作数即为立即寻址, 立即数书写规定: 立即数以数字开头,以开头的16进制数,必须前缀0。,程序员可以按自己的习惯书写立即数,各种合法的立即数经汇编后,一律自动转换成等值的二进制数,负数用补码表示。,立即数的数制用后缀表示,B表示二进制数,H表示十六进制数, D或缺省为十进制数,单引号括起来的字符编译成相应的ASCII码 。,可以用+ * / 组成立即数表达式,2. 寄存器寻址操作数在CPU的某个寄存器中,符号指令中直接写出寄存器名称。,如: MOV AX , DS ;DS内容 AX INC SI ;SI+1 SI (

6、Increase 增量) DEC DI ;DI 1 DI (Decrease 减量),如:下述条指令,目标操作数即为寄存器寻址 MOVEAX,12345678H MOVBL,10101010B ;AAH BL MOV CL, 4;FCH CL MOVDL,5;35H DL ADD AL,0C8H MOVSI,3*5;15 SI,3.存储器操作数寻址方式 重申: 在读写内存操作数之前,CPU必须知道相关存储单元的物理地址。,程序员的责任仅在于正确的书写逻辑地址表达式,然后由CPU自动运算以求出物理地址。,由于CPU对存储器采用分段管理, 因此指令格式中只能写出存放操作数的内存单元的“逻辑地址”。

7、,存储单元逻辑地址表达式的一般形式,段寄存器:,偏移地址,实模式下,物理地址=段寄存器24 +偏移地址,(1) 直接寻址 地址表达式的格式1:段寄存器:偏移地址,地址表达式的格式2: 段寄存器:变量名 用变量名代表存储单元的有效地址,如:MOVAL, ES:2CH 从ES附加段偏移地址为2CH的单元取数AL,如:MOV AX, DS:1234H 从数据段偏移地址为1234H的单元取一字AX 这种格式很少使用, 通常情况下,程序员不知道某单单元的偏移地址(本书仅在P349有过一次应用),设数据段XX字节单元的内容为11H ES附加段YY字单元的内容为2233H MOV AL, DS:XX ;取数

8、据段XX字节单元的内容AL 或 MOV AL, XX ; AL=11H MOV AX, ES:YY ;取ES附加段YY字单元的内容AX 或 MOV AX, YY ; AX=2233H,说明: 汇编语言允许为某单元起一个“名字”,这个名字就称为该单元的“变量名”,经汇编之后,变量名有段基址和偏移量两种属性。 变量名是唯一的,程序中不能有重复的变量名, “段寄存器:”可以省略。,(2)寄存器间接寻址 寄存器间接寻址又称间接寻址,间址 什么是间接寻址? 操作数在内存单元,该单元的段基址在段寄存器中 有效地址在间址寄存器中,CPU首先进行地址计算, 间接寻址的地址表达式 段寄存器:间址寄存器 某单元的

9、物理地址=段寄存器内容16+间址寄存器, 访问约定的逻辑段,间接寻址的地址表达式简化为: 间址寄存器 某单元的物理地址=约定的段寄存器内容16+间址寄存器, 间址寄存器 和约定访问的逻辑段 486规定:,举例: 设数据段BUF字节单元的内容为55H,取出该数 AL,解1:用BX间址 MOV AX , 数据段段基址 MOV DS , AX MOV BX , BUF单元的有效地址 MOV AL , DS:BX ;AL=55H 等价于: MOV AL , BX 由于BX间址,约定访问的是数据段, “DS:”可省,解2:用BP间址 MOV AX , 数据段段基址 MOV DS , AX MOV BP

10、, BUF单元的有效地址 MOV AL , DS:BP ;AL=55H 不能写成: MOV AL , BP 由于BP间址约定访问的是堆栈段, “DS:”不可省,解3:用变量名直接寻址 MOV AX,数据段段基址 MOV DS,AX MOV AL, BUF ;AL=55H,(3)基址寻址 在基址寻址中,有效地址由两部分组成。一部分在基址寄存器中,另一部分为常量 。, 基址寻址的地址表达式: 段寄存器:基址寄存器+位移量 物理地址=段寄存器内容16+基址寄存器+位移量, 访问约定的逻辑段,简化的地址表达式: 基址寄存器+位移量 物理地址=约定的段寄存器内容16+基址寄存器 +位移量, 基址寄存器和

11、约定访问的逻辑段, 举例 设数据段BUF单元依次有:78H,56H,34H,12H 则:MOVAX , 数据段段基址 MOV DS , AX MOV BX , BUF单元有效地址 MOV DH , BX+1 ;DH=56H MOV DX , BX+2 ;DX=1234H,12H,34H,56H,78H,BUF,(4) 变址寻址 有比例因子的变址寻址其地址表达式为 段寄存器:比例因子*变址寄存器+位移量 物理地址=段寄存器16+比例因子变址寄存器 +位移量,没有比例因子的变址寻址其地址表达式为: 段寄存器:变址寄存器+位移量 访问约定的逻辑段可简化为 : 变址寄存器+位移量 物理地址=约定的段寄

12、存器16+变址寄存器+位移量, 变址寄存器与约定访问的逻辑段,说明:比例因子只能是1、2、4、8,因此:MOV AL, 8*SI+15;非法,16位寻址不能使用 比例因子 MOV AL , 10*ESI+5 ;非法指令,比例因子错了 MOV AL , ES:SI ;访问附加段 MOV AL , SI ;访问数据段,(5) 基址加变址寻址,存储单元的有效地址由3部分组成 有比例因子的基址加变址的地址表达式为: 段寄存器:基址寄存器+比例因子*变址寄存器+位移量,访问约定逻辑段其地址表达式简化为: 基址寄存器+比例因子*变址寄存器+位移量,无比例因子基址加变址 地址表达式: 段寄存器:基址寄存器+

13、变址寄存器+位移量 访问约定逻辑段: 基址寄存器+变址寄存器+位移量,基址加变址寻址是基址寻址和变址寻址的组合,要求 基址寄存器和变址寄存器都是16位或都是32位,否则(16位寻址和32位寻址混合使用)是非法指令 默认的段寄存器不一致,这样的组合虽然是合法,但容易出错,如:BP+SI,BP+DI BP约定的逻辑段为堆栈段,而SI、DI约定的逻辑段为数据段,它们组合之后约定访问的逻辑段是谁?,实验证明是堆栈段,这样的组合最好要加段前缀。,寻址方式的学习要点: 1.访问内存操作数由5种寻址方式 直接寻址、间址、基址、变址、基址加变址,2.关于16位寻址和32位寻址 16位寻址:采用16位间址、基址

14、、变址、基址加变址 32位寻址:采用32位间址、基址、变址、基址加变址,3.在实模式下,一个逻辑段的体积最大为64K,存储 单元的有效地址为16位,不可能超过FFFFH,在实模式下运行的程序通常采用16位寻址,4.关于段约定和段超越,在用间址、基址、变址、基址加变址寻址内存操作数时,其地址表达式都有2种书写格式有段 前缀和无段前缀,如用BP、EBP、ESP参与寻址,CPU自动认为是访问堆栈段, 段超越前缀“SS:”可省,MOV AL , SS:BP ;访问SS段,用BP间址 MOV AL , BP,如用BP、EBP、ESP参与寻址非堆栈段,必须明确写出段超越前缀,如:,MOV AL , DS:

15、BP ;访问堆栈段,用BP间址 MOV AL , ES:BP+2,如用BX、SI、DI、EAXEDX、ESI、EDI参与寻址, CPU自动认为是访问数据段,“ DS:”可省,如:MOV AL,DS:BX MOV AL,BX, 如用BX、SI、DI、EAX、EDX、ESI、EDI参与寻址非数据段,必须明确写出段超越前缀,如:,MOV AL, ES:BX MOV AL, FS:SI+2,5使用段约定访问内存操作数是最常用的编程风格,3.3 标志寄存器,80486标志寄存器为32位,实际使用15位 15位标志分为两类:状态标志和控制标志 状态标志记录了当前指令执行后的状态信息 控制标志用来控制微处理

16、器操作,本节首先介绍6种状态标志 一状态标志,1. C标志进位/借位标志 字节加/减,最高位(D7)产生进位/借位时: C标志置1,否则置0 字加/减,最高位(D15)产生进位/借位时: C标志置1,否则置0 双字加/减,最高位(D31)产生进位/借位时: C标志置1,否则置0,2. A标志辅助进位/辅助借位标志,字节加/减,D3位产生进位/借位时: A标志置1,否则置0,字加/减,D7位产生进位/借位时: A标志置1,否则置0 双字加/减,D15位产生进位/借位时: A标志置1,否则置0,3. S标志符号标志,字节运算后,结果的最高位D7位为1, S标志置1,否则置0 字运算后,结果的最高位D15位为1, S标志置1,否则置0 双字运算后,结果的最高位D31位为1, S标志置1,否则置0,4. Z标志结果标志 运算结果为全0时,Z标志置1,否则置

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

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

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