版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术(第3版)1计算机系统概述计算机中的数据表示与编码逻辑电路基础计算机系统概述例题解析计算机最重要的功能是处理信息,如数值、文字、符号、语音、图形和图像等。在计算机内部,各种信息都必须采用数字化的形式被存储、加工与传送。1.1计算机中的数据表示与编码1计算机系统概述数值数据:用于表示数量的大小,具有确定的数值;非数值数据:没有确定的数值,它主要表示字符、汉字、逻辑数组等。1.1.1数与数制1.进位计数法与数制十进制:逢十进一,借一当十1.1计算机中的数据表示与编码1计算机系统概述(234.13)10=2×102+3×101+4×100+1×10-1+3×10-2位权图1.1十进制数的位权
2.二进制、八进制和十六进制1.1计算机中的数据表示与编码1计算机系统概述二进制:(110.11)2=1×22+1×21+0×20+1×2-1+1×2-2八进制:(123.45)8=1×82+2×81+3×80+4×8-1+5×8-2十六进制:(1B.E5)16=1×161+B×160+E×16-1+5×16-2n位整数、m位小数的任意r进制数N的通式:1.1计算机中的数据表示与编码1计算机系统概述十进制二进制八进制十六进制00000001000111200102230011334010044501015560110667011177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F表1.1十进制、二进制、八进制和十六进制数码对照表
3.数制转换
(1)r进制数转换为十进制数
1.1计算机中的数据表示与编码1计算机系统概述例1.1把二进制数101.11转换成相应的十进制数。解(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2
=4+0+1+0.5+0.25
=(5.75)10r进制数的通式:1.1计算机中的数据表示与编码1计算机系统概述例1.2把八进制数123.54转换成相应的十进制数。解(123.54)8=1×82+2×81+3×80+5×8-1+4×8-2=64+16+3+0.625+0.0625=(83.6875)101.1计算机中的数据表示与编码1计算机系统概述例1.4将十进制数97转换成十六进制数。解(97)10=(61)16(2)十进制数转换为r进制数例1.3将十进制数25转换成二进制数。解(25)10=(11001)21.1计算机中的数据表示与编码1计算机系统概述例1.5将十进制小数0.8125转换成二进制小数。解(0.8125)10=(0.1101)21.1计算机中的数据表示与编码1计算机系统概述例1.6将十进制小数25.8125转换成二进制数。解运算过程如下:
(25)10=(11001)2
(0.8125)10=(0.1101)2由此可得:
(25.8125)10=(11001.1101)2例1.7将二进制数(11010110.11)2转换为八进制数。解(11010110.11)2=(326.6)81.1计算机中的数据表示与编码1计算机系统概述例1.8将八进制数(25.4)8转换为二进制数。解(25.4)8=(10101.1)2例1.9将二进制数(111101.101)2转换为十六进制数。解(111101.101)2=(3D.A)16例1.10将十六进制数(1FC7.958)16转换为二进制数。解(1FC7.958)16=(1111111000111.100101011)21.1计算机中的数据表示与编码1计算机系统概述十进制数:D(Decimal)来表示;八进制数:O(Octal)来表示;十六进制数:H(Hexadecimal)来表示。二进制数:B(Binary)来表示;1.1.2数据格式1.定点数表示法
2.浮点数表示法
1.1计算机中的数据表示与编码1计算机系统概述EsE1E2……EmMSM1M2……Mn阶符阶码数符尾数01101011例:尾数为4位,阶码为2位,则二进制数x=0.1011×2+11的浮点数表示形式:1.1计算机中的数据表示与编码1计算机系统概述31302923
220
SESEM32位浮点数64位浮点数63626152
510
SESEMIEEE754浮点数存储格式1.1.3二进制数的编码及运算
机器码:一个数在机器(计算机)中的表示形式。
真值:一般书写表示的实际数值数据。
1.1计算机中的数据表示与编码1计算机系统概述无符号数的表示格式有符号数的表示格式符号位数值位1位n-1位数值位
n位(1)原码
1.1计算机中的数据表示与编码1计算机系统概述例如,当机器字长n=8时,
+1=+0000001B,则[+1]原=00000001B+127=+1111111B,则[+127]原=01111111B-1=-0000001B,则[-1]原=10000001B-127=-1111111B,则[-127]原=11111111B原码的形式为:对于二进制数,正数的原码就是它本身,负数的原码符号位取1,数值部分是真值的绝对值。1.1计算机中的数据表示与编码1计算机系统概述在原码表示中,+0和-0的原码不同,即0有两种原码表示形式:
+0=+0000000B,则[+0]原=00000000B
-0=-0000000B,则[-0]原=10000000B原码表示法简单易懂,但它的最大缺点是加减运算复杂。1.1计算机中的数据表示与编码1计算机系统概述(2)反码对于二进制数,正数的反码就是它本身,负数的反码符号位取1,数值部分按位取反。
例如,当机器字长n=8时,+1=+0000001B,则[+1]反=00000001B+127=+1111111B,则[+127]反=01111111B-1=-0000001B,则[-1]反=11111110B-127=-1111111B,则[-127]反=10000000B在反码表示中,+0和-0的反码不同,即0有两种反码表示形式:+0=+0000000B,则[+0]反=00000000B-0=-0000000B,则[-0]反=11111111B(3)补码
1.1计算机中的数据表示与编码1计算机系统概述钟表的形式为:-3=+9(mod12)用补码表示时,可以把负数转化为正数,减法转化为加法。补码可定义为:
对于二进制数,正数的补码就是它本身,负数的补码符号位取1,数值部分按位取反后末位加1。1.1计算机中的数据表示与编码1计算机系统概述例如,当机器字长n=8时,+1=+0000001B,则[+1]补=00000001B+127=+1111111B,则[+127]补=01111111B-1=-0000001B,则[-1]补=11111111B-127=-1111111B,则[-127]补=10000001B
一般来说,如果机器字长为n位,则补码能表示的整数范围是:-2n-1~2n-1-1在补码表示中,+0和-0的补码形式相同,即0只有一种补码表示形式:+0=+0000000B,则[+0]补=00000000B-0=-0000000B,则[-0]补=11111111+1=00000000B对于10000000这个补码编码,其十进制真值被定义为-128。1.1计算机中的数据表示与编码1计算机系统概述例1.11机器字长n=8位,x=+56,求[x]补,结果用十六进制表示。解+56=+0111000B,则[+56]补=00111000B=38H例1.12机器字长n=8位,x=-56,求[x]补,结果用十六进制表示。解-56=-0111000B,则[-56]补=11001000B=0C8H在汇编语言中,为了区别指令码和数据,规定A~F开始的数据前面必须加零。1.1计算机中的数据表示与编码1计算机系统概述例1.13机器字长n=16位,x=+56,求[x]补,结果用十六进制表示。解+56=+111000B=+000000000111000,[+56]补=0000000000111000B=0038H例1.14机器字长n=16位,x=-56,求[x]补,结果用十六进制表示。解-56=-111000B=-000000000111000,[-56]补=1111111111001000B=0FFC8H1.1计算机中的数据表示与编码1计算机系统概述已知补码求真值的方法:当机器码的最高位(符号位)为0时,表示真值是正数,其值等于其余n-1位的值;当机器数的最高位(符号位)为1时,表示真值是负数,其值等于其余n-1位按位取反末位加1的值。例如:若[x]补=01111111,则x=+1111111B=+127若[x]补=11111111,则x=-0000001B=-11.1计算机中的数据表示与编码1计算机系统概述二进制编码无符号数原码反码补码000000000+0+0+0000000011+1+1+1000000102+2+2+2┇┇┇┇┇01111110126+126+126+12601111111127+127+127+12710000000128-0-127-12810000001129-1-126-12710000010130-2-125-126┇┇┇┇┇11111110254-126-1-21111111255-127-0-13.补码运算
1.1计算机中的数据表示与编码1计算机系统概述二进制补码的运算规则:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补进行加法运算时,把符号位和数值位一起进行运算(若符号位有进位,则丢掉),结果为两数之和的补码形式。减法运算可以转化为加法运。1.1计算机中的数据表示与编码1计算机系统概述例1.15补码进行下列运算:①(+33)+(+15);②(-33)+(+15);③(+33)+(-15);④(-33)+(-15)。解: +33=+0100001B, [+33]补=00100001+15=+0001111B, [+15]补=00001111-33=-0100001B, [-33]补=11011111-15=-0001111B, [-15]补=11110001
1.1计算机中的数据表示与编码1计算机系统概述例1.16用补码进行下列运算:①(+33)-(+15);②(-33)-(+15);③(+33)-(-15);④(-33)-(-15)。解: +33=+0100001B, [+33]补=00100001+15=+0001111B, [+15]补=00001111-33=-0100001B, [-33]补=11011111-15=-0001111B, [-15]补=11110001
根据补码减法公式,可以得到:[(+33)-(+15)]补=[+33]补+[-15]补,[(-33)-(+15)]补=[-33]补+[-15]补[(+33)-(-15)]补=[+33]补+[+15]补,[(-33)-(-15)]补=[-33]补+[+15]补
1.1计算机中的数据表示与编码1计算机系统概述计算过程如下:1.1计算机中的数据表示与编码1计算机系统概述例1.17设x=+64,y=+10,用补码计算x-y,结果用十进制形式表示。解
x=+1000000B,[x]补=01000000
y=+0001010B,[-y]补=11110110
-33=-0100001B,[-33]补=11011111
-15=-0001111B,[-15]补=11110001
[x-y]补 =00110110
x-y=+0110110B=+54D
1.1计算机中的数据表示与编码1计算机系统概述1.1.4十进制数的编码及运算1.BCD码
BCD码(BinaryCodedDecimal):是二进制编码的十进制数。十进制数8421码十进制数8421码000005010110001601102001070111300118100040100910011.1计算机中的数据表示与编码1计算机系统概述例1.18求十进制数57.3的BCD码。 57.301010111.0011所以,(57.3)10=(01010111.0011)BCD例1.19求BCD码10000011.0111所对应的十进制数。1000 0011 .01118 3.7所以,(10000011.0111)BCD=(83.7)101.1计算机中的数据表示与编码1计算机系统概述BCD码的两种格式:压缩BCD码(组合BCD码):1个字节中存放2位十进制数的BCD码;非压缩BCD码(非组合BCD码):1个字节中仅存放1位十进制数的BCD码;十进制数4用非压缩的BCD码表示为××××0100。十进制数43用非压缩的BCD码表示为××××0100××××0011。例:十进制数43用压缩的BCD码表示为01000011。1.1计算机中的数据表示与编码1计算机系统概述
2.BCD码的加减运算例1.20利用BCD码计算:①4+5;②5+7;③8+9解 ①(4)BCD=0100,(5)BCD=0101
②(5)BCD=0101,(7)BCD=0111
1.1计算机中的数据表示与编码1计算机系统概述③(8)BCD=1000,(9)BCD=10011.1计算机中的数据表示与编码1计算机系统概述例1.21利用BCD码计算:①35+21;②25+37
①(35)BCD=00110101,(21)BCD=00100001②(25)BCD=00100101,(37)BCD=00110111 1.1计算机中的数据表示与编码1计算机系统概述1.1.5ASCII码(AmericanStandardCodeForInformationInterchange)7位二进制码,共可以表示128个字符。B6B5B4B3B2B1B00000010100111001011101110000NULDLESP0@P`p0001SOHDC1!1AQaq0010STXDC2″2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB׳7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\l|1101CRGS-=M]m}1110SORS.>N↑n~1111SIUS/?O-oDEL1.1计算机中的数据表示与编码1计算机系统概述ASCII码包括:⑴32个控制字符。⑵空格字符SP,编码值为32。⑶删除控制码DEL,编码值为127。⑷94个可印刷字符(或称有形字符)。1.2逻辑电路基础1计算机系统概述逻辑电路:是实现输入信号与输出信号之间逻辑关系的电路。小规模集成电路(SSI):是器件的集成,如门电路或触发器等;中规模集成电路(MSI):是逻辑构建的集成,如多路选择器、加法器等;大规模集成电路(LSI)和超大规模集成电路(VLSI):是一个数字子系统或整个数字系统的集成。1.2逻辑电路基础1计算机系统概述逻辑门电路:可组成各种功能的逻辑电路,这些逻辑电路按其结构可分为组合逻辑电路和时序逻辑电路。组合逻辑电路:由各种门电路组合而成且无反馈的逻辑电路,简称组合逻辑,如译码器。时序电路:逻辑电路的输出状态不仅和当时的输入状态有关,而且还与电路在此前的输出状态有关,则这种电路称为时序电路,如触发器及各类寄存器等。1.2.1基本逻辑门电路1.2逻辑电路基础1计算机系统概述1.2逻辑电路基础1计算机系统概述1.2.2译码器1.2逻辑电路基础1计算机系统概述1.2逻辑电路基础1计算机系统概述G1CBA译码输出1000000=0,余为11000011=0,余为11000102=0,余为11000113=0,余为11001004=0,余为11001015=0,余为11001106=0,余为11001117=0,余为1其他×××0~7
全为174LS138译码器功能表1.2.3触发器1.2.4寄存器
1.缓冲寄存器(Buffer):分为数据缓冲寄存器和地址缓冲寄存器。2.移位寄存器(ShiftingRegister):具有数据存储和移位两个功能。1.2逻辑电路基础1计算机系统概述3.计数器(Counter):是由若干个触发器组成的寄存器,当一个计数脉冲到达时,它会按二进制数的规律累计脉冲数,使存储在其中的数字加1。4.累加器(Accumulator):是一个由多个触发器组成的多位寄存器,用于暂存每次在ALU中计算的中间结果。1.2逻辑电路基础1计算机系统概述1.2.5三态电路1.2逻辑电路基础1计算机系统概述三态输出电路EAB00高阻01高阻100111三态输出电路功能表1.2逻辑电路基础1计算机系统概述4位缓冲寄存器计算机系统是一个由硬件、软件组成的复杂的电子装置。它能够存储程序和原始数据、中间结果和最终运算结果,并自动完成运算,是一种能对各种数字化信息进行处理的信息处理机。1.3计算机系统概述1计算机系统概述1.3.1计算机的分类及发展1.计算机的分类
目前人们所说的计算机,都是电子数字计算机已经出现过的机械的、模拟的计算机已经逐渐消失。计算机按用途可分为专用计算机和通用计算机。1.3计算机系统概述1计算机系统概述按计算机的使用方式分类嵌入式计算机桌面计算机服务器按计算机的结构分类冯•诺依曼结构非冯•诺依曼结构按规模分超级计算机、大型机、服务器、微型机、单片机1.3计算机系统概述1计算机系统概述
2.计算机的发展
类型时期主要器件重要特征第1代1946-1957电子管机器语言,汇编语言。速度低,体积大,价格昂贵,可靠性差,用于科学计算。速度达几千次到几万次第2代1958-1964晶体管算法语言,操作系统。体积缩小,可靠性提高。从科学计算到数据处理、工业控制。每秒几万次到几十万次第3代1964-1971中小规模集成电路体积小,可靠性大大提高,速度达几百万次,软件技术和外设发展迅速应用领域不断扩大,出现小型计算机。第4代1971-1992大/超大规模集成电路速度提高至几千次到亿次出现微型计算机第5代1991-巨大规模集成电路速度提高至几亿次乃至上百亿次。出现单片机摩尔定律:每18个月,集成度将翻一番,速度将提高一倍,而其价格将降低一半。1.3计算机系统概述1计算机系统概述1.3.2计算机系统的组成
计算机系统是由硬件系统和软件系统两部分组成的。1.冯·诺依曼计算机
⑴计算机(指硬件)由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。⑵指令和数据均以二进制编码表示,采用二进制运算。⑶采用存储程序的方式,程序和数据存放在同一存储器中。⑷指令在存储器中按其执行顺序存放,由程序计数器指明要执行的指令地址,自动从存储器中取出指令并执行。⑸计算机是以运算器为中心的,输入/输出设备与存储器之间的数据传送都要通过运算器。1.3计算机系统概述1计算机系统概述
存储程序控制的基本思想:将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速地从存储器中取出指令加以执行。1.3计算机系统概述1计算机系统概述冯·诺依曼结构的计算机是以运算器为中心的。1.3计算机系统概述1计算机系统概述
2.现代计算机系统
⑴以存储器为中心的计算机系统
1.3计算机系统概述1计算机系统概述
⑵总线系统总线是构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路。1.3计算机系统概述1计算机系统概述
⑶I/O接口I/O接口:又称适配器,存在于CPU与外设之间,是CPU与外围设备进行信息交换的中转站。外围设备通过I/O接口连接在系统总线上。它保证外围设备采用计算机系统所要求的形式发送和接收信息。通用可编程接口:可以通过对接口芯片编程,使得同一接口芯片适应多种使用场合。1.3计算机系统概述1计算机系统概述
⑷存储系统三级存储结构1.3计算机系统概述1计算机系统概述
3.计算机的软件系统
系统软件:负责管理、控制和维护计算机的各种硬件资源,并为用户提供一个友好的操作界面以及服务于一般目的的上机环境。应用软件:专业人员为各种应用目的而开发的程序,利用计算机来解决某些问题。1.3计算机系统概述1计算机系统概述1.3.3计算机系统的主要性能指标字长位(bit):计算机内部数据存储的最小单位。字节(Byte):最基本的存储单元,也是计算机中数据处理的基本单位。字(word):计算机进行数据处理时,一次存取、加工和传送的数据长度。16位机:8086、80286
32位机:80486准16位机:8088
准32位:80386SX1.3计算机系统概述1计算机系统概述内存容量运算速度最短指令法:以执行时间最短的指令或某条特定指令为标准来计算速度,如传送指令、加法指令等。平均速度:根据不同类型指令在计算过程中出现的频率,乘以不同的系数,求得统计平均值。时钟频率
主频:指微处理器在单位时间(秒)内发出的时钟脉冲数。微机原理与接口技术(第3版)2微型计算机系统基础指令系统微型计算机系统结构输入/输出系统微处理器的发展嵌入式系统微处理器的发展2.1.1程序设计语言
程序设计语言:机器语言、汇编语言、高级语言
1.指令系统指令:要计算机执行某种操作的命令。
程序:是一组指令的有序集合。指令系统:一台CPU能识别的所有指令的集合。2.1指令系统2微型计算机系统基础2.1.1程序设计语言2.汇编语言和汇编程序机器指令:二进制指令,由指令操作码和操作数组成。机器语言:由机器指令构成的编程语言。汇编语言:用约定的符号和数字按规定的格式来表示指令。汇编程序:将汇编源程序自动翻译成机器语言的过程。算法语言(高级语言):由预先规定的基本符号构成程序,比较接近数学语言,与具体机器无关,通用性强、便于学习和掌握。2.1指令系统2微型计算机系统基础1.系列计算机:具有相同的基本指令系统和基本体系结构,但具有不同组成和实现的一系列不同型号的机器。2.1.2处理体系结构2微型计算机系统基础2.1指令系统x86系列IBM-360曙光,神威,银河2.CISC和RISC
复杂指令系统计算机(ComplexInstuctionSetComputer)
有庞大的指令系统、较多的寻址方式、复杂的指令格式,CPU结构复
杂、设计成本高。
精简指令集计算机(ReducedInstructionSetComputer,RISC)
去除不常用的复杂指令,硬件只支持常用的简单指令。通过减少指令种类、规范指令格式、简化寻址方式、存储器并行处理等方式,大幅度的提高处理器的总性能。2微型计算机系统基础2.1.2处理体系结构2.1指令系统2.2.1微处理器与微型计算机微处理器(Microprocessor,μP,MP):将运算器和控制器集成在一起的中央处理器部件。微型计算机(Microcomputer,μC,MC):以微处理器为核心,配上内存储器、输入/输出接口电路及系统总线所组成的计算机。微型计算机系统(MicrocomputerSystem,μCS,MCS):是指以微型计算机为中心,配以相应的外围设备、电源、辅助电路以及控制微型计算机工作的系统软件所构成的计算机系统。2.2微型计算机系统结构2微型计算机系统基础2微型计算机系统基础微型计算机系统组成2.2微型计算机系统结构2.2.1微处理器与微型计算机2.2.2微处理器中主要的寄存器2微型计算机系统基础指令寄存器(InstructionRegister,IR)程序计数器(ProgramCounter,PC)地址寄存器(AddressRegister,AR)数据寄存器(DataRegister,DR)通用寄存器(R0~Rn)程序状态字寄存器(ProgramStatusWord,PSW)2.2微型计算机系统结构2微型计算机系统基础访问内存示意图2.2.3微型计算机中的存储器与地址分配内存组织2.2微型计算机系统结构2.2.3微型计算机中的存储器与地址分配统一编址:将I/O端口和内存储器统一编址独立编址:内存储器和I/O端口地址空间各自独立编址
堆栈:堆栈是按后进先出(Last-InFirst-Out,LIFO)原则进行存取的存储结构2微型计算机系统基础2.2微型计算机系统结构2.2.4微机系统中采用的先进技术流水线技术哈佛结构:将指令和数据分别放在两个独立存储器中,每个存储器独立编址、独立访问Cache技术虚拟存储管理技术多核处理器结构2微型计算机系统基础2.2微型计算机系统结构2.3.1信息交换方式程序查询方式中断控制方式直接存储器存取控制方式通道方式外围处理机方式2.3输入/输出系统2微型计算机系统基础2.3.2程序中断方式1.中断的基本思想2.中断源3.中断处理过程中断请求
中断响应
①保护断点
②保护现场
③识别中断源中断处理中断返回2微型计算机系统基础2.3输入/输出系统2.4.1Intel微处理器早期微处理器(1971—1973年)8位微处理器(1973—1978年)16位微处理器(1978—1983年)IA32架构微处理器(1983—1993年)IA64位微处理器其他微处理器:除了Intel公司,还有其他一些优秀的微处理器制造商,如Motorola、Zilog、AMD等公司2.4微处理器的发展2微型计算机系统基础嵌入式系统的定义嵌入式系统是以应用为中心、以计算机技术为基础,采用可剪裁软硬件,能够满足应用系统对功能、可靠性、实时性、成本、体积功耗等指标的严格要求的专用计算机系统,用于对其他设备的控制、监视或管理等功能。2.5嵌入式系统2微型计算机系统基础嵌入式系统的特点专用性强技术融合集成度高实时性好资源受限2微型计算机系统基础2.5嵌入式系统交叉编译本地编译:在当前编译平台下,编译出来的程序只能放到当前平台下运行。交叉编译:在当前编译平台下,编译出来的程序能够运行在另一种体系结构的目标平台上,但是该编译平台本身却不能运行。通常将这个编译平台成为宿主机,而目标平台称为目标机。例如:在x86平台上,编写程序并编译成能运行在ARM平台的程序,编译得到的这个程序在x86平台上是不能运行的。2微型计算机系统基础2.5嵌入式系统嵌入式系统的发展嵌入式微处理器嵌入式微控器ARM时代面向Internet阶段2微型计算机系统基础2.5嵌入式系统微机原理与接口技术(第3版)3
8086/8088微处理器结构
微处理器的内部结构总线工作周期中断系统外部引脚和工作模式存储器组织结构微处理器的时序例题解析1.8086CPU是16位的第三代微处理器,
其内部数据总线和外部数据总线均16位。2.8086具有20位地址总线,可寻址的内存地址空间达1M字节,可寻址的I/O地址空间为64K字节,3.8086有多重寻址方式、多级中断方式、多重数据处理形式、段式存储器结构、硬件乘除法运算电路。取指令和执行指令的操作并行运行,
运行速度大大提高。4.8086具有最小模式和最大模式,应用领域宽广,适应性强。5.8086可方便地和数据处理器8087、I/O处理器8089或其它处理器组成多处理机系统,提高数据处理能力和输人输出能力。
3.1Intel8086微处理器3
8086/8088微处理器结构
3.2.1寻址空间和数据存储格式1.寻址空间当存储器按字节编址时,若地址总线为n位,CPU寻址范围是2n字节例如:8086CPU有地址总线20位,寻址能力为220=1M字节3.28086的存储器组织3
8086/8088微处理器结构2.8086存储器的组织及寻址20位地址线,可寻址的地址范围为00000H~FFFFFH3.28086的存储器组织3
8086/8088微处理器结构十六进制地址二进制地址存储器00000H0000,0000,0000,0000,0000B
00001H0000,0000,0000,0000,0001B
00002H0000,0000,0000,0000,0010B
00003H0000,0000,0000,0000,0011B
::
::
FFFFDH1111,1111,1111,1111,1101B
FFFFEH1111,1111,1111,1111,1110B
FFFFFH1111,1111,1111,1111,1111B
数据的存储格式
计算机中信息的单位有:位(bit)、字节(byte)字(word)、双字(doubleword)等⑴字节数据(BYTE)
8位,偶地址(地址的最低位A0=0),或奇地址(A0=1)
⑵字数据(WORD)16位,存放在两个连续的字节单元中。其中高8位存放在在高地址字节(高字节),低8位存放在在低地址字节(低字节),并规定将低字节的地址作为这个字的地址(字地址)
D15~D8(高字节)地址=N+1(奇地址)
D15~D8(高字节)地址=N+1(偶地址)字地址D7~D0(低字节)地址=N(偶地址)
字地址D7~D0(低字节)地址=N(奇地址)
规则字
非规格字3
8086/8088微处理器结构⑶双字数据(DOUBLEWORD)双字数据占用4个连续字节单元,并规定最低字节地址为双字的地址数据的存储格式
D31~D24地址=N+3
D23~D16地址=N+2
D15~D8地址=N+1双字地址D7~D0地址=N(低字节)数据的地址对齐同一个存储器地址可以表示为:字节单元地址、字单元地址、双字单元地址等等(视指令的具体情况)。将字单元安排在偶地址(xx……….xx0B),将双字单元安排在模4地址(xx………xx00B)的做法,被称为“地址对齐(Align)”。存储的数据如果对齐边界,则存取速度较快3
8086/8088微处理器结构8086系统的存储器结构数据类型A0操
作用到的数据引脚规则字00从偶地址开始读/写一个字D15—D0字节01从奇地址开始读/写一个字节D15—D810从偶地址开始读/写一个字节D7—D0非规则字0110从奇地址开始读写一个字(非规则字),第一总线周期高8位数据有效,第二总线周期低8位数据有效。D15—D8D7—D0
11无效
3
8086/8088微处理器结构3.2.2存储器的分段结构和物理地址的形成
0段1段2段15段00000H0FFFFH10000H1FFFFH20000H2FFFFHF0000HFFFFFH64K字节64K字节64K字节64K字节……………………1.存储器的分段结构由于8086中的地址寄存器都是16位的,用户不能直接使用20位的物理地址,编程时需要使用逻辑地址来寻址存储单元。逻辑地址由两个16位数构成,其形式为:8086将存储空间分为多个逻辑段(Segment)来进行管理,要求:段的20位的起始地址(xxxxxH)其低4位必须为0(xxxx0H),所以可以将它们省略,然后用1个16位数来表示表示段的首地址。每段长度限216=64KB,所以段内偏移地址可以用1个16位数表示(xxxxH)1MB最多可分为16个不重迭的段。(16位段地址)
:(16位偏移量)
段的起始地址:
段内的偏移地址3
8086/8088微处理器结构实际上,两个不同的逻辑段可以交叠,或者完全重叠3
8086/8088微处理器结构3.2.2存储器的分段结构和物理地址的形成CS=7018H,IP=FE7FH,物理地址=7FFFFH例如:7018:FE7F图3.5物理地址形成过程2.物理地址的形成每个存储单元都有一个唯一物理地址(00000H~FFFFFH),20位二进制数,该地址在指令执行时由地址加法器形成,并进行硬件寻址。地址加法器的具体做法:段地址左移4位,然后加上偏移地址就得到20位物理地址。3
8086/8088微处理器结构用户编程时采用逻辑地址,其形式为:段的首地址:段内偏移地址它们由两个16位的无符号数构成。逻辑地址“1460H:100H”=物理地址14700H一个存储单元可以拥有多个逻辑地址,但只可能拥有一个唯一的物理地址。例如:物理地址:00200H逻辑地址:0020H:0000H逻辑地址:0000H:0200H3
8086/8088微处理器结构存储器可以划分为:程序区、数据区、堆栈区程序段中存储程序的指令代码;数据段和附加段中存储数据、中间结果和最后结果;堆栈段存储压入堆栈的数据或状态信息。3.按信息特征分段存储3
8086/8088微处理器结构3.3.1
8086CPU内部结构分成两部分:总线接口部件BIU:
总线接口单元BIU,负责控制存贮器读写。执行部件EU:
执行单元EU从指令队列中取出指令并执行。特点:取指部分和执行指令部分分开进行,提高了速度。8086CPU的内部结构3.38086微处理器的内部结构3
8086/8088微处理器结构外部总线内部暂存器
IP
ES
SSDSCS输入/输出控制电路执行部分控制电路123456∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列缓冲器执行部件(EU)总线接口部件(BIU)16位20位16位8位外部总线内部暂存器
IP
ES
SSDSCS输入/输出控制电路执行部分控制电路123456∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列缓冲器执行部件(EU)总线接口部件(BIU)16位20位16位8位执行部件总线接口部件通用寄存器四个专用寄存器SP:堆栈指针,其内容与堆栈段寄存器SS的内容一起,提供堆栈操作地址。
BP:基址指针:构成段内偏移地址的一部分.
SI:(SourceIndex):SI含有源地址意思,产生有效地址或实际地址的偏移量。
DI:(DestinationIndex):DI含有目的意思,
产生有效地址或实际地址的偏移量。算术逻辑单元ALU:主要是加法器。大部分指令的执行由加法器完成。标志寄存器:16位字利用了9位。标志分两类:状态标志(6位):反映刚刚完成的操作结果情况。控制标志(3位):在某些指令操作中起控制作用。外部总线内部暂存器
IP
ES
SSDSCS输入/输出控制电路执行部分控制电路123456∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列缓冲器执行部件(EU)总线接口部件(BIU)16位20位16位8位20位地址加法器四个段寄存器:CS、DS、SS、ESCS管理代码段;DS管理数据段SS管理堆栈段;ES管理附加段.16位的指令指针寄存器IP:IP中的内容是下一条指令对现行代码段基地址的偏移量,6字节的指令队列指令队列共六字节,总线接口部件BIU从内存取指令,取来的总是放在指令队列中;执行部件EU从指令队列取指令,并执行。3.3.28086CPU的寄存器结构3
8086/8088微处理器结构AHBHCHDHALBLCLDLSPBPSIDIIPFLAGSCSDSSSES000151515AXBXCXDX累加器基址寄存器计数器数据寄存器堆栈指针基址指针源变址目的变址指令指针标志寄存器代码段数据段堆栈段附加段通用数据寄存器指针和变址寄存器控制寄存器段寄存器015871.数据寄存器8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即:AXAH,ALBXBH,BLCXCH,CLDXDH,DL常用来存放参与运算的操作数或运算结果3.3.28086CPU的寄存器结构3
8086/8088微处理器结构数据寄存器特有的习惯用法AX:累加器。多用于存放中间运算结果。
所有I/O指令必须都通过AX与接口传送信息;BX:基址寄存器。常用于存放访问内存时的偏移地址;CX:计数寄存器。用于在循环或串操作指令中存放循环次数
或重复次数;DX:数据寄存器。在32位乘除法运算时,存放高16位数;
在间接寻址的I/O指令中存放I/O端口地址。3
8086/8088微处理器结构3.3.28086CPU的寄存器结构2.段寄存器段寄存器为信息按特征分段存贮带来方便.3.3.28086CPU的寄存器结构3
8086/8088微处理器结构CS:16位的代码段寄存器,管理程序段DS:16位的数据段寄存器,管理数据段。ES:16位的扩展段(附加段)寄存器,管理扩展段。SS:16位的堆栈段寄存器,管理堆栈段。3.地址指针与变址寄存器
SP:堆栈指针寄存器,其内容为栈顶的偏移地址; BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。3.3.28086CPU的寄存器结构3
8086/8088微处理器结构BX与BP在应用上的区别作为通用寄存器,二者均可用于存放数据;作为基址寄存器,BX通常用于数据段,一般与DS或ES搭配使用;BP则通常用于堆栈段,与SS搭配使用。SI:源变址寄存器DI:目标变址寄存器变址寄存器常用于指令的间接寻址或变址寻址.4.控制寄存器指令指针寄存器IP其内容为下一条要执行的指令的偏移地址;3.3.28086CPU的寄存器结构3
8086/8088微处理器结构标志寄存器FLAGS16位标志寄存器,用来存放运算结果的特征。其中7位没有定义,其余9位分成两类:状态标志:表示运算后结果的状态特征它影响后面的操作,
有6位:CF、PF、AF、ZF、SF和OF。控制标志,用来控制CPU操作,有3个:TF、IF和DF。具体格式如图3-9。3.3.28086CPU的寄存器结构3
8086/8088微处理器结构CF-进位标志:算术运算时有进位CF=1,无进位CF=0PF-奇偶标志:运算结果中“1”的个数为偶数PF=1AF-辅助进位标志:第3位向第4位有进位时AF=1ZF-零标志:运算结果为“0”则ZF=1SF-符号标志:运算结果为负数时SF=1OF-溢出标志:运算结果超出规定范围OF=1IF-中断允许标志:IF=1中断允许DF-方向标志,DF=0地址加1TF-跟踪标志,TF=1,为单步工作方式3.3.28086CPU的寄存器结构3
8086/8088微处理器结构例3.1
设(AX)=0010001101001101B,(DX)=0101001000001001B,试指出两数相加后,6位标志位的状态。解用补码公式对两数进行运算,并按定义对结果进行判别。计算机中存储的已是补码,两数相加过程如下:3.3.28086CPU的寄存器结构根据两数相加结果,可得如下结论:①结果非零,故ZF=0。②低8位中共有4个1(偶数个),故PF=1。③根据符号位,可知SF=0。④运算结束后,向更高位无进位,故CF=0。⑤运算结果无溢出,故OF=0。
⑥D3位向D4位产生进位,故AF=1。了解几个概念主频:CPU的工作频率时钟周期:对主频进行分频后的工作时钟总线周期:完成一次总线操作所需的时间在8088CPU中,CPU与内存或接口间进行通信,
如将一个字节写入内存一个单元(或接口),
或者从内存某单元(或某接口)读一个字节到CPU,
这种读(或)写的过程称为一个总线周期。指令周期:一条指令从开始取指令到最后执行完毕所需的时间3.48086总线的工作周期3
8086/8088微处理器结构3.48086总线的工作周期3
8086/8088微处理器结构总线周期时序1个总线周期正常情况下由4个时钟周期(T1―T4)组成;时钟周期由主频决定;空闲周期TI和等待周期TW;读、写、中断响应、总线保持与响应等的总线周期时序T1等待状态总线周期kT2T3T4TiT1T2T3TWT4TiTiT1T2T3TWTWT4空闲状态总线周期k+1总线周期k+23.5.18086中断类型3.58086中断系统3
8086/8088微处理器结构8086/8088可以处理256种不同的中断。两类:内部中断和外部中断。中断源示意图如下图:8259A可屏蔽中断请求中断逻辑INTO指令INTn指令除法出错单步(TF=1)非屏蔽中断请求8086/8088CPUNMIINTR内部中断外部中断可屏蔽中断非屏蔽中断1.外部中断3.58086中断系统3
8086/8088微处理器结构8086CPUNMIINTR不可屏蔽中断请求输入端可屏蔽中断请求输入端8086CPU提供两条引脚INTR、NMI接受中断请求信号INTA中断响应信号输出端不可屏蔽中断(NMI中断)▼中断类型码2▼上升沿触发申请中断▼不受中断允许标志IF的控制与影响(即不可屏蔽),一旦NMI引脚出现中断请求,CPU在当前指令执行完后,必须立即响应。▼由计算机内部硬件出错而引发,一般用于处理紧急事件。
PC机中用于内存奇偶校验出错和系统主要故障(如电源断电等)。3.58086中断系统3
8086/8088微处理器结构8086CPUNMI可屏蔽中断(INTR中断)▼外设申请的中断▼电平触发▼受中断允许标志IF控制
IF=1(指令STI),开中断,允许响应INTR中断
IF=0(指令CLI),关中断,禁止响应INTR中断
——当外设对CPU有服务请求,会向INTR发来一个高电平信号(见上图),并且中断允许标志IF=1时,CPU会在当前指令执行完后,响应可屏蔽中断。3.58086中断系统3
8086/8088微处理器结构8086CPUINTRINTA3.58086中断系统3
8086/8088微处理器结构可屏蔽中断(INTR中断)
8086CPU只有一个可屏蔽中断请求输入引脚,8086中断系统设计中断控制器(8259A)管理各种外设提出的中断请求。所有外设的中断请求信号都可送至8259A的中断请求输入端IRQ0~IRQ7任何一个,8259A选择其中优先级最高的中断请求,送至CPU的INTR引脚,向CPU申请可屏蔽中断。
可屏蔽中断源的中断类型码由8259A提供。INTRINTA8086CPUINTINTA8259AIRQ0IRQ1IRQ2IRQ7……可屏蔽中断请求输入端8259A可对多个可屏蔽中断源进行优先级控制,一片8259A可管理8级可屏蔽中断。2.内部中断不需要外部硬件支持,不受中断标志IF的影响,中断类型码或包含在指令中,或预先规定。8086/8088内部中断有以下5种:除法出错中断断点中断单步中断溢出中断软件中断3.58086中断系统3
8086/8088微处理器结构软件中断主要有五种,分为三类。
1)处理运算过程中某些错误的中断执行程序时,为及时处理运算中的某些错误,CPU以中断方式中止正在运行的程序,提醒程序员改错。
(1)除法错中断(中断类型号为0)。在8086/8088CPU执行除法指令(DIV/IDIV)时,若发现除数为0,或所得的商超过了CPU中有关寄存器所能表示的最大值,则立即产生一个类型号为0的内部中断,CPU转去执行除法错中断处理程序。3.58086中断系统3
8086/8088微处理器结构
例movbl,0idivbl ;除数BL=0,产生除法错中断(2)溢出中断INTO(中断类型号为4)。CPU进行带符号数的算术运算时,若发生了溢出,则标志位OF=1,若此时执行INTO指令,会产生溢出中断,打印出一个错误信息,结束时不返回,而把控制权交给操作系统。若OF=0,则INTO不产生中断,CPU继续执行下一条指令。INTO指令通常安排在算术指令之后,以便在溢出时能及时处理。例如:3.58086中断系统3
8086/8088微处理器结构movax,2000haddax,7000h
;2000H+7000H=9000H,溢出:OF=1into ;因为OF=1,所以产生溢出中断2)为调试程序设置的中断(1)单步中断(中断类型号为1)。当TF=1时,每执行一条指令,CPU会自动产生一个单步中断。单步中断可一条一条指令地跟踪程序流程,观察各个寄存器及存储单元内容的变化,帮助分析错误原因。单步中断又称为陷阱中断,主要用于程序调试。3.58086中断系统3
8086/8088微处理器结构例如:DEBUG.EXE调试程序的单步命令T就利用单步中断实现对程序的单步调试(2)断点中断(中断类型号为3)。调试程序时可以在一些关键性的地方设置断点,它相当于把一条INT3指令插入到程序中,CPU每执行到断点处,INT3指令便产生一个中断,使CPU转向相应的中断服务程序3)中断指令INTn引起的中断(中断类型号为n)
程序设计时,可以用INTn指令来产生软件中断,中断指令的操作数n给出了中断类型号,CPU执行INTn指令后,会立即产生一个类型号为n的中断,转入相应的中断处理程序来完成中断功能。3.58086中断系统3
8086/8088微处理器结构3.8086中断源的优先级
8086中断源的优先级顺序由高到低依次为:
软件中断(除单步中断外)、非屏蔽中断、可屏蔽中断、单步中断。3.58086中断系统3
8086/8088微处理器结构对同时产生的中断:首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;对非同时产生的中断:允许低优先级别的中断处理程序被高优先级别的中断源所中断——中断嵌套。中断类型码:8086可以处理256个中断请求,每个中断请求均对应于惟一固定的类型码。被0除类型码是0,单步为1;NMI为2;断点中断为3,溢出中断为4……等。中断向量:即中断服务程序的入口地址,包括段地址(高字单元)和偏移地址(低字单元)。3.5.2中断向量与中断向量表3
8086/8088微处理器结构每个中断处理程序都有一个唯一的中断向量。;中断服务程序INT_PROCPROCPUSHDXPUSHAX…IRETINT_PROCENDP
INC_PROCPUSHDXPUSHAX┅┅IRET中断服务程序入口地址中断向量表3.5.2中断向量与中断向量表3
8086/8088微处理器结构按中断类型码从小到大顺序依次存放各类中断(256种)的中断向量(中断服务程序入口地址)。在内存的00000H~003FFH地址范围内,大小为1KB。每个中断向量占用4Bytes,低字为段内偏移地址,高字为段基址。中断类型码与中断向量地址的关系:
设某类中断的中断类型码为n中断向量在IVT中的存放地址(向量地址)=4×n3.5.2中断向量与中断向量表3
8086/8088微处理器结构例:某系统中键盘中断的类型码为09H,试问其对应中断服务程序的入口地址?
40H30H20H10H
0024H0025H0026H0027H1)中断向量的存放地址由4
n=4
9=36=24H知中断向量存放在存储器中从0000:0024H开始的4个单元中,即0024H—0027H单元。存储器
IP
CS2)由右图易知键盘中断的中断处理程序的入口地址为
4030:2010H即可转入键盘中断服务程序执行。1.可屏蔽中断的中断过程3.5.38086中断处理过程3
8086/8088微处理器结构中断处理过程:包括中断请求、中断排队、中断响应、中断处理、中断返回等全过程。(1)CPU响应可屏蔽中断的条件外设提出中断申请;本中断未被中断控制器屏蔽;本中断优先级最高;CPU允许中断;(2)CPU响应可屏蔽中断的过程CPU在每条指令的最后一个T周期,检测INTR,若为高电平,且IF=1,则CPU响应中断。响应过程中自动依次完成以下工作:CPU向外设发两个/INTA,外设收到第2个/INTA后,立即通过数据线给CPU送中断类型号。CPU从数据线上读取中断类型号将Flags内容入栈保护现行程序的控制标志及其运行结果产生的状态标志。3.5.38086中断处理过程3
8086/8088微处理器结构(2)CPU响应可屏蔽中断的过程关中断(清IF和TF)
为了防止在进入中断处理,但并未执行中断程序这段时间内又响应新的中断。保护断点将当前指令的下一条指令的CS和IP入栈,使中断处理完成后能正确的回到原程序处继续执行。转入相应的中断服务子程序;中断返回从堆栈中弹出断点的地址(IP和CS)和Flags的内容,返回主程序的断点处,继续执行主程序。3.5.38086中断处理过程3
8086/8088微处理器结构2.非屏蔽中断和软件中断的执行过程3.5.38086中断处理过程3
8086/8088微处理器结构3.中断类型码的形成中断入口地址依赖中断类型号,中断型号获取方法:对于专用中断:除法出错、单步中断、不可屏蔽中断、断点中断和溢出中断,由CPU分别提供中断类型号0~4(内部行成);对于用户自己确定的软件中断INTn,类型号由n决定;对于INTR引脚上的中断:由硬件电路设计产生中断类型号可用8259A获取中断类型号3.5.38086中断处理过程3
8086/8088微处理器结构3.6.18086系统总线结构3.68086微处理器外部基本引脚与工作模式3
8086/8088微处理器结构最小模式:系统中只有8086一个微处理器,所有的总线控制信号均为8086产生,系统中的总线控制逻辑电路,减少到最少。最大模式:用于大型(中型)8086系统中。系统总是包含有两个或多个微处理器,其中一个主处理器就是8086,还有协处理器8087、8089等。通常由专门的总线控制器(8288)产生总线控制信号。8086采用双列直插式(DoubleInlinePackage,DIP)封装,具有40条引脚,使用+5V电源供电。3.68086微处理器外部基本引脚与工作模式3
8086/8088微处理器结构40引脚线地址线数据线控制线状态线电源线定时线时钟频率有3种:5MHz(8086)、8MHz(8086-1)和10MHz(8086-2)。其引脚信号如图3.13所示,括号内为最大模式时的引脚名称。3.68086微处理器外部基本引脚与工作模式3
8086/8088微处理器结构表3.28086引脚信号定义3.6.2两种模式下公用的引脚信号3.68086微处理器外部基本引脚与工作模式3
8086/8088微处理器结构所谓三态是指总线输出可以有三个状态:高电平、低电平和高阻状态。当处于高阻状态时,该总线在逻辑上与所有连接负载断开。地址总线、数据总线、状态信号(1)AD15~AD0(2~16,39)地址/数据复用总线;双向、三态;分时输出低16位地址信号及进行数据信号的输入/输出。A15-A0:T1输出访问存储器或I/O的地址信息。D15-D0:T2-T4输出与存储器和I/O设备交换数据信息。3.68086微处
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论