工程科技微机原理与接口技术-郭兰英-第1章_第1页
工程科技微机原理与接口技术-郭兰英-第1章_第2页
工程科技微机原理与接口技术-郭兰英-第1章_第3页
工程科技微机原理与接口技术-郭兰英-第1章_第4页
工程科技微机原理与接口技术-郭兰英-第1章_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术第1章微型计算机系统概述教学重点●计算机中数的表示方法●微型计算机的系统组成●微型计算机的工作过程1.1计算机中数的表示方法数的表示●计算机的数制●常用编码数制之间的转换(整数、小数)书写BCD码ASCII码汉字编码1.1计算机中数的表示方法BCD码BCD(binary-codeddecimal)一种用4位二进制数字来表示一位十进制数字的编码。组合BCD码(或压缩BCD码)未组合BCD码(或未压缩BCD码)用4个二进制位表示1个十进制位42560100001001010110用8个二进制位表示1个十进制位,高4位为0425600000100000000100000010100000110十进制数和8421BCD码的对应关系十进制数8421BCD码十进制数8421BCD码00000501011000160110200107011130011810004010091001BCD码的运算4+3=?0100+)001101114+8=?0100+)10001100十进制调整十进制调整规则若两个BCD数相加,结果大于1001,则做加0110调整;若两个BCD数相加,结果在本位上并不大于1001,但产生了进位,也要做加0110调整;(注意:如果在调整过程中出现辅助进位则不再用调整,但出现非法码制就需要继续调整。例:45+57=?)若两个BCD数相加,既有进位又有结果大于9,则先考虑进位调整,再考虑大于9的调整。两个BCD数相减,若低4位向高位有借位,在低4位要做减0110调整。调整举例4+8=?0100+)10001100+)01100001001054+48=?01010100+)0100100010011100+)011010100010+)0110

000100000010ASCII码ASCII(Americannationalstandardcodeforinformationinterchange)7位二进制数表示,第8位常用作奇偶校验位。汉字编码国标码国家标准《信息交换用汉字编码》(GB2312-80)用两个7位表示一个汉字、符号或图形输入码拼音、五笔、区位内码不同的输入方法,但内码是统一的;台湾的内码不同(BIG5)带符号数的表示无符号数不带正负符号的数。计算机如何表示数的正负号?

习惯上约定最高位是符号位,0表示正数,1表示负数。其余位称为数值位。机器数与真值机器数正负符号进行数字化的数,计算机能直接识别。如01001011、10001001。真值用+、-表示的数,数的真实意义。如+87,-24。原码、反码、补码正数[x]原=[x]反=[x]补最高位为符号位,用0表示,其余各数值位不变。负数最高位为符号位,用1表示。

原码:符号位为1,其余各数值位不变。

反码:符号位为1,其余各数值位按位取反。补码:符号位为1,其余各数值位按位取反再加1。

对于同一个机器数,如果编码方式不同,则对应的真值可能不同。关于原码、反码、补码的说明带符号数的表示,都是针对特定字长的。如8位二进制原码,16位二进制补码。带符号数的表示都是有确定范围的,超出范围叫溢出。大多数计算机采用补码来表示带符号数,如8086/8088。1.2微型计算机的系统组成重要里程碑1971年,Intel公司设计了世界上第一个微处理器芯片Intel4004。1946年,世界上出现第一台数字式电子计算机ENIAC。人类第一台计算机ENIACIntel4004和计算器发展历程第1代,4位和低档8位微机4004→4040→8008第2代,中高档8位微机Z80、I8085、M6800、Apple-II微机第3代,16位微机8086→8088→80286,IBMPC系列机第4代,32位微机80386→80486→Pentium→PentiumII/III/432位PC机第5代,64位微机Itanium、64位RISC微处理器芯片苹果电脑Apple-IApple-IIIBMPC系列机8088CPUIBMPC机IBMPC/AT机IBMPC/XT机Intel系列处理器80386Pentium代发表年份字长(bits)型号线宽(

m)晶体管数(万个)时钟频率(MHz)速度(MIPS)一197119724840048008500.20.3<10.05二197488080200.52-40.5三19781982168086/8088802862-32.9134.77-108-20<11-2四198519893280386804861-227.512012-3325-666-1220-40五199332Pentium0.6-0.833060-200100-200六1995199619971999200132P/ProP/MMXPIIPIIIP40.60.60.35.25-.13.18-.135504507508503000133-200166-233233-450450-12001300-3000>300七2002?64Itanium?0.08CPU:2.5KCache:30K800(20条指令/时钟周期)>3000基本概念位(bit)计算机所能表示的最小的数据单元。每个位有两种状态,即0和1。字(word)相邻16位二进制位,即1W=16bit。字长(wordlength)CPU内部一次能处理的二进制位数。字长的长度不固定,通常与计算机内部寄存器、运算器、总线的宽度一致。字节(byte)相邻8位二进制位,即1byte=8bit。基本概念单板机(SingleBoardComputer)将CPU、ROM、RAM、I/O等电路全部安装到一块电路板上。单片机(SingleChipComputer)将CPU、ROM、RAM、I/O电路全部集成到一块芯片上。嵌入式系统(EmbeddedSystem)以应用为中心,软硬件可剪裁的专用计算机系统。微机(Microcomputer)微型计算机的简称。计算机系统层次结构微机系统的启动和操作系统的装载

