版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与接口技术微机原理与接口技术第第1 1章章 微型计算机系统概述微型计算机系统概述教学重点教学重点 计算机中数的表示方法计算机中数的表示方法 微型计算机的系统组成微型计算机的系统组成 微型计算机的工作过程微型计算机的工作过程 H - 表示16进制 Q - 表示8进制 B - 表示2进制 D(或不加标识) - 10进制1.1 计算机中数的表示方法计算机中数的表示方法 数的表示数的表示 计算机的数制计算机的数制 常用编码常用编码数制之间的转换(整数、小数)数制之间的转换(整数、小数)书写书写BCD码码ASCII码码汉字编码汉字编码1.1 计算机中数的表示方法计算机中数的表示方法 BCD码码B
2、CD (binary-coded decimal)一种用一种用4位二进制数字来表示一位十进制位二进制数字来表示一位十进制数字的编码数字的编码。组合组合BCD码(或压缩码(或压缩BCD码)码)未组合未组合BCD码(或未压缩码(或未压缩BCD码)码)用用4个二进制位表示个二进制位表示1个十进制位个十进制位4256 0100 0010 0101 0110用用8个二进制位表示个二进制位表示1个十进制位个十进制位,高高4位为位为04256 00000100 00000010 00000101 00000110十进制数和十进制数和8421BCD码的对应关系码的对应关系十进制数十进制数8421BCD码码十进
3、制数十进制数8421BCD码码00000501011000160110200107011130011810004010091001BCD码的运算码的运算43? 0100+) 0011 011148? 0100+) 1000 1100十进制调整十进制调整十进制调整规则十进制调整规则 若两个若两个BCD数相加,结果大于数相加,结果大于1001,则在,则在本位做加本位做加0110调整;调整; 若两个若两个BCD数相加,结果在本位上并不大于数相加,结果在本位上并不大于1001,但低四位向高位产生了进位,也要,但低四位向高位产生了进位,也要做加做加0110调整;调整; 两个两个BCD数相减,若低数相减,
4、若低4位向高位有借位,位向高位有借位,在低在低4位要做减位要做减0110调整。调整。调整举例调整举例48? 0100+) 1000 1100+) 01100001 00105448? 0101 0100+) 0100 1000 1001 1100+) 0110 1010 0010+) 0110 0001 0000 0010ASCII码码ASCII(American national standard code for information interchange)7位二进制数表示,第8位常用作奇偶校验位。汉字编码汉字编码国标码国标码国家标准信息交换用汉字编码(GB2312-80)用两个7位表
5、示一个汉字、符号或图形输入码输入码拼音、五笔、区位内码不同的输入方法,但内码是统一的;台湾的内码不同(BIG5)带符号数的表示带符号数的表示无符号数无符号数不带正负符号的数。计算机如何表示数的正负号?计算机如何表示数的正负号? 习惯上约定最高位是符号位,0表示正数,1表示负数。其余位称为数值位。机器数与真值机器数与真值机器数机器数 正负符号进行数字化的数, 计算机能直接识别。 如01001011、10001001。真值真值 用+、-表示的数,数的真实意义。 如87,24。原码、反码、补码原码、反码、补码正数正数 x原原 x反反 x补补 最高位为符号位最高位为符号位,用用0表示表示,其余各数值位
6、不变。其余各数值位不变。负数负数 最高位为符号位,用最高位为符号位,用1表示。表示。 原码原码:其余各数值位不变。:其余各数值位不变。 反码反码:其余各数值位按位取反。:其余各数值位按位取反。 补码补码:其余各数值位按位取反再加:其余各数值位按位取反再加1。 对于同一个机器数,如果编码方式不同,则对应的真值可能不同。关于原码、反码、补码的说明关于原码、反码、补码的说明带符号数的表示带符号数的表示,都是针对特定字长的。都是针对特定字长的。如如8位二进制原码,位二进制原码,16位二进制补码。位二进制补码。带符号数的表示都是有确定范围的带符号数的表示都是有确定范围的,超出超出范围叫范围叫溢出溢出。大
7、多数计算机采用补码来表示带符号数大多数计算机采用补码来表示带符号数,如如8086/8088。1.2 微型计算机的系统组成微型计算机的系统组成 重要里程碑重要里程碑19711971年,年,IntelIntel公司设计了公司设计了世界上第一个微处理器芯片世界上第一个微处理器芯片Intel4004Intel4004。19461946年,世界上出现第一台数字式电子计算机年,世界上出现第一台数字式电子计算机ENIACENIAC。人类第一台计算机人类第一台计算机ENIACIntel 4004和计算器和计算器发展历程发展历程第第1代,代,4位和低档位和低档8位微机位微机400440408008第第2代,中高
8、档代,中高档8位微机位微机Z80、I8085、M6800、Apple-II微机微机第第3代,代, 16位微机位微机8086808880286, IBM PC系列机系列机第第4代,代, 32位微机位微机8038680486PentiumPentium II / III / 432位位PC机机第第5代,代, 64位微机位微机64位位RISC微处理器芯片微处理器芯片苹果电脑苹果电脑Apple-IApple-IIIBM PC系列机系列机8088CPUIBM PC机机IBM PC/AT机机IBM PC/XT机机Intel系列处理器系列处理器80386Pentium代代发表发表年份年份字长字长(bits)
9、(bits)型号型号线宽线宽( ( m)m)晶体管数晶体管数( (万个万个) )时钟频率时钟频率(MHz)(MHz)速度速度(MIPS)(MIPS)一一19711971197219724 48 8400440048008800850500.20.20.30.3110.050.05二二197419748 88080808020200.50.52-42-40.50.5三三197819781982198216168086/80888086/808880286802862-32-32.92.913134.77-104.77-108-208-201300300七七20022002?6464Itanium
10、Itanium ?0.080.08CPU:2.5KCPU:2.5KCache:30KCache:30K800(20800(20条指令条指令/ /时钟周期时钟周期) )30003000基本概念基本概念位(bit)计算机所能表示的最小的数据单元。每个位有两种状态, 即0和1。字(word)计算机内部进行数据处理的基本单位。字长(word length)每个字所包含的二进制位数。通常与计算机内部寄存器、运算器、总线的宽度一致。字节(byte)相邻8位二进制位,即1byte=8bit。基本概念基本概念单板机单板机(Single Board Computer)将将CPU、ROM、RAM、I/O等电路全部
11、安装到等电路全部安装到一块电路板上。一块电路板上。单片机单片机(Single Chip Computer)将将CPU、ROM、RAM、I/O电路全部集电路全部集成到一块芯片上。成到一块芯片上。微机微机(Microcomputer)微型计算机的简称。微型计算机的简称。嵌入式系统嵌入式系统(Embedded System)以应用为中心,软硬件可剪裁的专用计算机系统。以应用为中心,软硬件可剪裁的专用计算机系统。计算机系统层次结构计算机系统层次结构微机系统的启动和操作系统的装载微机系统的启动和操作系统的装载 相关的两个概念相关的两个概念系统系统BIOS:BIOS是直接与硬件打交是直接与硬件打交道的底层
12、代码,它为操作系统提供了道的底层代码,它为操作系统提供了控制硬件设备的基本功能。控制硬件设备的基本功能。BIOS一般一般被存放在被存放在ROM之中,占用的地址空间之中,占用的地址空间为为F0000HFFFFFH。复位地址:复位地址:FFFF0H。 1.1.4 启动过程启动过程 第一步:第一步: 当我们按下电源开关时,当我们按下电源开关时, CPU得到的得到的启动地址为启动地址为FFFF0H,CPU就会从就会从FFFF0H处开处开始取指令、执行指令。系统始取指令、执行指令。系统BIOS放在这里的只放在这里的只是一条跳转指令,跳到系统是一条跳转指令,跳到系统BIOS中真正的启动中真正的启动程序处。
13、程序处。 第二步:第二步: 系统系统BIOS的启动程序首先要做的事情的启动程序首先要做的事情就是进行加电后自检(就是进行加电后自检(PowerOn Self Test,POST)。)。 第三步:系统第三步:系统BIOS的启动程序进行的最后一项的启动程序进行的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘工作,即根据用户指定的启动顺序从软盘、硬盘或光驱装载操作系统。或光驱装载操作系统。 微型计算机系统的三个层次微型计算机系统的三个层次微处理器微处理器存储器存储器I/O接口接口总线总线 输入输入/输出设备输出设备硬件系统硬件系统软件系统软件系统微微 型型计算机计算机系系 统统微微 型型计算机计
14、算机(主机主机)外外 设设ALU(运算器运算器)寄存器组寄存器组控制器控制器键盘、鼠标键盘、鼠标显示器显示器软驱、硬盘、光驱软驱、硬盘、光驱 打印机、扫描仪打印机、扫描仪系统软件系统软件应用软件应用软件计算机系统组成计算机系统组成运算器运算器 控制器控制器 寄存器组寄存器组 内存储器内存储器 总线总线 输入输出设备输入输出设备 接口电路接口电路外部设备外部设备 软件软件微处理器微处理器微型计算机微型计算机微型计算机系统微型计算机系统微型计算机组成框图微型计算机组成框图微处微处理器理器存储器存储器总总线线输入输输入输出设备出设备接口接口微处理器组成微处理器组成运算器运算器控制器控制器寄存器组寄存
15、器组 用来进行算术逻辑运算和位移、循环等操作。用来进行算术逻辑运算和位移、循环等操作。 又称又称算术逻辑单元算术逻辑单元ALUALU, , 核心是核心是累加器累加器。 参加运算的操作数来自累加器和内部数据总线。参加运算的操作数来自累加器和内部数据总线。 控制器是整个计算机的控制、指挥中心。控制器是整个计算机的控制、指挥中心。 主要功能是控制指令执行的过程与顺序。主要功能是控制指令执行的过程与顺序。 主要由主要由程序计数器程序计数器PCPC、指令寄存器指令寄存器IRIR、指令译码器指令译码器I ID D和和控制逻辑控制逻辑PLAPLA等部件组成。等部件组成。 通常由多个寄存器组成通常由多个寄存器
16、组成, ,主要用来暂存主要用来暂存CPUCPU执行程序执行程序时的常用数据或地址。时的常用数据或地址。控制器控制器程序计数器程序计数器PCPC控制器指令寄存器指令寄存器IRIR指令译码器指令译码器IDID控制逻辑部件控制逻辑部件PLAPLA时序电路时序电路地址寄存器地址寄存器ARAR数据寄存器数据寄存器DRDR微处理器微处理器 ALUoI2I1 AR DR PC256字字节节RAM RAPLA ID IRAL F标志寄标志寄存器存器程序指针程序指针累加器累加器地址寄地址寄存器存器地址总线地址总线AB内存内存寄存器组寄存器组运算器运算器控制逻辑控制逻辑指令指令译码译码器器指令指令寄存寄存器器数据
17、寄数据寄存器存器数据总线数据总线DB系统总线系统总线总线(总线(bus) 总线是指传递信息的一组公用导线。总线是指传递信息的一组公用导线。 总线是传送信息的公共通道。总线是传送信息的公共通道。 微机系统采用总线连接系统功能部件。微机系统采用总线连接系统功能部件。 总线信号可分成三组:总线信号可分成三组:地址总线地址总线ABAB :传送:传送地址地址信息信息数据总线数据总线DBDB :传送:传送数据数据信息信息控制总线控制总线CBCB :传送:传送控制控制信息信息 总线还有电源、地线等其他辅助信号总线还有电源、地线等其他辅助信号系统总线系统总线总线信号总线信号 地址总线地址总线AB (addre
18、ss bus)用于传送用于传送CPUCPU输出将要访问的内存单元或输出将要访问的内存单元或I/OI/O端口的地址端口的地址地址线的多少决定系统直接寻址存储器的范围地址线的多少决定系统直接寻址存储器的范围 数据总线数据总线DB (data bus)CPUCPU读操作时读操作时, ,外部数据通过数据总线送往外部数据通过数据总线送往CPU CPU CPUCPU写操作时写操作时,CPU,CPU数据通过数据总线送往外部数据通过数据总线送往外部数据线的多少决定一次能够传送数据的位数数据线的多少决定一次能够传送数据的位数 控制总线控制总线CB (control bus)协调系统中各部件的操作协调系统中各部件
19、的操作, ,用于传送自用于传送自CPUCPU发出的控制信发出的控制信息或送到息或送到CPUCPU的状态信息。的状态信息。控制总线决定了系统总线的特点控制总线决定了系统总线的特点, ,例如功能、适应性等例如功能、适应性等注意:通常将数据总线位数小于字长的计注意:通常将数据总线位数小于字长的计算机(如算机(如80888088)称为准字长计算机)称为准字长计算机 注意:注意:数据总线的位数数据总线的位数通常通常和和CPU中运算器中运算器的位数(即字长)相一致,但有时也不一致。的位数(即字长)相一致,但有时也不一致。 数据总线:数据总线:16位位 8086 地址总线:地址总线:20位位16位字长位字长
20、 数据总线:数据总线:8位位 8088 地址总线:地址总线:20位位总线的特点总线的特点 在某一时刻,只能由一个总线主控设备(例在某一时刻,只能由一个总线主控设备(例如如CPU)来控制总线。)来控制总线。 在连接系统总线的各个设备中,某时刻只能在连接系统总线的各个设备中,某时刻只能有一个发送者向总线发送信号,但可以有多有一个发送者向总线发送信号,但可以有多个设备从总线上同时获取信号。个设备从总线上同时获取信号。 优点优点可以减少机器中的信息传送线的根数,从而简化了系统可以减少机器中的信息传送线的根数,从而简化了系统结构,提高了机器的可靠性。结构,提高了机器的可靠性。可以方便地对存储器芯片及可以
21、方便地对存储器芯片及I/OI/O接口芯片进行扩充。接口芯片进行扩充。存储器存储器 遵循冯遵循冯.诺依曼体系结构诺依曼体系结构 存储程序存储程序,即将程序和数据事先写入存储器中,即将程序和数据事先写入存储器中 程序控制程序控制,即由计算机按照程序的要求自动进行工作,即由计算机按照程序的要求自动进行工作 存储器作用:用来存放程序和数据的存储器作用:用来存放程序和数据的 分类分类内存(主存,简称为存储器)、外存(辅存)内存(主存,简称为存储器)、外存(辅存) RAM、ROM CPU对存储器的访问约占对存储器的访问约占CPU时间的时间的70%左右,所以存储器对微机的工作效率影响很左右,所以存储器对微机
22、的工作效率影响很大。大。输入输出接口及外部设备输入输出接口及外部设备CPUCPUI/O接口接口I/O外部外部设备设备 输入设备 键盘、鼠标、扫描仪、摄像机、触摸屏等 输出设备 显示器、打印机、绘图仪、音响设备等软件系统的组成软件系统的组成 操作系统 MS-DOS、Windows、Linux/Unix 计算机语言及其编译处理系统 机器语言、汇编语言、高级语言 汇编程序、解释程序、编译程序 应用软件和工具软件 科学计算、财会软件、绘图、办公、网络等指令的工作过程指令的工作过程 基本思想 存储程序、程序控制 指令 是指定计算机完成某一特定操作的命令,由二进制编码组成。机器码 为方便记忆,常用英文缩写
23、为指令的助记符号。汇编指令 过程 读取指令取指 执行指令执指模拟机存储结构模拟机存储结构 存储单元 内容(指令、数据) 地址:从0开始的无符号整数02H单元存放有一个数据单元存放有一个数据34H,表示为,表示为02H34H两个两个完全完全不同的不同的概概念念准备准备 举例:710? 准备工作 编写汇编源程序。 翻译(汇编)成机器语言指令。 将数据和程序通过输入设备送至存储器中。 程序一共3条指令,5个字节。假设它们存放在从00H单元开始的连续5个存储单元中。第第1条指令的取指过程条指令的取指过程第第1条指令的执行过程条指令的执行过程第第2条指令的取指过程条指令的取指过程第第2条指令的执行过程条
24、指令的执行过程8086/8088微处理器内部结构微处理器内部结构 8086CPU由两个独立的处理部件组成:由两个独立的处理部件组成: 执行部件执行部件EU( Execution Unit) 总线接口部件总线接口部件BIU(Bus Interface Unit)8086/8088微处理器内部结构微处理器内部结构 负责指令的译码、执行和数据的运算 EU负责全部指令的执行; 向BIU输出数据(操作结果); 对寄存器和标志寄存器进行管理; 16位运算(数据运算和操作数偏移地址的运算),数据传送和处理;EU的作用8086/8088微处理器内部结构微处理器内部结构 BIU负责执行所有的“外部总线”周期,提
25、供系统总线控制信号。 根据EU计算出来的16位地址和16位段地址计算20位物理地址, 负责访问内存或输入/输出接口, 取出数据送指令队列, 供EU执行/将EU的结果送到指定位置。BIU的作用8086/8088微处理器内部结构微处理器内部结构 EU和BIU两个单元在大多数情况下独立操作,还可以并行执行,实现指令预取(指令读取和执行的流水线操作)指令队列指令队列1 12 223233 334344545取指令取指令取指取指取指取指取指取指取指取指EUEU等待等待执行执行1 1执行执行2 2执行执行3 3时间时间BIUBIU8088的指令执行过程1.2.2 寄存器介绍寄存器介绍 通用寄存器通用寄存器
26、 控制寄存器控制寄存器 段寄存器段寄存器寄存器介绍1.2.2.1 通用寄存器通用寄存器 8088有有8个通用的个通用的16位寄存器位寄存器(1)数据寄存器)数据寄存器: AX BX CX DX(2)变址寄存器)变址寄存器: SI DI(3)指针寄存器)指针寄存器: BP SP 4个数据寄存器还可以分成高个数据寄存器还可以分成高8位和低位和低8位两个独立的寄存器,这样又形成位两个独立的寄存器,这样又形成8个个通用的通用的8位寄存器位寄存器AX: AH AL BX: BH BLCX: CH CL DX: DH DL(1)数据寄存器)数据寄存器 AX称为累加器(Accumulator) 使用频度最高
27、。用于算术、逻辑运算以及与外设传使用频度最高。用于算术、逻辑运算以及与外设传送信息等送信息等 BX称为基址寄存器(Base address Register) 常用做存放存储器地址常用做存放存储器地址 CX称为计数器(Counter) 作为循环和串操作等指令中的隐含计数器作为循环和串操作等指令中的隐含计数器 DX称为数据寄存器(Data register) 常用来存放双字长数据的高常用来存放双字长数据的高16位,或存放外设端口地址位,或存放外设端口地址数据寄存器(2)指针寄存器)指针寄存器 指针寄存器用于寻址内存指针寄存器用于寻址内存堆栈堆栈内的数据内的数据 SP为堆栈指针寄存器(为堆栈指针寄
28、存器(Stack Pointer),指示堆栈段栈顶的位置(偏移地址)指示堆栈段栈顶的位置(偏移地址) BP为基址指针寄存器(为基址指针寄存器(Base Pointer),),表示数据在堆栈段中的基地址表示数据在堆栈段中的基地址 SP和和BP寄存器与寄存器与SS段寄存器联合使段寄存器联合使用以确定堆栈段中的存储单元地址用以确定堆栈段中的存储单元地址指针寄存器堆栈堆栈(Stack)是主存中一个特殊是主存中一个特殊的区域,采用的区域,采用“先进后出先进后出”或或“后进后进先出先出”存取操作方式。用存取操作方式。用8088/8086形成的微机系统中,堆栈区域被称为形成的微机系统中,堆栈区域被称为堆栈段
29、。堆栈段。(3)变址寄存器)变址寄存器 16位变址寄存器SI和DI 常用于存储器变址寻址方式时提供地址 SI是源地址寄存器(是源地址寄存器(Source Index) DI是目的地址寄存器(是目的地址寄存器(Destination Index) 在串操作类指令中,SI、DI还有较特殊的用法变址寄存器1.2.2.2 控制寄存器控制寄存器(1)指令指针寄存器)指令指针寄存器IP IP(Instruction Pointer)为指令指针)为指令指针寄存器,指示主存储器指令的位置寄存器,指示主存储器指令的位置 随着指令的执行,随着指令的执行,IP将自动修改以指示将自动修改以指示下一条指令所在的存储器位
30、置下一条指令所在的存储器位置 IP寄存器是一个寄存器是一个专用专用寄存器寄存器 IP寄存器与寄存器与CS段寄存器联合使用以确段寄存器联合使用以确定下一条指令的存储单元地址定下一条指令的存储单元地址控制寄存器IP1.2.2.2 控制寄存器控制寄存器(2)标志寄存器)标志寄存器FR FR是是16位程序状态标志寄存器(程序位程序状态标志寄存器(程序状态字状态字PSW) 存放存放8086/8088CPU工作过程中的状态,工作过程中的状态,用于反映指令执行结果或控制指令执行用于反映指令执行结果或控制指令执行形式形式 程序设计需要利用标志的状态控制寄存器FR(2)标志寄存器)标志寄存器FR 状态标志状态标
31、志用来记录程序运行结果的状态用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它信息,许多指令的执行都将相应地设置它CF ZF SF PF OF AF 控制标志控制标志可由程序根据需要用指令设置,可由程序根据需要用指令设置,用于控制处理器执行指令的方式用于控制处理器执行指令的方式DF IF TFOF11R15 12DF10IF9TF8SF7ZF6U5AF4U3PF2U1CF0控制寄存器FR标志位介绍进位标志进位标志CF(Carry Flag) 当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF1;否则CF03AH + 7CHB6H,没有进位:没有进位:CF =
32、 0AAH + 7CH(1)26H,有进位:有进位:CF = 1进位标志CF(Carry Flag)零标志零标志ZF(Zero Flag) 若运算结果为0,则ZF1;否则ZF03AH7CHB6H,结果不是零:结果不是零:ZF084H7CH(1)00H,结果是零:结果是零:ZF1 注意:ZF为1表示的结果是0零标志ZF(Zero Flag)符号标志符号标志SF(Sign Flag) 运算结果最高位为1,则SF1;否则SF03AH7CHB6H,最高位最高位D71:SF184H7CH(1)00H,最高位最高位D70:SF0 有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态符号标
33、志SF(Sign Flag)奇偶标志奇偶标志PF(Parity Flag) 当运算结果最低字节中“1”的个数为零或偶数时,PF1;否则PF03AH7CHB6H10110110B结果中有结果中有5个个“1”,是奇数:是奇数:PF0 PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作奇偶标志PF(Parity Flag)溢出标志溢出标志OF(Overflow Flag) 若算术运算的结果有溢出,则OF1; 否则 OF03AH + 7CHB6H,产生溢出:产生溢出:OF1AAH + 7CH(1)26H,没有溢出:没有溢出:OF0溢出标志OF(Overflow Flag)什么是溢出什
34、么是溢出? 处理器内部以补码表示有符号数 8位表达的整数范围是:127 128 16位表达的范围是:32767 32768 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确3AH7CHB6H,就是就是58124182,已经超出已经超出128127,产生溢出,故,产生溢出,故OF1补码补码B6H表达真值是表达真值是74,显然运算结果也不正确,显然运算结果也不正确什么是溢出?溢出和进位的区别溢出和进位的区别 溢出标志OF和进位标志CF是两个意义不同的标志 进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确 溢出标志表示有符号数运算结果是否超出范围,运算结果已经不
35、正确溢出与进位的区别溢出和进位的对比溢出和进位的对比例例1: 3AH7CHB6H无符号数运算:无符号数运算: 58124182范围内,无进位范围内,无进位有符号数运算:有符号数运算: 58124182范围外,有溢出范围外,有溢出例2:AAH7CH(1)26H无符号数运算: 170124294范围外,有进位有符号数运算: 8612438范围内,无溢出溢出与进位的对比溢出和进位的应用场合溢出和进位的应用场合 应该利用哪个标志,则由程序员来决定。应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为为是无符号数,就应
36、该关心进位;认为是有符号数,则要注意是否溢出是有符号数,则要注意是否溢出溢出与进位的应用场合例例1:3AH7CHB6H例例2:AAH7CH26H 例例3:3AH7CHBEH例例4:AAH7CH2EH溢出的判断溢出的判断 判断运算结果是否溢出有一个简单的判断运算结果是否溢出有一个简单的规则规则: 当两个相同符号数相加,而运算结果的符号与加数、被加数的当两个相同符号数相加,而运算结果的符号与加数、被加数的符号不同时,产生溢出;符号不同时,产生溢出; 当两个异号数相减,运算结果若与被减数符号不同,则产生溢当两个异号数相减,运算结果若与被减数符号不同,则产生溢出;出; 其它情况下,则不会产生溢出其它情
37、况下,则不会产生溢出溢出溢出溢出溢出溢出的判断无无溢出溢出无无溢出溢出辅助进位标志辅助进位标志AFAF(Auxiliary Carry FlagAuxiliary Carry Flag)3AH7CHB6H,D3有进位:有进位:AF1运算时运算时D D3 3位(低半字节)有进位或借位位(低半字节)有进位或借位时,时,AFAF1 1;否则否则AFAF0 0这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心辅助进位标志AF(Auxiliary carry Flag)方向标志方向标志DF(Direction Flag) 用于串操作指令中,控制地址的变化方向: 设置DF0,存储
38、器地址自动增加; 设置DF1,存储器地址自动减少CLDCLD指令复位方向标志:指令复位方向标志:DFDF0 0STDSTD指令置位方向标志:指令置位方向标志:DFDF1 1方向标志DF(Direction Flag)中断允许标志中断允许标志IFIF(Interrupt-enable FlagInterrupt-enable Flag) 控制可屏蔽中断是否可以被处理器响应:控制可屏蔽中断是否可以被处理器响应: 设置设置IF1,则允许中断;则允许中断; 设置设置IF0,则禁止中断则禁止中断CLICLI指令复位中断标志:指令复位中断标志:IF IF0 0STISTI指令置位中断标志:指令置位中断标志
39、:IF IF1 1中断允许标志IF(Interrupt-enable Flag)陷阱标志陷阱标志TF(Trap Flag) 用于控制处理器进入单步操作方式:用于控制处理器进入单步操作方式: 设置设置TF0,处理器正常工作;处理器正常工作; 设置设置TF1,处理器处理器单步执行指令单步执行指令单步执行指令单步执行指令处理器在处理器在每条指令执行结束每条指令执行结束时,时,便产生一个编号为便产生一个编号为1 1的内部中断的内部中断这种内部中断称为这种内部中断称为单步中断单步中断所以所以TFTF也称为也称为单步标志单步标志n利用单步中断可对程序进行逐条指令的调试利用单步中断可对程序进行逐条指令的调试
40、n这种逐条指令调试程序的方法就是这种逐条指令调试程序的方法就是单步调试单步调试陷进标志TF(Trap Flag)1.2.2.3段寄存器段寄存器 8086/8088有有4个个16位段寄存器:位段寄存器:代码段寄存器代码段寄存器CS(Code Segment),数据段寄存器数据段寄存器DS(Data Segment),堆栈段寄存器堆栈段寄存器SS(Stack Segment)附加数据段寄存器附加数据段寄存器ES(Extra Segment)为什么需要设置段寄存器?为什么需要设置段寄存器?存储器寻址机制存储器寻址机制 8086: 20位地址信息,位地址信息,lMB字节,但内字节,但内部只能进行部只能
41、进行16位运算,这就是说它能处位运算,这就是说它能处理的地址信息仅理的地址信息仅16位。位。 为解决这一矛盾,把存储器划分为为解决这一矛盾,把存储器划分为“段段”,每个段的实际长度每个段的实际长度64KB。表示不同段表示不同段的的段段起始地址起始地址即即段基地址段基地址,分别存放于四,分别存放于四个段寄存器(个段寄存器(CS、DS、SS、ES)中。中。为什么必须对存储器分段管理?为什么必须对存储器分段管理?1.2.3存储器寻址机制存储器寻址机制 存储器存储器是计算机存储信息的地方。掌握是计算机存储信息的地方。掌握数据数据存储格式存储格式,以及存储器的,以及存储器的分段管理分段管理对以后的汇编程
42、序设计非常重要对以后的汇编程序设计非常重要 你能区别你能区别寄存器寄存器、存储器存储器(主存主存)、外存外存(包括硬盘、光盘、磁带等存储介质包括硬盘、光盘、磁带等存储介质)吗?吗?寄存器、存储器和外存的区别寄存器、存储器和外存的区别 寄存器寄存器是微处理器(是微处理器(CPU)内部)内部暂存数据暂存数据的存的存储单元,以名称表示,例如:储单元,以名称表示,例如:AX,BX.等;等; 存储器存储器也就是平时所说的也就是平时所说的主存主存,也叫,也叫内存内存,可直,可直接与接与CPU进行数据交换。主存利用地址区别;进行数据交换。主存利用地址区别; 外存外存主要指用来长久保存数据的外部存储介质,主要
43、指用来长久保存数据的外部存储介质,常见的有硬盘、光盘、磁带、常见的有硬盘、光盘、磁带、U盘等。外存的数盘等。外存的数据只能通过主存间接地与据只能通过主存间接地与CPU交换数据;交换数据; 程序及其数据可以长久存放在外存,在运行需要程序及其数据可以长久存放在外存,在运行需要时才进入主存。时才进入主存。存储单元及其存储内容存储单元及其存储内容 每个存储单元都有一个编号;被称为存储器地址 每个存储单元存放一个字字节节的内容00002H单元存放有一个数据单元存放有一个数据34H表达为表达为:00002H34H00006H78H00005H56H00004H12H00003H34H00002H00001
44、H00000H多字节数据存放方式多字节数据存放方式 多字节数据在存储器中占连续的多个存储单元: 存放时,低字节存入低地址,存放时,低字节存入低地址,高字节存入高地址;高字节存入高地址; 表达时,用它的低地址表示表达时,用它的低地址表示多字节数据占据的地址空间多字节数据占据的地址空间图中图中00002H“字节字节”单元的内容为:单元的内容为:00002H = 34H00002H“字字”单元的内容为:单元的内容为:00002H = 1234H00002H号号“双字双字”单元的内容为:单元的内容为:00002H = 78561234H00006H78H00005H56H00004H12H00003H
45、34H00002H00001H00000H 在计算机的内存中存放着三类信息:在计算机的内存中存放着三类信息: 代码:代码:即指令操作码,指出即指令操作码,指出CPU执行什么操作;执行什么操作; 数据:数据:即数值和字符等,程序加工对象;即数值和字符等,程序加工对象; 堆栈:堆栈:即临时保存的返回地址和中间结果即临时保存的返回地址和中间结果。 为了避免混淆,这三类信息分别存放在各为了避免混淆,这三类信息分别存放在各自的存储区域内。段寄存器指示这些存储自的存储区域内。段寄存器指示这些存储区域的区域的起始地址起始地址或称或称段基地址段基地址。物理地址和逻辑地址物理地址和逻辑地址 物理地址是指物理地址
46、是指1MB存储区域中的某一单元的实际存储区域中的某一单元的实际地址,地址,地址信息是地址信息是20位的二进制代码,以位的二进制代码,以16进制进制表示是表示是00000H FFFFFH中的一个单元,中的一个单元,CPU访访问存储器时,地址总线上送出的是物理地址问存储器时,地址总线上送出的是物理地址. PA(段地址)(段地址)10H偏移地址偏移地址 编制程序时,则采用逻辑地址,编制程序时,则采用逻辑地址,逻辑地址由逻辑地址由段基段基地址地址和和偏移地址偏移地址(偏移量)组成。(偏移量)组成。 逻辑地址逻辑地址 = = 段基址段基址 : : 偏移地址偏移地址有效地址有效地址EA逻辑地址逻辑地址 段
47、基地址段基地址说明逻辑段在主存中的起始位置说明逻辑段在主存中的起始位置 8088规定段基地址必须是规定段基地址必须是16的整数倍:的整数倍:xxxx0H 省略低省略低4位位0000B,段地址就可以用段地址就可以用16位数据表位数据表示示,就能用就能用16位位段寄存器段寄存器表达段地址表达段地址 偏移地址偏移地址说明主存单元距离段起始位置的偏移量说明主存单元距离段起始位置的偏移量 每段不超过每段不超过64KB,偏移地址也可用偏移地址也可用16位位数据表示数据表示物理地址和逻辑地址之间的转换关系物理地址和逻辑地址之间的转换关系 已知一已知一个个存存储单储单元的元的逻辑逻辑地址地址为为:1380H:
48、0F00H1380H:0F00H,请计请计算其物理地址?算其物理地址?将逻辑将逻辑地址中地址中的段地址左移的段地址左移4 4位,加上偏位,加上偏移地址就得到移地址就得到2020位物理地位物理地址址E.g.E.g.物理地址物理地址 14700H14700H逻辑逻辑地址地址 1460H1460H: :100H100H物理地址和逻辑地址物理地址和逻辑地址E.g.E.g.物理地址物理地址 14700H14700H逻辑逻辑地址地址 1450H1450H: :200H200H一个物理地址可以有多个逻辑地址一个物理地址可以有多个逻辑地址段寄存器段寄存器 8088有有4个个16位段寄存器位段寄存器 CS(代码
49、段)指明代码段)指明当前当前代码段代码段的起始地址的起始地址 SS(堆栈段)指明堆栈段)指明当前当前堆栈段堆栈段的起始地址的起始地址 DS(数据段)指明数据段)指明当前当前数据段数据段的起始地址的起始地址 ES(附加段)指明附加段)指明当前当前附加段附加段的起始地址的起始地址 每个段寄存器用来确定一个逻辑段的起每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途始地址,每种逻辑段均有各自的用途代码段寄存器代码段寄存器CS(Code Segment) 代码段用来存放程序的指令序列代码段用来存放程序的指令序列 代码段寄存器代码段寄存器CS存放代码段的段地址存放代码段的段地址 指令指针
50、寄存器指令指针寄存器IP指示下条指令的偏移地址指示下条指令的偏移地址 处理器利用处理器利用CS:IP取得下一条要执行的指取得下一条要执行的指令令代码段寄存器CS(Code Segment)堆栈段寄存器堆栈段寄存器SS(Stack Segment) 堆栈段确定堆栈所在的主存区域堆栈段确定堆栈所在的主存区域 堆栈段寄存器堆栈段寄存器SS存放堆栈段的段地址存放堆栈段的段地址 堆栈指针寄存器堆栈指针寄存器SP指示堆栈栈顶的偏移地指示堆栈栈顶的偏移地址址 处理器利用处理器利用SS:SP操作堆栈顶的数据操作堆栈顶的数据堆栈段寄存器SS(Stack Segment)数据段寄存器数据段寄存器DS(Data Segment) 数据段存放运行程序所用的数据数据段存放运行程序所用的数据 数据段寄存器数据段寄存器DS存放数据段的段地址存放数据段的段地址 各种主存寻址方式(有效地址各种主存寻址方式(有效地址EA)得到存得到存储器中操作数的偏移地址储器中操作数的偏移地址 处
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级数学上册人教版教案
- 丽江旅游策划方案
- 二年级语文教师备课教案
- 临床护理事件案例分析与反思
- 工程视察工作方案
- 基层员工轮岗工作方案
- 门禁禁统建设方案
- 湖北省孝感市大悟县2025-2026学年部编版历史七年级下册期中考试模拟试题(含答案)
- 个人诚信实施方案
- 福建省三明市三明一中2026届高三四月月考语文试卷(含答案)
- 2026年重庆国家电网招聘考试(公共与行业知识)试题及答案
- 护士岗前培训汇报
- 2026届上海市黄浦区高三语文一模古文一+古文二字词梳理+译文
- 黑龙江水利安全b证考试题库及答案解析
- 1-项目一 认识实训室与安全用电常识
- 工业污水处理项目合同协议模板
- 贝壳卖房的委托协议书
- 2025年山东省济南市平阴县中考二模化学试题
- 电力交易员基础知识培训课件
- 2024人教版七年级全一册体育与健康全册教案
- 防范青少年滥用涉麻精药品
评论
0/150
提交评论