3.07k likes | 3.27k Views
Principle and Application of Microcomputer 微 机 原 理 及 应 用. R 2. 教 师:田 行 斌 单 位:机 电 系. 学习内容. 微型计算机系统概述 微处理器指令系统 汇编语言程序设计 微处理器外部特性 半导体存储器系统 基本输入输出接口 并行接口及其应用. 学习目的. 了解微型计算机的硬件知识 熟练掌握汇编语言程序设计 建立微机系统的整体概念, 为接口开发及应用奠定基础. 微型计算机系统概述. 微型计算机的发展和应用 微型计算机的系统组成 计算机中的数据表示. 微型计算机的发展.
E N D
Principle and Application of Microcomputer微 机 原 理 及 应 用 R2 教 师:田 行 斌 单 位:机 电 系
学习内容 • 微型计算机系统概述 • 微处理器指令系统 • 汇编语言程序设计 • 微处理器外部特性 • 半导体存储器系统 • 基本输入输出接口 • 并行接口及其应用
学习目的 • 了解微型计算机的硬件知识 • 熟练掌握汇编语言程序设计 • 建立微机系统的整体概念,为接口开发及应用奠定基础
微型计算机系统概述 • 微型计算机的发展和应用 • 微型计算机的系统组成 • 计算机中的数据表示
微型计算机的发展 • 第1代:4位微机。 CPU:4004 • 第2代:8位微机。 CPU:8080 • 第3代:16位微机。CPU:8086、8088 • 第4代:32位微机。CPU:80386、Pentium • 第5代:64位微机。CPU:Itanium
微型计算机的应用 • 用于数值计算、数据处理及信息管理 • 用于过程控制及嵌入应用方向
微型计算机系统的组成 • 硬件系统:CPU、存储器、I/O接口、I/O设备、系统总线 • 软件系统: 系统软件-操作系统、语言处理软件等 应用软件-为某个应用编制的程序
系统总线 地址总线AB 系 统 总 线 形 成 处 理 器 子 系 统 数据总线DB 控制总线CB 存储器 I/O接口 I/O设备 微机系统的硬件组成
IBM PC系列计算机 IBM PC/XT IBM PC/AT
计算机中的数据表示 • 计算机中各种信息均表示为二进制数据。 • 数:用来直接表征量的多少,可进行运算。 • 码:指代码或编码,用来代表某个事物。
基本术语 • 位 (Bit) :二进制位,为0或1。 • 字节(Byte):8个二进制位。 • 字 (Word):2字节(16位)数据。 • 双字(Double Word):4字节数据。 • 千字节(KB):210个字节。 • 兆字节(MB):220个字节。
计算机中的数 • 二进制数后缀为B或b,十进制数后缀为D或d,十六进制数后缀为H或h。 • 二进制数:由数字0和1组成,基数为2,逢2进1,各个数位的权值由右向左依次为20、21、22、23、…。 • 十六进制数:由数字符号0-9、A-F组成,基数为16,逢16进1,各个数位的权值由右向左依次为160、161、162、163、…。
二进制数与十进制数之间的转换 • 二进制数到十进制数的转换:按权展开求和00001011B=1×23+1×21+1×20=11D • 十进制数到二进制数的转换:除基取余建议按照按权展开的逆过程进行
二进制数与十六进制数之间的转换 • 每4位二进制数对应1位十六进制数0000B=0H 0100B=4H 1000B=8H 1100B=CH0001B=1H 0101B=5H 1001B=9H 1101B=DH0010B=2H 0110B=6H 1010B=AH 1110B=EH0011B=3H 0111B=7H 1011B=BH 1111B=FH • 十六进制数常用来简化对二进制数的书写
计算机中的码 • 用于表示有符号数的补码。 • 用于表示十进制数的BCD码。 • 美国标准信息交换码ASCII码。
补码 • 计算机内部默认采用补码表示有符号数。规定:最高有效位为符号位,0表示正数,1表示负数。 • 正数的补码:最高有效位为0,其余各位为该整数的二进制表示。如:(+2)=(00000010B)补 • 负数的补码:最高有效位为1,其余各位可对该整数的二进制表示求补(即按位取反再加1)得到。如:(-2)=(11111110B)补
补码的性质 • (X)补 + (Y)补=(X +Y)补=(X)补 + (+Y)补 • (X)补- (Y)补=(X - Y)补=(X)补 + (- Y)补 • 采用补码表示有符号数可将减法转换为加法。
有关补码的问题 • 1) 已知(负数)补码求真值 按权展开求和,但符号位的权值要取为相反数。(10000010B)补=1×(-128)+1×2=-126 • 2)已知补码求相反数的补码(+4)=(00000100B)补 (-4)=(11111100B)补由右向左抄写,遇到0照写,遇到第一个1也照写,其后各位按位取反。据此,可根据一个正数的补码得到其相反数(负数)的补码。
补码的符号扩展 • 补码的符号扩展是指将有符号数的长度扩展而不改变其值。原则是:新扩的左侧各位均复制原符号位上的值。(68H)补= (0068H)补(86H)补= (FF86H)补
BCD码 • Binary Code Decimal:二进制编码的十进制数 • 压缩的8421BCD码0000B=0 0011B=3 0110B=6 1001B=9 0001B=1 0100B=4 0111B=7 0010B=2 0101B=5 1000B=8
ASCII码 • 美国标准信息交换码。码长7位,用来表示34个外设控制符号和94个可供打印的西文符号。数码0~9的ASCII码为30H~39H;大写字母A~Z的ASCII码为41H~5AH;小写字母a~z的ASCII码为61H~7AH;0DH表示回车,0AH表示换行。
第一章教学要求 • 掌握微机系统的组成 • 熟练二进制数与十进制数的转换、二进制数与十六进制数的转换 • 熟练掌握有符号数的补码表示、BCD码
第一章练习 • 8位机器数所能表示的无符号数和有符号数的范围是多少?16位机器数呢? • (+37)和(-37)的补码是多少? • 数据50和50H所对应的BCD码是多少? • 8位机器数46H,若作为无符号数、有符号数补码、BCD码、ASCII码,各代表什么?
微处理器指令系统 • 微处理器的内部结构 • 8086/8088的寻址方式 • 8086/8088指令系统
微处理器的基本结构 • 算术逻辑单元ALU(运算器) • 寄存器组:包括通用寄存器,地址寄存器,标志寄存器。 • 指令处理单元(控制器):包括指令寄存器,指令译码逻辑,时序和控制逻辑。
8086/8088的功能结构 • 总线接口单元BIU:由指令队列、指令指针IP 、段寄存器、地址加法器和总线控制逻辑等组成,负责CPU对存储器和外设进行访问。 • 执行单元EU:由ALU、数据寄存器、地址寄存器、标志寄存器和指令译码逻辑等组成,负责指令的译码、执行和数据的运算。
8086/8088的寄存器结构 • 8086/8088中有14个16位寄存器 • 通用寄存器AX、BX、CX、DX、SI、DI、BP、SP • 指令指针IP • 标志寄存器FLAGS • 段寄存器CS、SS、DS、ES
通用寄存器 • 16位的通用寄存器有8个,它们是:AX、BX、CX、DX、SI、DI、BP、SP • 其中,前4个寄存器(即AX、BX、CX、DX)还可以各分成高8位和低8位的两个独立的8位寄存器,它们分别是:AH、AL,BH、BL,CH、CL,DH、DL
寄存器AX/BX/CX/DX • AX:16位累加器,用于算术运算以及与外设传送信息等;AL为8位累加器。 • BX:基址寄存器,常用来做基址指针,指向一批连续存放的操作数的基地址。 • CX:计数器,作为循环和串操作等指令中的隐含计数器。 • DX:数据寄存器,用来存放外设端口的16位地址,或双字长数据的高16位。
变址寄存器SI/DI • 变址寄存器常用于存储器寻址时提供地址。 • SI是源变址寄存器。 • DI是目的变址寄存器。 • 在串操作类指令中,SI和DI具有特别的功能。
指针寄存器SP/BP • 指针寄存器用于寻址内存堆栈中的数据。 • SP为堆栈指针寄存器,指示栈顶的偏移地址。SP不能再用于其他目的,具有专用性。 • BP为基址指针寄存器,表示数据在堆栈段中的基地址。 • SP/BP寄存器与SS堆栈段寄存器联合使用以确定堆栈段中的存储单元地址。
指令指针IP • 指令指针IP,指示代码段中指令的偏移地址。 • 它与代码段寄存器CS联用,确定下一条指令的物理地址。CPU通过CS:IP来取指,从而控制指令序列的执行流程。 • IP是一个专用寄存器,用户不能直接访问。
标志寄存器FLAGS • 标志(Flag)用于反映指令的执行结果或控制指令的执行形式。各种标志存放于一个16位的标志寄存器FLAGS中。 • 标志分成两类状态标志:用来记录程序运行结果的状态信息;控制标志:用于控制处理器的具体工作方式。
状态标志CF/PF/AF • CF—进位标志位。做加减运算时,若最高有效位有进位或借位,则CF置1,反之置0。 • PF—奇偶标志位。当运算结果的低8位中l的个数为偶数时,则PF置1,反之置0。 • AF—半进位标志位。做加减运算时,若Bit3有向Bit4的进位或借位,则AF置1,反之置0。
状态标志ZF/SF/OF • ZF—零标志位。运算结果为0时,ZF置1,否则置0。 • SF—符号标志位。运算结果的最高位为1时,SF置1,否则置0。 • OF—溢出标志位。若有符号数的加减运算有溢出,OF置1,否则置0。
控制标志TF/IF/DF • 陷阱标志TF(单步标志):TF=1,CPU单步执行指令;TF=0,CPU正常工作。 • 中断允许标志IF:控制外部可屏蔽中断是否可以被CPU响应。IF=1允许中断,IF=0禁止中断。 • 方向标志DF:用于串操作指令中控制地址的变化方向。DF=0地址增加;DF=1地址减少。
8086/8088的存储器结构 • 存储器以字节为单位存储信息。每个存储器单元(字节单元)都有一个地址。 • 8086/8088有20根地址线。最大可寻址的存储器单元数为220=1MB。 • 其物理地址范围为00000H~FFFFFH。例如:[00002H]=34H。
小端方式 • 字或双字信息在存储器中占相邻的2个或4个存储单元。 • 多字节数据占据的地址空间用低地址来表示。 • 按“小端方式”存储,即“低字节对低地址、高字节对高地址”。例如:[00002H]=1234H,意指:[00002H]=34H, [00003H]=12H。
存储器的分段管理 • 8086/8088将1MB存储器空间分成若干个逻辑段来管理。每个段最大限制为64KB。 • 采用逻辑地址(段地址:偏移地址)的形式来表达段中每个存储器单元的20位物理地址。 • 段地址和偏移地址都是16位二进制数。
段地址 • 段地址说明该逻辑段在内存中的起始位置,即该段中的第一个内存单元的物理地址。 • 规定段地址必须是模16地址,即××××0H的形式,故可采用16位二进制数据表示,保存在16位的段寄存器(CS,DS,ES,SS)中。
偏移地址 • 偏移地址说明该段中某个内存单元距离该段起始位置的偏移量。 • 由于每个段的长度不超过64KB,故偏移地址也可采用16位二进制数据表示。
逻辑地址和物理地址 • 物理地址 = 段地址×10H + 偏移地址。 • 一个存储器单元只有一个唯一的物理地址。 • 但一个存储器单元可以拥有多个逻辑地址。
代码段(Code Segment) • 代码段主要用来存放指令代码(程序),也可存放数据。 • 代码段寄存器CS存放代码段的段地址。 • 指令指针寄存器IP指示下条指令的偏移地址。 • 处理器利用CS:IP取得下一条要执行的指令。
数据段(Data Segment) • 数据段存放程序所使用的数据。 • 数据段寄存器DS存放数据段的段地址。 • 通过各种存储器寻址方式得到存储器中操作数的偏移地址(有效地址EA)。 • 处理器利用DS:EA存取数据段中的数据。
附加段(Extra Segment) • 附加段是附加的数据段,也用于数据的保存。 • 附加段寄存器ES存放附加段的段地址。 • 通过各种存储器寻址方式得到存储器中操作数的偏移地址(有效地址EA) 。 • 处理器利用ES:EA存取附加段中的数据。
堆栈段(Stack Segment) • 堆栈段用于堆栈(Stack),用来暂时存放数据、保存程序断点、和向子程序传递参数等。 • 堆栈段寄存器SS存放堆栈段的段地址。 • 堆栈指针寄存器SP指示堆栈栈顶的偏移地址。 • 处理器利用SS:SP操作堆栈栈顶的数据。
逻辑段的使用 • 程序的指令序列必须安排在代码段。 • 程序使用的堆栈一定在堆栈段。 • 程序中的数据默认是安排在数据段,也经常安排在附加段。数据的存放比较灵活,实际上可以存放在任何一种逻辑段中。
8086/8088的寻址方式 • 指令由操作码和操作数两部分组成。如:MOVAH,0B9H ;将B9H传送到AH寄存器 • 操作码说明计算机要执行何种操作,是指令中不可缺少的部分。操作数就是各种操作的对象。指令可以有一个、两个或没有操作数。 • 寻找操作数的方式(或操作数的存放方式)叫做操作数的寻址方式。
操作数 • 操作数可以是一个具体的数值,存放于操作码之后,称为立即数操作数; • 操作数可以是存放数据的寄存器,数据存放于该寄存器中,称为寄存器操作数; • 操作数可以是用某种方式指明的数据所在的存储器单元的地址,数据存放于该存储器单元中,称为存储器操作数。