相关的两个概念系统BIOS:BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。BIOS一般被存放在ROM之中,占用的地址空间为F0000H~FFFFFH。复位地址:FFFF0H。1.1.4启动过程第一步:当我们按下电源开关时,CPU得到的启动地址为FFFF0H,CPU就会从FFFF0H处开始取指令、执行指令。系统BIOS放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动程序处。第二步:系统BIOS的启动程序首先要做的事情就是进行加电后自检(Power-OnSelfTest,POST)。第三步:系统BIOS的启动程序进行的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱装载操作系统。

微机硬件微型计算机系统的三个层次硬件系统软件系统微型计算机系统微型计算机(主机)外设微处理器存储器I/O接口总线ALU(运算器)寄存器组控制器键盘、鼠标显示器软驱、硬盘、光驱打印机、扫描仪系统软件应用软件计算机系统组成运算器控制器寄存器组

内存储器总线

接口电路外部设备软件微处理器微型计算机微型计算机系统微型计算机组成框图微处理器存储器总线输入输出设备接口微处理器组成运算器控制器寄存器组用来进行算术逻辑运算和位移、循环等操作。又称算术逻辑单元ALU,

核心是累加器。参加运算的操作数来自累加器和内部数据总线。控制器是整个计算机的控制、指挥中心。主要功能是控制指令执行的过程与顺序。主要由程序计数器PC、指令寄存器IR、指令译码器ID和控制逻辑PLA等部件组成。通常由多个寄存器组成,主要用来暂存CPU执行程序时的常用数据或地址。控制器程序计数器PC控制器指令寄存器IR指令译码器ID控制逻辑部件PLA时序电路地址寄存器AR数据寄存器DR微处理器

ALUoI2I1

AR

DR

PC256字节RAM

RAPLA

ID

IRAL

F标志寄存器程序指针累加器地址寄存器地址总线AB内存寄存器组运算器控制逻辑指令译码器指令寄存器数据寄存器数据总线DB系统总线总线(bus)总线是指传递信息的一组公用导线。微机系统采用总线连接系统功能部件。总线信号可分成三组:地址总线AB

:传送地址信息数据总线DB

:传送数据信息控制总线CB

:传送控制信息总线还有电源、地线等其他辅助信号系统总线总线信号地址总线AB(addressbus)用于传送CPU输出将要访问的内存单元或I/O端口的地址地址线的多少决定系统直接寻址存储器的范围数据总线DB(databus)CPU读操作时,外部数据通过数据总线送往CPUCPU写操作时,CPU数据通过数据总线送往外部数据线的多少决定一次能够传送数据的位数控制总线CB(controlbus)协调系统中各部件的操作,用于传送自CPU发出的控制信息或送到CPU的状态信息。控制总线决定了系统总线的特点,例如功能、适应性等注意:通常将数据总线位数小于字长的计

