null微机原理与接口技术*微机原理与接口技术大家好!课程目标*课程目标掌握:
微型计算机的基本工作原理
汇编语言程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
微型计算机接口技术
建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力教材及实验指导书*教材及实验指导书教材:
《微机原理与接口技术》(第3版). 冯博琴,吴宁主编. 清华大学出版社
实验指导书
《微机原理与接口技术实验指导书》(讲义)
陈文革,吴宁,夏秦编. 西安交通大学
《微机原理与接口技术题解及实验指导》(第3版). 吴宁,陈文革编. 清华大学出版社第1章 微型计算机基础概论*第1章 微型计算机基础概论主要
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
:
微机系统的组成
计算机中的编码、数制及其转换
无符号二进制数的运算
算术运算和逻辑运算
运算中的溢出
机器数的表示及运算
基本逻辑门及译码器一、微型计算机系统*一、微型计算机系统微型机的工作原理
微机系统的基本组成1. 计算机的工作原理*1. 计算机的工作原理冯 • 诺依曼计算机的工作原理
存储程序工作原理存储程序原理*存储程序原理将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存
指令按其在存储器中存放的顺序执行;
由控制器控制整个程序和数据的存取以及程序的执行。冯 • 诺依曼计算机体系结构*冯 • 诺依曼计算机体系结构运算器存储器控制器输入设备输出设备冯 • 诺依曼机的工作过程*冯 • 诺依曼机的工作过程内存中的程序指令1指令2指令n┇
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
获取操作数执行存放结果┇程序计数器PC地址CPU取出操作数冯 • 诺依曼机的工作过程*冯 • 诺依曼机的工作过程取一条指令的工作过程:
将指令所在地址赋给程序计数器PC;
PC内容送到地址寄存器AR,PC自动加1;
把AR的内容通过地址总线送至内存储器,经地址译码器译码,选中相应单元。
CPU的控制器发出读命令。
在读命令控制下,把所选中单元的内容(即指令操作码)读到数据总线DB。
把读出的内容经数据总线送到数据寄存器DR。
指令译码
因为取出的是指令的操作码,故数据寄存器DR把它送到指令寄存器IR,然后再送到指令译码器ID 冯 • 诺依曼机的特点和不足冯 • 诺依曼机的特点和不足特点:
程序存储,共享数据,顺序执行
属于顺序处理机,适合于确定的算法和数值数据的处理。
不足:
与存储器间有大量数据交互,对总线要求很高;
执行顺序有程序决定,对大型复杂任务较困难;
以运算器为核心,处理效率较低;
由PC控制执行顺序,难以进行真正的并行处理。*典型的非冯 • 诺依曼机结构典型的非冯 • 诺依曼机结构数据流驱动的计算机结构
当指令具有所需数据、且输出端没有数据时就可执行。*Dataflow Image Processing System2. 系统组成*2. 系统组成 主机
硬件系统
外设
微机系统
系统软件
软件系统
应用软件CPU
存储器
输入/输出接口
总线微处理器*微处理器微处理器简称CPU,是计算机的核心。
主要包括:
运算器
控制器
寄存器组
存储器*存储器定义:
用于存放计算机工作过程中需要操作的数据和程序。有关内存储器的几个概念*有关内存储器的几个概念内存单元的地址和内容
内存容量
内存的操作
内存的分类
内存单元的地址和内容*
内存单元的地址和内容内存按单元组织
每单元都对应一个地址,以方便对单元的寻址1011011038F04H内存地址单元内容内存容量*内存容量内存容量:
所含存储单元的个数,以字节为单位
内存容量的大小依CPU的寻址能力而定
实地址模式下为CPU地址信号线的位数
内存操作*内存操作读:
将内存单元的内容取入CPU,原单元内容不改变;
写:
CPU将信息放入内存单元,单元中原来的内容被覆盖。内存储器的分类*内存储器的分类随机存取存储器(RAM)
只读存储器(ROM)按工作方
式可分为输入/输出接口*输入/输出接口接口是CPU与外部设备间的桥梁CPUI/O
接口外设接口的分类*接口的分类串行接口
并行接口数字接口
模拟接口输入接口
输出接口接口的功能*接口的功能数据缓冲寄存;
信号电平或类型的转换;
实现主机与外设间的运行匹配。总线*总线基本概念
分类
工作原理
常用系统总线标准及其主要技术指标
(具体内容见后续课程)
软件系统*软件系统软件:
为运行、管理和维护计算机系统或为实现某一功能而编写的各种程序的总和及其相关资料。系统软件应用软件操作系统
编译系统
网络系统
工具软件软件二、计算机中的数制和编码*二、计算机中的数制和编码数制和编码的表示
各种计数制之间的相互转换1. 常用计数法*1. 常用计数法
十进制(D)
二进制(B)
十六进制(H)例:*例:234.98D或(234.98)D
1101.11B或(1101.11)B
ABCD . BFH或(ABCD . BF) H2. 各种进制数间的转换*2. 各种进制数间的转换非十进制数到十进制数的转换
十进制到非十进制数的转换
二进制与十六进制数之间的转换 非十进制数到十进制数的转换*非十进制数到十进制数的转换按相应的权值表达式展开
例:
1011.11B=1×23+0×22+1×21+1×20+1×2-1+ 1×2-2
=8+2+1+0.5+0.25
=11.75
5B.8H=5×161+11×160+8×16-1
=80+11+0.5
=91.5十进制到非十进制数的转换*十进制到非十进制数的转换到二进制的转换:
对整数:除2取余;
对小数:乘2取整。
到十六进制的转换:
对整数:除16取余;
对小数:乘16取整。二进制与十六进制间的转换*二进制与十六进制间的转换用4位二进制数表示1位十六进制数
例:
25.5
= 11001.1B
= 19.8H
11001010.0110101B
=CA.6AH3. 计算机中的编码*3. 计算机中的编码BCD码
用二进制编码表示的十进制数
ASCII码
西文字符编码BCD码*BCD码压缩BCD码
用4位二进制码表示一位十进制数
每4位之间有一个空格
扩展BCD码
用8位二进制码表示一位十进制数,每4位之间有一个空格。BCD码与二进制数之间的转换*BCD码与二进制数之间的转换先转换为十进 制数,再转换二进 制数;反之同样。
例:
(0001 0001 .0010 0101)BCD
=11 .25
=(1011 .01) BASCII码*ASCII码西文 字符的编码,一般用7位二进 制码表示。
D7位为校验位,默认情况下为0。
要求:
理解校验位的作用
熟悉0---F的ASCII码ASCII码的奇偶校验*ASCII码的奇偶校验奇校验
加上校验位后编码中“1”的个数为奇数。
例:A的ASCII码是41H(1000001B)
以奇校验传送则为 C1H(11000001B)
偶校验
加上校验位后 编码中“1”的个数为偶数。
上例若以偶校验传送,则为 41H。三、无符号二进制数的运算*三、无符号二进制数的运算算术运算
逻辑运算无符号数
有符号数二进 制数的运算主要内容*主要内容无符号二进 制数的算术运算
无符号数的表达范围
运算中的溢出问题
无符号数的逻辑运算
基本逻辑门和译码器1. 无符号数的算术运算*1. 无符号数的算术运算加法运算
1+1=0(有进位)
减法运算
0-1=1(有借位)
乘法运算
除法运算乘除运算例*乘除运算例00001011×0100
=00101100B
00001011÷0100=00000010B
即:商=00000010B
余数=11B2. 无符号数的表示范围:*2. 无符号数的表示范围: 0 ≤ X ≤ 2n-1
若运算结果超出这个范围,则产生溢出。
对无符号数:运算时,当最高位向更高位
有进位(或借位)时则产生
溢出。[例]:*[例]: 最高位向前有进位,产生溢出3. 逻辑运算*3. 逻辑运算与、或、非、异或
掌握:
与、或、非门逻辑符号和逻辑关系(真值表);
与非门、或非门的应用。
“与”、“或”运算*“与”、“或”运算“与”运算:
任何数和“0”相“与”,结果为0。
“或”运算:
任何数和“1”相“或”,结果为1。“非”、“异或”运算*“非”、“异或”运算“非”运算
按位求反
“异或”运算
相同则为0,相异则为14. 译码器*4. 译码器掌握74LS138译码器
各引脚功能
输入端与输出端关系(真值表)
74LS138译码器*74LS138译码器主要引脚及功能三、机器数(有符号数)的运算*三、机器数(有符号数)的运算计算机中符号数的表示*计算机中符号数的表示机器数
计算机中的数据
构成:
符号位 + 真值 “0” 表示正
“1” 表示负[例]*[例] +52 = +0110100 = 0 0110100
符号位 真值-52 = -0110100 = 1 0110100
符号位 真值1. 符号数的表示*1. 符号数的表示机器数的表示方法:
原码
反码
补码
原码*原码最高位为符号位(用“0”表示正,用“1”表示负),其余为真值部分。
优点:
真值和其原码表示之间的对应关系简单,容易理解;
缺点:
计算机中用原码进行加减运算比较困难
0的表示不唯一。数0的原码*数0的原码8位数0的原码:+0=0 0000000
-0=1 0000000
即:数0的原码不唯一。反码*反码对一个机器数X:
若X>0 ,则 [X]反=[X]原
若X<0, 则 [X]反= 对应原码的符号位不变,数值部分按位求反[例]*[例]X= -52 = -0110100
[X]原=1 0110100
[X]反=1 1001011
0的反码:*0的反码: [+0]反=00000000
[-0]反 =11111111
即:数0的反码也不是唯一的。补码*补码定义:
若X>0, 则[X]补= [X]反= [X]原
若X<0, 则[X]补= [X]反+1[例]*[例]X= – 52= – 0110100
[X]原=10110100
[X]反=11001011
[X]补= [X]反+1=110011000的补码:*0的补码:[+0]补= [+0]原=00000000
[-0]补= [-0]反+1=11111111+1
=1 00000000
对8位字长,进位被舍掉
特殊数10000000*特殊数10000000对无符号数:(10000000)B=128
在原码中定义为: -0
在反码中定义为: -127
在补码中定义为: -128符号数的表示范围*符号数的表示范围对8位二进制数:
原码: -127 ~ +127
反码: -127 ~ +127
补码: -128 ~ +127
2. 符号二进制数与十进制的转换*2. 符号二进制数与十进制的转换对用补码表示的二进制数:
1)求出真值
2)进行转换[例]:补码数转换为十进制数*[例]:补码数转换为十进制数[X]补=0 0101110B
正数
所以:真值=0101110B
X=+46
[X]补=1 1010010B
负数
所以:真值不等于-1010010B
而是:X=[[X]补]补=[11010010]补= - 0101110 = - 463. 符号数的算术运算*3. 符号数的算术运算通过引进补码,可将减法运算转换为加法运算。
即:[X+Y]补=[X]补+[Y]补
[X-Y]补=[X+(-Y)]补
=[X]补+[-Y]补注:运算时符号位须对齐[例]*[例]X=-0110100,Y=+1110100,求X+Y=?
[X]原=10110100
[X]补= [X]反+1=11001100
[Y]补= [Y]原=01110100
[X+Y]补= [X]补+ [Y]补
=11001100+01110100
=01000000
X+Y=+1000000符号数运算中的溢出问题*符号数运算中的溢出问题两个带符号二进制数相加或相减时,若运算结果超出可表达范围,则产生溢出
溢出的判断方法:
最高位进位状态次高位进位状态=1,则结果溢出[例]:*[例]:若:X=01111000, Y=01101001
则:X+Y=
次高位向最高位有进位,而最高位向前无进位,产生溢出。
(事实上,两正数相加得出负数,结果出错)结束语:*结束语:第1章难点:
补码的概念及其运算
null*第2章
微处理器与总线主要内容:*主要内容:微处理器的功能和结构
8088/8086微处理器
特点
主要引线功能和内部结构
内部寄存器
实地址模式下的存储器寻址
总线时序
总线一、微处理器及8088/8086CPU一、微处理器及8088/8086CPU*1. 微处理器1. 微处理器运算器
控制器
内部寄存器*微处理器2. 程序和指令*2. 程序和指令程序:
具有一定功能的指令的有序集合
指令:
由人向计算机发出的、能够为计算机所识别的命令。3. 指令执行的一般过程*3. 指令执行的一般过程取指令取指部件,分析部件,执行部件指令译码读取操作数执行指令存放结果4. 顺序执行和并行流水线*4. 顺序执行和并行流水线顺序执行方式:
各功能部件交替工作,按顺序完成指令的执行过程。
并行流水线方式:
各功能部件并行工作。顺序工作方式*顺序工作方式并行流水线工作方式*并行流水线工作方式 EUCPU5. 8088/8086 CPU的特点*5. 8088/8086 CPU的特点采用并行流水线工作方式
—— 通过设置指令预取队列实现
对内存空间实行分段管理
—— 将内存分为4个段并设置地址段寄存器,以实
现对1MB空间的寻址
支持多处理器系统CPU内部结构存储器寻址部分工作模式6. 8088CPU的两种工作模式*6. 8088CPU的两种工作模式8088可工作于两种模式下
最小模式
最大模式
最小模式为单处理器模式。
最大模式为多处理器模式。两种工作模式的选择方式*两种工作模式的选择方式8088是工作在最小还是最大模式由MN/MX引线的状态决定。
MN/MX=0——工作于最大模式
MN/MX=1——工作于最小模式二、8088/8086的引线及功能*二、8088/8086的引线及功能1. 主要引线——最小模式下的8088引线*1. 主要引线——最小模式下的8088引线地址线和数据线:
AD0—AD7:低8位地址和低8位数据信号分时复用。在传送地址信号时为单向,传送数据信号时为双向。
A16--A19:高4位地址信号,与状态信号分时复用。
A8—A15 :8位地址信号主要的控制和状态信号*主要的控制和状态信号WR: 写信号;
RD: 读信号;
IO/M:为“0”表示访问内存,
为“1”表示访问接口;
DEN: 低电平有效时,允许进行读/写操作;
DT/R:数据收发器的传送方向控制;
ALE:地址锁存信号;
RESET:复位信号。例:*例:当WR=1,RD=0,IO/M=0时,
表示CPU当前正在进行读存储器操作READY信号*READY信号中断请求和响应信号*中断请求和响应信号INTR:可屏蔽中断请求输入端
NMI: 非屏蔽中断请求输入端
INTA:中断响应输出端总线保持信号*总线保持信号HOLD:总线保持请求信号输入端。当CPU
以外的其他设备要求占用总线时,
通过该引脚向CPU发出请求。
HLDA:总线保持响应信号输出端。CPU对
HOLD信号的响应信号。2. 8088和8086CPU引线功能比较*2. 8088和8086CPU引线功能比较数据总线宽度不同
8088的外部总线宽度是8位,8086为16位。
访问存储器和输入输出控制信号含义不同
8088——IO/M=0表示访问内存;
8086——IO/M=1表示访问内存。
其他部分引线功能的区别三、8088/8086的内部结构*三、8088/8086的内部结构1. 组成*1. 组成8088/8086内部由两部分组成:
执行单元(EU)
总线接口单元(BIU)2. 执行单元*2. 执行单元 运算器
8个通用寄存器
1个标志寄存器
EU部分控制电路教材第43页图2-6图执行单元*执行单元功能
指令译码
指令执行
暂存中间运算结果
保存运算结果特征指令的执行在标志寄存器FLAGS中在ALU中完成在通用寄存器中3. 总线接口单元*3. 总线接口单元功能:
从内存中取指令到指令预取队列
指令预取队列是并行流水线工作的基础
负责与内存或输入/输出接口之间的数据传送
在执行转移程序时,BIU使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。结论*结论指令预取队列的存在使EU和BIU两个部分可同时进行工作,从而:
提高了CPU的效率;
降低了对存储器存取速度的要求四、内部寄存器*四、内部寄存器内部寄存器的类型*内部寄存器的类型含14个16位寄存器,按功能可分为三类
8个通用寄存器
4个段寄存器
2个控制寄存器深入理解:每个寄存器中数据的含义1. 通用寄存器*1. 通用寄存器 数据寄存器(AX,BX,CX,DX)
地址指针寄存器(SP,BP)
变址寄存器(SI,DI)数据寄存器*数据寄存器8088/8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即:
AX
BX
CX
DXAH,ALCH,CLBH,BLDH,DL数据寄存器特有的习惯用法*数据寄存器特有的习惯用法AX:累加器。所有I/O指令都通过AX与接口传送
信息,中间运算结果也多放于AX中;
BX:基址寄存器。在间接寻址中用于存放基地址;
CX:计数寄存器。用于在循环或串操作指令
中存放计数值;
DX:数据寄存器。在间接寻址的I/O指令中存放
I/O端口地址;在32位乘除法运算时,存放
高16位数。地址指针寄存器*地址指针寄存器SP:堆栈指针寄存器,其内容为栈顶的
偏移地址;
BP:基址指针寄存器,常用于在访问内
存时存放内存单元的偏移地址。BX与BP在应用上的区别*BX与BP在应用上的区别作为通用寄存器,二者均可用于存放数据;
作为基址寄存器,用BX表示所寻找的数据在数据段;用BP则表示数据在堆栈段。变址寄存器*变址寄存器SI:源变址寄存器
DI:目标变址寄存器
变址寄存器在指令中常用于存放数据在内存中的地址。2. 控制寄存器*2. 控制寄存器IP
指令指针寄存器,其内容为下一条要执行指令的偏移地址。
FLAGS
标志寄存器,存放运算结果的特征
6个状态标志位(CF,SF,AF,PF,OF,ZF)
3个控制标志位(IF,TF,DF)状态标志位(1)*状态标志位(1)CF(Carry Flag)
进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1
PF(Parity Flag)
奇偶标志位。运算结果的低8位中“1”的个数为偶数时PF=l
AF(Auxiliary Carry Flag)
辅助进位标志位。加(减)操作中,若Bit3向Bit4有进位(借位),AF=1 状态标志位(2)*状态标志位(2)ZF(Zero Flag)
零标志位。当运算结果为零时ZF=1
SF(Sign Flag)
符号标志位。当运算结果的最高位为1时,SF=l
OF(Overflow Flag)
溢出标志位。当算术运算的结果超出了有符号数的可表达范围时,OF=l
状态标志位例*状态标志位例给出以下运算结果及运算后各状态标志位的状态:
10110110+11110100
10110110
+ 11110100
101010101CF= OF=
AF= PF=
SF= ZF=111010控制标志位*控制标志位TF(Trap Flag)
陷井标志位,也叫跟踪标志位。TF=1时,使CPU处于单步执行指令的工作方式。
IF(Interrupt Enable Flag)
中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。
DF(Direction Flag)
方向标志位。在数据串操作时确定操作的方向。 3. 段寄存器*3. 段寄存器作用
用于存放相应逻辑段的段基地址
8086/8088内存中逻辑段的数量
最多为64K个
8086/8088内存中逻辑段的类型
代码段
数据段
附加段
堆栈段存放指令代码存放操作的数据存放操作的数据存放暂时不用但需保存的数据。为什么叫逻辑段?每个段寄存器中存放的内容=?段寄存器*段寄存器CS
代码段寄存器,存放代码段的段基地址。
DS
数据段寄存器 ,存放数据段的段基地址。
ES
附加段寄存器,存放数据段的段基地址。
SS
堆栈段寄存器, 存放堆栈段的段基地址段寄存器的值表明相应逻辑段在内存中的位置五、存储器寻址*五、存储器寻址1. 内存单元的编址(1)*1. 内存单元的编址(1)每个内存单元在整个内存空间中都具有惟一的地址
每个内存单元的地址码都由两部分组成:
段(基)地址
16位
段内地址
16位相对地址/偏移地址物理地址8088为16位结构,所以段地址和偏移地址均为16位存储器的编址(2)*存储器的编址(2)段基地址:
决定存储单元在内存中的位置
相对地址(偏移地址)
决定该存储单元相对段内第一个单元的距离
逻辑段的起始地址称为段首
每个逻辑段内的第一个单元
段首的偏移地址=0存储器的编址(3)*存储器的编址(3)0 0 0 0段基地址(16位)段首地址(段首的物理地址)× × × • • •× × ×1904段首的偏移地址:
0000H段基地址(16位)× × × • • •× × ×31015× × × • • •× × ×存储器的编址(4)*存储器的编址(4)例:
段基地址 =6000H
段首地址
偏移地址=0009H
物理地址数据段60009H00H12H60000H9物理地址:
内存单元在整个内存空间中的惟一地址2. 实地址模式下的存储器地址变换*2. 实地址模式下的存储器地址变换内存物理地址由段基地址和偏移地址组成物理地址=段基地址×16+偏移地址0 0 0 0段首地址× × × • • •× × ×1904× × × • • •× × ×偏移地址+物理地址例:*例:已知 CS=1055H,
DS=250AH
ES=2EF0H
SS=8FF0H
画出各段在内存中的分布。例:*例:CS=1055H
段首地址=10550H
DS=250AH
段首地址=250A0H
ES=2EF0H
SS=8FF0H10550H250A0H2EF00H8FF00H代码段数据段附加段堆栈段 例*例设某操作数存放在数据段,DS=250AH,数据所在单元的偏移地址=0204H。则该操作数所在单元的物理地址为:
250AH ×16+0204H = 252A4H3. 存储器的保护模式*3. 存储器的保护模式保护模式:
支持多任务的工作模式,提供了多任务保护机制;
内存段的访问受到限制,不能再随意存取数据段。
保护模式下的内存访问
不再直接从段寄存器中获得段基地址,段基地址存放在内存的段描述符表中,由段描述符寄存器给出段描述符表的基地址,段寄存器中仅存放段选择符。保护模式下的存储器地址变换*保护模式下的存储器地址变换4. 堆栈及堆栈段的使用*4. 堆栈及堆栈段的使用堆栈:
内存中一个特殊区域,用于存放暂时不用或需要保护的数据。
常用于响应中断或子程序调用。例:*例:已知
SS=1000H,SP=0100H
则:
堆栈段的段首地址=
栈顶(偏移)地址=
若该段最后一个单元
地址为10200H,则:
栈底偏移地址=10000H0100H0200H5. 内部寄存器小结*5. 内部寄存器小结全部为16位寄存器
只有4个数据寄存器分别可分为2个8位寄存器
所有16位寄存器中:
全部通用寄存器中,只有AX和CX中的内容一定为参加运算的数据,其余通用寄存器中的内容可能是数据,也可能是存放数据的地址;
SP中的内容通常为堆栈段的栈顶地址;
段寄存器中的内容为相应逻辑段的段地址;
IP中的内容为下一条要取的指令的偏移地址;
FLAGS中有9位标志位6. 实模式下的存储器寻址小结*6. 实模式下的存储器寻址小结每个内存单元在整个内存空间中都具有惟一地址
每个内存单元的地址都由两部分组成:
段基地址 段内相对地址(偏移地址)
段基地址决定了逻辑段在内存中所占的区域,改变段基地址,则改变了逻辑段的位置。
一个逻辑段的默认长度为64KB,最小长度值为16B。
逻辑段可以有多个,但只有4种类型。在一个程序模块中,每种类型的逻辑段最多只能有一个。六、总线时序*六、总线时序时序*时序时序:
CPU各引脚信号在时间上的关系
总线周期:
CPU完成一次访问内存(或接口)操作所需要的时间。
一个总线周期至少包括4个时钟周期。七、8088系统总线*七、8088系统总线主要内容:*主要内容:总线的基本概念和分类;
总线的工作方式;
常用系统总线标准。1. 概述*1. 概述总线:
是一组导线和相关的控制、驱动电路的集合。是计算机系统各部件之间传输地址、数据和控制信息的通道。地址总线(AB)
数据总线(DB)
控制总线(CB)2. 总线分类*2. 总线分类CPU总线
系统总线
外部总线片内总线
片外总线按相对CPU的位置分按层次结构分3. 总线的系统结构*3. 总线的系统结构单总线结构
CPU M M I/O I/O I/O多总线结构*多总线结构面向CPU的双总线结构
面向主存的双总线结构双总线结构
多总线结构面向CPU的双总线结构*面向CPU的双总线结构存储器与I/O接口间无直接通道CPU M I/O I/O I/O面向存储器的双总线结构*面向存储器的双总线结构在单总线结构基础上增加一条CPU到存储器的高速总线CPU M I/O I/O I/O现代微机中的多总线结构*现代微机中的多总线结构4. 总线的基本功能*4. 总线的基本功能数据传送
仲裁控制
出错处理
总线驱动5. 常用系统总线*5. 常用系统总线ISA(8/16位)
PCI(32/64位)
AGP(加速图形端口,用于提高图形处理能力)
PCI-E(PCI Express )
目前最新的系统总线标准,采用串行方式传输数据,依靠高频率来获得高性能。6. 总线的主要性能指标*6. 总线的主要性能指标总线带宽(B/S):单位时间内总线上可传送
的数据量
总线位宽(bit): 能同时传送的数据位数
总线的工作频率(MHz)
总线带宽=
(位宽/8)(工作频率/每个存取周期的时钟数)7. 两种工作模式下的总线连接*7. 两种工作模式下的总线连接8088可工作于两种模式下
最小模式为单处理器模式,控制信号较少,一般可不必接总线控制器。
最大模式为多处理器模式,控制信号较多,须通过总线控制器与总线相连。最小模式下的总线连接示意图*最小模式下的总线连接示意图8088
CPU•
•控制总线数据总线地址总线地址
锁存数据
收发ALE时钟发
生 器最大模式下的总线连接示意图*最大模式下的总线连接示意图8088
CPU数据总线地址总线地址
锁存数据
收发ALE时钟发
生 器总 线
控制器控制总线本章小结*本章小结微处理器的一般构成
8088CPU的主要引线及其功能
8088CPU的内部结构
内部寄存器功能
寄存器中数据的含义
8位寄存器中存放的均为运算的数据
存储器寻址
逻辑地址,段基地址,偏移地址,物理地址
堆栈
栈顶地址,栈底地址,堆栈段基地址null*第3章
指令系统*第3章
指令系统主要内容:*主要内容:指令系统的一般概念
对操作数的寻址方式
六大类指令的操作原理:
操作码的含义
指令对操作数的要求
指令执行的结果§3.1 概述*§3.1 概述了解:*了解:指令及指令系统;
指令的
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
;
指令中的操作数类型;
指令字长与机器字长;
指令的执行时间
CISC和RISC指令系统
一、指令与指令系统*一、指令与指令系统指令:
控制计算机完成某种操作的命令
指令系统:
处理器所能识别的所有指令的集合
指令的兼容性:
同一系列机的指令都是兼容的。二、指令格式*二、指令格式指令中应包含的信息:运算数据的来源
运算结果的去向
执行的操作指令格式*指令格式操作码 [操作数],[操作数]执行何种操作目标操作数源操作数参加操作的数据或数据存放的地址指令格式:*指令格式: 零操作数指令: 操作码
单操作数指令: 操作码 操作数
双操作数指令: 操作码 操作数,操作数
多操作数指令: 三操作数及以上三、指令中的操作数*三、指令中的操作数立即数
寄存器
存储器表征参加操作的数据本身表征数据存放的地址立即数操作数*立即数操作数立即数本身是参加操作的数据,可以是8位或16位,只能作为源操作数。
例: MOV AX,1234H
MOV BL,22H
立即数无法作为目标操作数
立即数可以是无符号或带符号数,其数值应在可取值范围内。寄存器操作数:*寄存器操作数:参加运算的数存放在指令给出的寄存器中,可以是16位或8位。
例:
MOV AX,BX
MOV DL,CH存储器操作数*存储器操作数参加运算的数存放在存储器的某一个或某两个单元中。
表现形式:[ ]立即数或寄存器[ ]中的内容是存放所寻找数据的单元的偏移地址存储器操作数例*存储器操作数例例: MOV AX,[1200H]
MOV AL,[1200H]22H11H1200H偏移地址AH AL┇ 四、指令字长*四、指令字长指令字长:
由操作码的长度、操作数地址长度、操作数个数决定。五、指令的执行速度*五、指令的执行速度指令的字长影响指令的执行速度
对不同的操作数,指令执行的时间不同:
存储器快!立即数寄存器六、CISC和RISC指令系统*六、CISC和RISC指令系统CISC(complex instruction set computer)
指令的功能强,种类多,常用指令用硬件实现;
指令系统复杂,难使用。
RISC指令系统
指令功能较弱,种类少,格式简单;
多数指令在一个计算机周期内完成;
对存储器的结构和存取速度要求较高。§3.2 寻址方式*§3.2 寻址方式寻址方式*寻址方式 寻找操作数所在地址的方法
寻找转移地址的方法
本节寻址方式*寻址方式操作数可能的来源或存放处:
由指令直接给出
寄存器
内存单元
寻找操作数所在地址的方法可以有三种大类型
指令直接给出的方式
存放于寄存器中的寻址方式
存放于存储器中的寻址方式一、立即寻址*一、立即寻址指令中的源操作数是立即数,即源操作数是参加操作的数据本身
例:MOV AX,1200H12H00HAH ALMOV代码段┇ 立即寻址仅适合于源操作数
二、寄存器寻址*二、寄存器寻址参加操作的操作数在CPU的通用寄存器中。
例:MOV AX,BX AX BX三、直接寻址*三、直接寻址指令中直接给出操作数的偏移地址
默认在数据段
例:MOV AX,[1200H]22H11H1200H偏移地址┇ 数据段AH AL直接寻址*直接寻址直接寻址方式下,操作数的段地址默认为数据段,但允许段重设,即由指令定义段。
例:MOV AX,ES:[1200H]四、寄存器间接寻址*四、寄存器间接寻址参与操作的操作数存放在内存中,其偏移地址为指令中的寄存器的内容。
寄存器间接寻址例*寄存器间接寻址例例:MOV AX,[BX]
设BX=1200H22H11H1200H偏移地址AH AL┇ 11 22数据段代码段MOV寄存器间接寻址*寄存器间接寻址由寄存器间接给出操作数的偏移地址;
存放偏移地址的寄存器称为间址寄存器,它们是:BX,BP,SI,DI
操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器:
BX,SI,DI
BP默认在数据段默认在堆栈段寄存器间接寻址*寄存器间接寻址 寄存器
间接寻址基址寻址(间址寄存器为基址寄存
器BX,BP)
变址寻址(间址寄存器为变址寄存
器SI,DI)五、寄存器相对寻址*五、寄存器相对寻址操作数的偏移地址为寄存器的内容加上一个位移量
例:
MOV AX,[BX+DATA]
设:DS=2000H,BX=0220H,DATA=05H
则:AX=[20225H]六、基址、变址寻址*六、基址、变址寻址操作数的偏移地址为
一个基址寄存器的内容 + 一个变址寄存器的内容;
操作数的段地址由选择的基址寄存器决定
基址寄存器为BX,默认在数据段
基址寄存器为BP,默认在堆栈段
基址变址寻址方式与相对寻址方式一样,主要用于一维数组操作。例:*例:执行下列指令:
MOV SI,1100H
MOV BX,SI
MOV AX,[SI+BX]22H11H2200H偏移地址AH AL┇ 11 22数据段七、基址、变址、相对寻址*七、基址、变址、相对寻址操作数的偏移地址为:
基址寄存器内容+变址寄存器内容+位移量
操作数的段地址由选择的基址寄存器决定。
基址变址相对寻址方式主要用于二维表格操作。例:*例:执行以下程序段:
MOV DI,1100H
MOV BP,DI
MOV AL,[BP][DI]522H11H2205H偏移地址AL┇ 22堆栈段八、隐含寻址*八、隐含寻址指令中隐含了一个或两个操作数的地址,即操作数在默认的地址中。
例:
MUL BL
指令执行:
AL×BLAX§3.3 8086指令系统*§3.3 8086指令系统掌握:*掌握:指令码的含义
指令对操作数的要求
指令的对标志位的影响
指令的功能8086指令系统*8086指令系统从功能上包括六大类:数据传送
算术运算
逻辑运算和移位
串操作
程序控制
处理器控制数据传送指令*数据传送指令通用数据传送
输入输出
地址传送
标志位操作一、通用数据传送*一、通用数据传送一般数据传送指令
堆栈操作指令
交换指令
查表转换指令
字位扩展指令特点:
该类指令的执行对标志位不产生影响 1. 一般数据传送指令*1. 一般数据传送指令一般数据传送指令 MOV
格式:
MOV dest,src
操作:
src
例:
MOV AL,BL dest一般数据传送指令*一般数据传送指令注意点:
两操作数字长必须相同;
两操作数不允许同时为存储器操作数;
两操作数不允许同时为段寄存器;
在源操作数是立即数时,目标操作数不能是段寄存器;
IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现。一般数据传送指令例*一般数据传送指令例判断下列指令的正确性:
MOV AL,BX
MOV AX,[SI]05H
MOV [BX][BP],BX
MOV DS,1000H
MOV DX,09H
MOV [1200],[SI]一般数据传送指令应用例*一般数据传送指令应用例将(*)的ASCII码2AH送入内存数据段1000H开始的100个单元中。
题目分析:
确定首地址
确定数据长度
写一次数据
修改单元地址
修改长度值
判断写完否?
未完继续写入,否则结束1063H100B1000H2AH数据段2AH2AH2AH一般数据传送指令应用例*一般数据传送指令应用例程序段:
MOV DI,1000H
MOV CX,64H
MOV AL,2AH
AGAIN:MOV [DI],AL
INC DI ;DI+1
DEC CX ;CX-1
JNZ AGAIN ;CX≠0则继续
HLT 上段程序在代码段中的存放形式*上段程序在代码段中的存放形式設CS=109EH,IP=0100H,则各条指令在代码段中的存放地址如下:
CS : IP 机器指令 汇编指令
109E:0100 B80010 MOV DI,1000H
109E:0103 . MOV CX,64H
109E:0105 . MOV AL,2AH
109E:0107 . MOV [DI],AL
109E:0109 INC DI
109E:010A DEC CX
109E:010B JNZ 0107H
109E:010D HLT数据段中的分布 *数据段中的分布 送上2AH后数据段中相应存储单元的内容改变如下:
DS:1000 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A
DS:1010 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A
DS:1020 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A
DS:1030 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A
DS:1040 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A
DS:1050 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A
DS:1060 2A 2A 2A 2A 00 00 00 00 00 00 00 00 00 00 00 00偏移地址[DI]2. 堆栈操作指令*2. 堆栈操作指令掌握:
有关堆栈的概念
栈顶、栈首、栈底
堆栈指令的操作原理
执行过程,执行结果堆栈操作的原则*堆栈操作的原则先进后出
以字为单位堆栈操作指令*堆栈操作指令压栈指令 PUSH
格式: PUSH OPRD
出栈指令 POP
格式: POP OPRD16位寄存器或
存储器两单元16位寄存器或
存储器两单元压栈指令 PUSH*压栈指令 PUSH指令执行过程:
SP - 2 → SP
操作数高字节 → SP+1
操作数低字节 → SP┇ SP堆栈段SP高8位低8位压栈指令的操作*压栈指令的操作设AX=1234H,SP=1200H
执行 PUSH AX 指令后堆栈区的状态: 1200H┇ 堆栈段 SP-2=11FEH12H34H1200H┇ 堆栈段12H 34HAX入栈后入栈前出栈指令POP*出栈指令POP指令执行过程:
SP
SP+1
SP ← SP+2操作数低字节操作数高字节┇ SP堆栈段SP高8位低8位出栈指令的操作*出栈指令的操作执行 POP AX 12H34H11FEH┇ 堆栈段代码段PUSH 12 34 AX SP+21200H┇ 出栈后出栈前堆栈操作指令说明*堆栈操作指令说明指令的操作数必须是16位的;
操作数可以是寄存器或存储器两单元,但不能是立即数;
不能从栈顶弹出一个字给CS;
PUSH和POP指令在程序中一般成对出现;
PUSH指令的操作方向是从高地址向低地址,而POP指令的操作正好相反。堆栈操作指令例*堆栈操作指令例MOV AX,1234H
MOV SP,AX
MOV BX,5678H
MOV [BX],AH
MOV [BX+1],BL
PUSH AX
PUSH BX
PUSH WORD PTR[BX]
POP WORD PTR[BX]
POP AX
POP BX┇ 如此,会使AX和BX的内容互换3. 交换指令*3. 交换指令格式:
XCHG REG,MEM/REG
注:
两操作数必须有一个是寄存器操作数
不允许使用段寄存器。
例:
XCHG AX,BX
XCHG [2000],CL4. 查表指令*4. 查表指令格式:
XLAT
说明:
用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址
操作:
将BX+AL所指单元的内容送AL查表指令例*查表指令例数据段中存放有一
张ASCII码转换表,
设首地址为2000H,
现欲查出表中第11
个代码的ASCII码303132...394142...45462000H+02000H+11‘0’‘1’‘2’‘9’‘A’‘B’‘E’‘F’查表指令例*查表指令例可用如下指令实现:
MOV BX,2000H ;BX←表首地址
MOV AL,0BH ;AL←序号
XLAT ;查表转换
执行后:AL = 42H
还可用其他方法实现,如:
MOV BX,2000H
MOV AL,[BX+0BH]5. 字位扩展指令 *5. 字位扩展指令 将符号数的符号位扩展到高位;
指令为零操作数指令,采用隐含寻址,隐含的操作数为AX及AX,DX
无符号数的扩展规则为在高位补0字节到字的扩展指令*字节到字的扩展指令格式:
CBW
操作:
将AL内容扩展到AX
规则:
若最高位=1,则执行后AH=FFH
若最高位=0,则执行后AH=00H字到双字的扩展指令*字到双字的扩展指令格式:
CWD
操作:
将AX内容扩展到DX AX
规则:
若最高位=1,则执行后DX=FFFFH
若最高位=0,则执行后DX=0000H字位扩展指令例*字位扩展指令例判断以下指令执行结果:
MOV AL,44H
CBW
MOV AX,0AFDEH
CWD
MOV AL,86H
CBW二、输入输出指令*二、输入输出指令掌握:
指令的格式及操作
指令的两种寻址方式
指令对操作数的要求输入输出指令*输入输出指令专门面向I/O端口操作的指令
指令格式:
输入指令: IN acc,PORT
输出指令 :OUT PORT,acc端口地址指令寻址方式*指令寻址方式根据端口地址码的长度,指令具有两种不同的端口地址表现形式。
直接寻址
端口地址为8位时,指令中直接给出8位端口地址;
寻址256个端口。
间接寻址
端口地址为16位时,指令中的端口地址必须由DX指定;
可寻址64K个端口。I/O指令例*I/O指令例IN AX,80H
MOV DX,2400H
IN AL,DX
OUT 35H ,AX
OUT AX,35H三、地址传送指令*三、地址传送指令取偏移地址指令LEA
*LDS指令
*LES指令取偏移地址指令LEA*取偏移地址指令LEA操作:
将变量的16位偏移地址取出送目标寄存器
当程序中用符号地址表示内存偏移地址时,须使用该指令。
格式:
LEA REG,MEM
指令要求:
源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器。符号地址LEA指令*LEA指令比较下列指令:
MOV SI,DATA1
LEA SI,DATA1
MOV BX,[BX]
LEA BX,[BX]┇ ┇ ┇ DATA1符号地址12H34H1100H88H77HBX=1100H执行结果:SI=1234H执行结果:SI=DATA1执行结果:BX=7788H执行结果:BX=1100HLEA指令在程序中的应用*LEA指令在程序中的应用将数据段中首地址为MEM1 的50个字节的数据传送到同一逻辑段首地址为MEM2的区域存放。编写相应的程序段 。 LEA指令在程序中的应用*LEA指令在程序中的应用 开 始取源地址取目标地址送数据块长度到CL传送一个字节修改地址指针修改计数值计数值=0? 结 束NYLEA指令在程序中的应用*LEA指令在程序中的应用 LEA SI,MEM1
LEA DI,MEM2
MOV CL,50
NEXT: MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CL
JNZ NEXT
HLT 四、标志位操作指令 *四、标志位操作指令 LAHF
SAHF
PUSHF
POPF隐含操作数AH隐含操作数FLAGS1. LAHF,SAHF*1. LAHF,SAHFLAHF
操作:
将FLAGS的低8位装入AHCFPFAFZFCF….AHF