算机(如8088)称为准字长计算机注意:数据总线的位数通常和CPU中运算器的位数(即字长)相一致,但有时也不一致。数据总线:16位8086地址总线:20位16位字长数据总线:8位8088地址总线:20位总线的特点在某一时刻,只能由一个总线主控设备(例如CPU)来控制总线。在连接系统总线的各个设备中,某时刻只能有一个发送者向总线发送信号,但可以有多个设备从总线上同时获取信号。优点可以减少机器中的信息传送线的根数,从而简化了系统结构,提高了机器的可靠性。可以方便地对存储器芯片及I/O接口芯片进行扩充。存储器遵循冯.诺依曼体系结构存储程序,即将程序和数据事先写入存储器中程序控制,即由计算机按照程序的要求自动进行工作存储器作用:用来存放程序和数据的分类内存(主存,简称为存储器)、外存(辅存)RAM、ROMCPU对存储器的访问约占CPU时间的70%左右,所以存储器对微机的工作效率影响很大。输入输出接口及外部设备CPUI/O接口I/O外部设备输入设备键盘、鼠标、扫描仪、摄像机、触摸屏等输出设备显示器、打印机、绘图仪、音响设备等软件系统的组成操作系统MS-DOS、Windows、Linux/Unix计算机语言及其编译处理系统机器语言、汇编语言、高级语言汇编程序、解释程序、编译程序应用软件和工具软件科学计算、财会软件、绘图、办公、网络等指令的工作过程基本思想存储程序、程序控制指令是指定计算机完成某一特定操作的命令,由二进制编码组成。 →机器码为方便记忆,常用英文缩写为指令的助记符号。 →汇编指令过程读取指令 →取指执行指令 →执指模拟机存储结构存储单元内容(指令、数据)地址:从0开始的无符号整数02H单元存放有一个数据34H,表示为[02H]=34H两个完全不同的概念准备举例:7+10=?准备工作编写汇编源程序。翻译(汇编)成机器语言指令。将数据和程序通过输入设备送至存储器中。程序一共3条指令,5个字节。假设它们存放在从00H单元开始的连续5个存储单元中。第1条指令的取指过程第1条指令的执行过程第2条指令的取指过程第2条指令的执行过程8086/8088微处理器内部结构8086CPU由两个独立的处理部件组成:执行部件EU(

ExecutionUnit)总线接口部件BIU(BusInterfaceUnit)8086/8088微处理器内部结构负责指令的译码、执行和数据的运算EU负责全部指令的执行;向BIU输出数据(操作结果);在ALU中进行16位运算(数据运算和操作数偏移地址的运算),数据传送和处理;EU的作用8086/8088微处理器内部结构BIU负责完成所有的总线操作。根据EU计算出来的16位地址和16位段地址计算20位物理地址,负责访问内存或输入/输出接口,

取出数据送指令队列,供EU执行/将EU的结果送到指定位置。BIU的作用8086/8088微处理器内部结构EU和BIU两个单元在大多数情况下独立操作,还可以并行执行,实现指令预取(指令读取和执行的流水线操作)指令队列122333445取指令取指取指取指取指…

EU等待执行1执行2执行3

…时间BIU8088的指令执行过程1.2.2寄存器介绍1.2.2寄存器介绍通用寄存器控制寄存器段寄存器寄存器介绍1.2.2.1通用寄存器8088有8个通用的16位寄存器(1)数据寄存器:AXBXCXDX(2)变址寄存器:SIDI(3)指针寄存器:BPSP4个数据寄存器还可以分成高8位和低8位两个独立的寄存器,这样又形成8个通用的8位寄存器AX:AHAL BX:BHBLCX:CHCL DX:DHDL(1)数据寄存器AX称为累加器(Accumulator)使用频率最高。用于算术、逻辑运算以及与外设传送信息等

BX称为基址寄存器(BaseaddressRegister)常用做存放存储器地址

CX称为计数器(Counter)作为循环和串操作等指令中的隐含计数器

DX称为数据寄存器(Dataregister)常用来存放双字长数据的高16位,或存放外设端口地址数据寄存器(2)变址寄存器16位变址寄存器SI和DI常用于存储器变址寻址方式时提供地址SI是源地址寄存器(SourceIndex)DI是目的地址寄存器(DestinationIndex)在串操作类指令中,SI、DI还有较特殊的用法变址寄存器(3)指针寄存器指针寄存器用于寻址内存堆栈内的数据SP为堆栈指针寄存器(StackPointer),指示堆栈段栈顶的位置(偏移地址)BP为基址指针寄存器(BasePointer),表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址指针寄存器堆栈(Stack)是主存中一个特殊的区域,采用“先进后出”或“后进先出”存取操作方式。用8088/8086形成的微机系统中,堆栈区域被称为堆栈段。1.2.2.2控制寄存器——(1)指令指针寄存器IPIP(InstructionPointer)为指令指针寄存器,指示主存储器指令的位置随着指令的执行,IP将自动修改以指示下一条指令所在的存储器位置IP寄存器是一个专用寄存器IP寄存器与CS段寄存器联合使用以确定下一条指令的存储单元地址控制寄存器——IP1.2.2.2控制寄存器——(2)标志寄存器FRFR是16位程序状态标志寄存器(程序状态字PSW)存放8086/8088CPU工作过程中的状态,用于反映指令执行结果或控制指令执行形式

程序设计需要利用标志的状态控制寄存器——FR(2)标志寄存器FR状态标志—用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它CFZFSFPFOFAF控制标志—可由程序根据需要用指令设置,用于控制处理器执行指令的方式DFIFTFOF11R1512DF10IF9TF8SF7ZF6U5AF4U3PF2U1CF0控制寄存器——FR标志位介绍进位标志CF(CarryFlag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=03AH+7CH=B6H, 没有进位:CF=0AAH+7CH=(1)26H, 有进位:CF=1进位标志CF(CarryFlag)零标志ZF(ZeroFlag)若运算结果为0,则ZF=1;否则ZF=03AH+7CH=B6H,结果不是零:ZF=084H+7CH=(1)00H,结果是零:ZF=1

注意:ZF为1表示的结果是0零标志ZF(ZeroFlag)符号标志SF(SignFlag)运算结果最高位为1,则SF=1;否则SF=03AH+7CH=B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0

有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态符号标志SF(SignFlag)奇偶标志PF(ParityFlag)当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=03AH+7CH=B6H=10110110B结果中有5个“1”,是奇数:PF=0

PF标志仅反映最低8位中“1”的个数是

偶或奇,即使是进行16位字操作奇偶标志PF(ParityFlag)溢出标志OF(OverflowFlag)若算术运算的结果有溢出,则OF=1;否则OF=03AH+7CH=B6H,产生溢出:OF=1AAH+7CH=(1)26H,没有溢出:OF=0?溢出标志OF(OverflowFlag)什么是溢出?处理器内部以补码表示有符号数8位表达的整数范围是:+127~-12816位表达的范围是:+32767~-32768如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确3AH+7CH=B6H,就是58+124=182,已经超出-128~+127,产生溢出,故OF=1补码B6H表达真值是-74,显然运算结果也不正确什么是溢出?溢出和进位的区别溢出标志OF和进位标志CF是两个意义不同的标志进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确?溢出与进位的区别溢出和进位的对比例1:3AH+7CH=B6H无符号数运算: 58+124=182

范围内,无进位有符号数运算:58+124=182

范围外,有溢出例2:AAH+7CH=(1)26H无符号数运算: 170+124=294

范围外,有进位有符号数运算: -86+124=38

范围内,无溢出溢出与进位的对比溢出和进位的应用场合应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出溢出与进位的应用场合例1:3AH+7CH=B6H例2:AAH+7CH=26H例3:3AH-7CH=BEH例4:AAH-7CH=2EH溢出的判断判断运算结果是否溢出有一个简单的规则:当两个相同符号数相加,而运算结果的符号与加数、被加数的符号不同时,产生溢出;当两个异号数相减,运算结果若与被减数符号不同,则产生溢出;其它情况下,则不会产生溢出溢出溢出溢出的判断无溢出无溢出辅助进位标志AF(AuxiliaryCarryFlag)3AH+7CH=B6H,D3有进位:AF=1运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=0这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心辅助进位标志AF(AuxiliarycarryFlag)方向标志DF(DirectionFlag)用于串操作指令中,控制地址的变化方向:设置DF=0,存储器地址自动增加;设置DF=1,存储器地址自动减少CLD指令复位方向标志:DF=0STD指令置位方向标志:DF=1方向标志DF(DirectionFlag)中断允许标志IF(Interrupt-enableFlag)控制可屏蔽中断是否可以被处理器响应:设置IF=1,则允许中断;设置IF=0,则禁止中断CLI指令复位中断标志:IF=0STI指令置位中断标志:IF=1中断允许标志IF(Interrupt-enableFlag)陷阱标志TF(TrapFlag)用于控制处理器进入单步操作方式:设置TF=0,处理器正常工作;设置TF=1,处理器单步执行指令单步执行指令——处理器在每条指令执行结束时,便产生一个编号为1的内部中断这种内部中断称为单步中断所以TF也称为单步标志利用单步中断可对程序进行逐条指令的调试这种逐条指令调试程序的方法就是单步调试陷进标志TF(TrapFlag)1.2.2.3段寄存器8086/8088有4个16位段寄存器:代码段寄存器CS(CodeSegment),数据段寄存器DS(DataSegment),堆栈段寄存器SS(StackSegment)附加数据段寄存器ES(ExtraSegment)为什么需要设置段寄存器??存储器寻址机制8086:20位地址信息,lMB字节,但内部只能进行16位运算,这就是说它能处理的地址信息仅16位。为解决这一矛盾,把存储器划分为“段”,每个段的实际长度≤64KB。表示不同段的段地址,分别存放于四个段寄存器(CS、DS、SS、ES)中。为什么必须对存储器分段管理??1.2.3存储器寻址机制存储器是计算机存储信息的地方。掌握数据存储格式,以及存储器的分段管理对以后的汇编程序设计非常重要你能区别寄存器、存储器(主存)、外存(包括硬盘、光盘、磁带等存储介质)吗?寄存器、存储器和外存的区别寄存器是微处理器(CPU)内部暂存数据的存储单元,以名称表示,例如:AX,BX..….等;存储器也就是平时所说的主存,也叫内存,可直接与CPU进行数据交换。主存利用地址区别;外存主要指用来长久保存数据的外部存储介质,常见的有硬盘、光盘、磁带、U盘等。外存的数据只能通过主存间接地与CPU交换数据;程序及其数据可以长久存放在外存,在运行需要时才进入主存。存储单元及其存储内容每个存储单元都有一个编号;被称为存储器地址每个存储单元存放一个字节的内容00002H单元存放有一个数据34H表达为:[00002H]=34H00006H78H00005H56H00004H12H00003H34H00002H00001H00000H多字节数据存放方式多字节数据在存储器中占连续的多个存储单元:存放时,低字节存入低地址,高字节存入高地址;表达时,用它的低地址表示多字节数据占据的地址空间图中00002H“字节”单元的内容为:[00002H]=34H00002H“字”单元的内容为:[00002H]=1234H00002H号“双字”单元的内容为:[00002H]=78561234H00006H78H00005H56H00004H12H00003H34H00002H00001H00000H在计算机的内存中存放着三类信息:代码:即指令操作码,指出CPU执行什么操作;数据:即数值和字符等,程序加工对象;堆栈:即临时保存的返回地址和中间结果。为了避免混淆,这三类信息分别存放在各自的存储区域内。段寄存器指示这些存储区域段地址。物理地址和逻辑地址物理地址是存储器中某一单元的实际地址,用20位地址码表示,用16进制表示是00000H

FFFFFH中的一个单元,CPU访问存储器时,地址总线上送出的是物理地址.PA=(段地址)×10H+偏移地址编制程序时,则采用逻辑地址,逻辑地址由段地址和偏移地址(偏移量)组成。逻辑地址=段地址:偏移地址有效地址EA逻辑地址段起始地址(段首地址/段基址)的高16位称为段地址段基地址说明逻辑段在主存中的起始位置8088规定段基地址必须是16的整数倍:xxxx0H省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址偏移地址说明主存单元距离段起始位置的偏移量每段不超过64KB,偏移地址也可用16位数据表示物理地址和逻辑地址之间的转换关系已知一个存储单元的逻辑地址为:1380H:0F00H,请计算其物理地址?将逻辑地址中的段地址左移4位(二进制),加上偏移地址就得到20位物理地址段基址150偏移地址150段基址

000015030物理地址190+E.g.物理地址14700H逻辑地址1460H:100H物理地址和逻辑地址E.g.物理地址14700H逻辑地址1450H:200H一个物理地址可以有多个逻辑地址段寄存器8088有4个16位段寄存器CS(代码段)指明当前代码段的段地址SS(堆栈段)指明当前堆栈段的段地址DS(数据段)指明当前数据段的段地址ES(附加段)指明当前附加段的段地址每个段寄存器用来确定一个逻辑段的段地址,每种逻辑段均有各自的用途代码段寄存器CS(CodeSegment)代码段用来存放程序的指令序列代码段寄存器CS存放代码段的段地址指令指针寄存器IP指示下一条指令的偏移地址处理器利用CS:IP取得下一条要执行的指令地址代码段寄存器CS(CodeSegment)堆栈段寄存器SS(StackSegment)堆栈段确定堆栈所在的主存区域堆栈段寄存器SS存放堆栈段的段地址堆栈指针寄存器SP指示堆栈栈顶的偏移地址处理器利用SS:SP操作堆栈顶的数据堆栈段寄存器SS(StackSegment)数据段寄存器DS(DataSegment)数据段存放运行程序所用的数据数据段寄存器DS存放数据段的段地址各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址处理器利用DS:EA存取数据段中的数据数据段寄存器DS(DataSegment)附加段寄存器ES(ExtraSegment)附加段是附加的数据段,也保存数据:附加段寄存器ES存放附加段的段地址各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址处理器利用ES:EA存取附加段中的数据串操作指令将附加段作为其目的操作数的存放区域附加段寄存器ES(ExtraSegment)如何分配各个逻辑段程序的指令序列必须安排在代码段程序使用的堆栈一定在堆栈段程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论