D硬件讲义计算机硬件基础第三章 微机的总线与主板-2第二章 (2)课件_第1页
D硬件讲义计算机硬件基础第三章 微机的总线与主板-2第二章 (2)课件_第2页
D硬件讲义计算机硬件基础第三章 微机的总线与主板-2第二章 (2)课件_第3页
D硬件讲义计算机硬件基础第三章 微机的总线与主板-2第二章 (2)课件_第4页
D硬件讲义计算机硬件基础第三章 微机的总线与主板-2第二章 (2)课件_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

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

文档简介

第二章计算机的基本工作原理与指令系统

本章主要内容2.1计算机系统的硬件结构计算机的五大主要部件计算机的总线结构2.2CPU的组成与基本工作原理CPU的组成与基本工作原理计算机中数据信息的表示算术运算与逻辑运算的实现控制信号的产生典型CPU的总体结构计算机硬件技术基础第二章计算机的基本工作原理与指令系统

2.3内存的组成及读写原理内存组成和基本结构内存的读写典型微机的内存接口内存堆栈与堆栈操作

2.4指令系统

指令系统简介

指令系统的发展2.5计算机的工作过程指令的执行过程加速程序执行的方法习题与思考题1—15、18、21、25、26、33、34计算机硬件技术基础2.1.1计算机的主要部件

五大基本部件:输入设备主存储器辅助存储器输出设备运算器控制器输入输出程序/原始数据运算结果指令数据线控制信号线存储器计算机硬件技术基础2.1.1计算机的主要部件在计算机五大部分中,运算器和控制器是最核心的部分,通常做在一个器件上,称作CPU(CenterProcessingUnit)。

CPU=控制器+运算器(+寄存器组)只有主存(内存)可直接与CPU交换信息,它与CPU组合可实现计算机的基本功能。

主机=CPU+主存储器输入/输出(Input/Output)设备和外存合称“外围设备”。

外设=I/O+辅助存储器

计算机硬件技术基础2.1.2计算机的总线结构

总线是一组能为多个部件服务的公共信息传送线路,分时地发送与接收各部件的信息。计算机的五大部件之间就是通过(Bus)连接实现信息交换的。根据总线所传输的信息通常把总线分为地址总线、数据总线和控制总线。简称三大总线。三大总线=数据总线+地址总线+控制总线地址总线(AB):单向,用于向内存、输入/输出设备传输地址信息。数据总线(DB):双方,传输各种数据信息。控制总线(CB):传输控制信息计算机硬件技术基础2.1.2计算机的总线结构微型计算机通常把各大部件都连接在单一的一组总线上,各部件间的信息交换都经过这组总线,因此称其为系统总线。这种结构提高了CPU的工作效率,而且外设连接灵活,易于扩充。但由于所有部件都挂在同一组总线上,而总线又只能分时的工作,故同一时刻只允许一对设备(或部件)之间传送信息,这使信息传送的吞吐率受到限制,此外,总线的管理也比较复杂。系统总线CPU内存接口外部设备接口外部设备….单总线结构计算机硬件技术基础2.2.1中央处理器的基本构成指令寄存器(IR)指令译码器(ID)操作控制器(OC)寄存器组(IR)通用寄存器组堆栈指针(SP)程序计数器(PC)累加器(ACC)累加器锁存器暂存器标志寄存器(FR)地址缓存器数据缓存器内部总线控制器运算器控制总线(CB)地址总线(AB)数据总线(DB)ALU是运算器的核心,它是以全加器为基础,辅以移位寄存器及相应的控制逻辑组合而成的电路,在控制信号的作用下可完成加、减、乘、除几各种逻辑运算。累加器是一个特殊的通用寄存器,他总是提供送入ALU的两个运算操作数之一,且运算后的结果又总是返回累加器。暂存器的作用保从将要送入ALU运算的操作数器。寄存器组用于暂存数据、命令指令寄存器组用于存放要执行的指令。根据指令内容,发出控制信号。标志寄存器主要用于存放ALU操作结果的状态和特征:包括两部分内容:状态标志,如:进位标志、结果为零标志等,大多数运算类指令的执行将会影响到这些标志位。控制标志,如:中断标志、陷阱标志等。。计算机硬件技术基础2.2.1中央处理器的基本构成1.运算器⑴累加器A:N位的寄存器,用于保存运算过程中的有关数据。⑵暂存器:N位寄存器,接收来自累加器和数据总线的数据。⑶加法器Σ:由N个全加器构成。加法器的两个输入:累加器A、暂存器加法器的输出:送入累加器A,也可以发送给数据总线DB。计算机硬件技术基础2.2.1中央处理器的基本构成2.控制器⑴程序计数器PC,又称指令计数器⑵指令寄存器IR,存放从内存中取出的待执行的指令。⑶指令译码器ID,又称操作码译码器或指令功能分析解释器。⑷地址形成部件⑸微操作信号发生器

指令的执行都可分解成一系列微操作控制信号。微操作信号发生器的根据指令译码器的输出和时序部件提供的定时信号,确定完成该指令所需要的步骤以及完成每一步骤所需要的控制信号组合。⑹时序部件,给出定时信号以确定产生控制信号的具体时间。计算机硬件技术基础2.2.2计算机中数据信息的表示数字化信息编码的概念:在计算机中,数字是以一串“0”或“1”的二进制代码来表示的,这是一种计算机唯一能识别的机器语言。所有需要计算机加以处理的数、字字母、文字、图形、图象、声音等信息以及控制操作等命令(人读数据)都必须采用二进制编码(机读数据)来表示和处理。也就是说:在计算机内一切信息必须进行数字化编码(即用二进制代码形式),才能在机内传送、存储和处理。

人们输入到计算机中的各种信息,都要通过系统自动转换成计算机能处理的二进制数,处理完成后,系统把这些处理过的二进制数再自动还原成各种信息。即:输入→处理→输出

(多类型信息1)(二进制)(多类型信息2)计算机硬件技术基础2.2.2计算机中数据信息的表示进位计数制:

按进位的方法进行计数,称为进位计数制。也就是数字累计到最大计数(进制数)时,数码长度就增加一位或数码高位数值增1。任意进制数的表示基数(K):是最大进位数(进制数),例如:十进制基数为10;六十进制(时间)的基数为60等。系数(m):每个数位上的值,取值范围0—k-1【例】数32343.43可以分解为:

3×104+2×103+3×102+4×101+3×100+4×10-1+3×10-2位权位权位权位权位权位权位权计算机硬件技术基础可用数码进位基数0…K-10123456789ABCDEF01234567010123456789逢K进1逢16进1逢8进1逢2进1逢10进1K168210K进制十六进制八进制二进制十进制常用数制2.2.2计算机中数据信息的表示K进制数的某些性质:小数点右移n位——相当于乘以Kn(增加Kn倍)小数点左移n位——相当于除以Kn(为Kn份之一)思考:m位K进制数,其最大数值是多少?最小数值是多少?计算机硬件技术基础十进制数转换为K进制数将整数部份和小数部份分开来算,位权展开法整数部份:除以K取余数,直到商为0,余数从自下而上排列小数部份:以小数部分乘以K取积的整数,并将其自上而下排列,直

计算机中数据信息的表示到小数部份为0或规定精度为止【例】将(100.345)10转换为二进制除2取余余数整数乘2取整2|23710.6252|1180取×22|59111.2502|291值0.252|140×2

转换结果为:11101101.1012|71方00.502|31×22|11向11.00计算机硬件技术基础2.2.2计算机中数据信息的表示除8取余余数整数乘8取整8|2375取0.6258|295值×88|33方55.0000向计算机硬件技术基础2.2.2计算机中数据信息的表示除16取余余数整数乘16取整16|237D(13)取0.62516|14E(14)值×16

0方A10.000向计算机硬件技术基础2.2.2计算机中数据信息的表示十六进制数→二进制数方法:将每位十六进制数用其对应的4位二进制数代替即可。例:1E.4H=00011110.0100B=11110.01B7D.2H=01111101.0010B=1111101.001B计算机硬件技术基础2.2.2计算机中数据信息的表示总结:十进制数与二进制数之间的转换需计算,不直观;二进制表示的数位多不便于书写、阅读;八进制、十六进制数与二进制数间转换方便、直观,相对于二进制数,八进制、十六进制数书写、阅读相对方便计算机硬件技术基础2.2.2计算机中数据信息的表示1.二进制数的表示无符号数:正整数。带符号数:正数或负数。最高位为符号位,“0”表示“+”,“1”表示“–”。这种表示数的形式称为机器数。原码、反码、补码。⑴原码高位为符号位,如:八位的原码X1=+9=+1001B[X1]原=00001001X2=–9=–1001B[X2]原=10001001在原码表示中,0有两种不同的表示形式:[+0]原=00000000[–0]原=10000000设字长为n+1位(含1位符号位),原码的表示范围为:–(2n–1)~(2n–1)。若字长为8位,则表示范围为–127~127。计算机硬件技术基础例:机器字长8位,[-46]补码=?[46]补码=001011101101000111010010=D2H机器字长16位,[-46]补码=FFD2H

[+0]补码=000000001111111100000000=00H=

[-0]补码0的表示唯一按位求反末位加一按位求反末位加一2.2.2计算机中数据信息的表示(3)补码:正数的补码:同原码负数的补码:(1)写出与该负数相对应的正数的补码

(2)按位求反

(3)末位加一计算机硬件技术基础2.2.2计算机中数据信息的表示2.三种机器数的比较主要区别有以下几点:⑴对于正数它们相等,而对于负数各有不同的表示。⑵补码和反码的符号位可作为数值位的一部分看待,但原码的符号位不允许和数值位同等看待。⑶原码和反码各有两种零的表示法,而补码具有唯一的一种零的表示法。⑷

原码、反码表示的正、负数范围相对零来说是对称的,但补码负数表示范围较正数表示范围宽。计算机硬件技术基础2.2.2计算机中数据信息的表示⑸符号扩展:将低精度数转换为高精度数,如将8位转换为16位。原码的符号扩展正数:00101001→0000000000101001负数:10101001→

1000000000101001反码的符号扩展正数:00101001→

0000000000101001负数:10101001→

1111111110101001补码的符号扩展正数:00101001→

0000000000101001负数:10101001→

1111111110101001

80X86有符号扩展的专用指令。计算机硬件技术基础2.2.2计算机中数据信息的表示⑵浮点表示法

小数点的位置不固定,根据需要而浮动。任何一个数N的浮点表示形式为:N=M×2E

式中:E和M都是带符号的定点数,E为阶码部分,M为尾数部分。在大多数计算机中,尾数为纯小数,阶码为纯整数。阶码部分的符号位为es,阶码的大小反映了在数N中小数点的实际位置;尾数部分的符号位为ms,它是整个浮点数的符号位,表示了该浮点数的正负。浮点表示法与定点表示法比较,在相同字长下前者所能表示数的范围要大得多,且可以不取比例因子,使用比较方便。计算机硬件技术基础2.2.2计算机中数据信息的表示4.十进制数的表示BCD码:二进制编码的十进制数(Binary-CodeDecimal),一般用四位二进制代码来表示一位十进制数,使用最广泛的是8421码,通常称其为标准BCD码(NBCD码),在80X86微处理器中干脆就称之为BCD码。8421码的主要特点:简单直观。从高到低各位的权分别为8、4、2、1。不允许出现1010~1111。这六个代码在8421码中是非法码。

BCD码与二进制数之间转换没有直接关系, 必须先转换成十进制,然后转换成二进制。例:1111111B=255D=0010,0101,0101BCD 0010,0101,0101BCD=255D=11111111B计算机硬件技术基础2.2.2计算机中数据信息的表示

5.非数值数据的表示

通常是指字符、字符串、图形符号和汉字等各种数据,它们通常不用来表示数值的大小,因此又称为非数值数据,一般情况下不对它们进行算术运算。(1)ASCⅡ目前在微机上使用最广泛的是ASCⅡ(美国标准信息交换码,以被ISO认定为国际标准),可表示128种字符的7位基本ASCⅡ码(国际通用)和可表示256种字符的8位扩充ASCⅡ码(可重新定义)。ASCⅡ码可分为:显示字符(例如键盘字符键的编码,“0”为48,“A”为65)和控制字符(例如return、backspace键的编码分别为13、8)。计算机硬件技术基础2.2.2计算机中数据信息的表示计算机硬件技术基础2.2.2计算机中数据信息的表示(2)汉字编码汉字是一种象形文字,无法直接用标准西文键盘输入,必须经过转换间接输入;汉字的字数也较多,不能用单字节的ASCⅡ(256个字符)来表示。因此,按照不同的目的和需要,产生了多种汉字编码系统与汉字输入方法。目前采用两个字节(可以表示64K字符)的汉字编码方案。由于汉字的应用范围较广(东南亚国家),汉字的编码字符集不相同,中国大陆常用GB/GBK码,台湾BIG5。计算机硬件技术基础2.2.2计算机中数据信息的表示汉字处理过程汉字系统对每个汉字预先规定输入计算机中的代码,即汉字的外部码(例如拼音输入码)。计算机为了识别汉字,要把汉字的外部码转换成内部码(二进制代码)进行存储和处理。输出时,还将汉字的内部码转换成汉字的字形码。计算机处理汉字的总过程如下:键盘管理程序汉字处理程序外部(输入)码→机内码→字形(输出)码

(键盘)(计算机存储、传输)(计算机输出汉字)↑↓↑↓汉字信息交换码(国标码)汉字信息↓↑其它系统代码计算机硬件技术基础2.2.2计算机中数据信息的表示交换码

用于计算机与其他系统或设备之间进行汉字代码信息交换的标准汉字代码,目前最常使用的是国标码1981年的GB2312-80,7445;2000年的GB18030-2000,27000

特点每个汉字(图形符号)用两个字节表示,每个字节只用低7位,即最高位为0的二进制码。在128种编码表示中,有94种用来表示汉字的编码。此标准的汉字编码表有94行、94列,分别为区号和位号。汉字编码使用的高字节称为区码,低字节称为位码。汉字分为两级:一级为使用频度高的常用汉字;二级为次常用的汉字;2.2.2计算机中数据信息的表示内部码

也称汉字内码或汉字机内码,是计算机对汉字进行存储、运算、传码的实际代码。

特点是由0和1组成的二进制代码。一个汉字对应一个机内码,即汉字数目=机内码数目;一般用两个字节表示一个汉字的内码且每个字节最高位为1。还有少数三字节、四字节等内部码最多能表示128×128=16384个汉字和图形符号;机内码目前虽未完全统一,但已趋于标准化。内部码与国标码的对应关系:内码=国标码+8080即国标码每个字节最高位为1→内部码。例如:国标码3B7A→0011101101111010那么,机内码BBFA→1011101111111010外部码

也叫汉字输入编码,主要是从键盘(语音、手写、光电)输入计算机中的代表汉字的编码。键盘输入方式目前汉字输入方案有数百种,基本上是直接利用西文标准键盘进行汉字输入,每一种汉字输入法都各自提供相应的键盘码与汉字机内码(码表),编码方案大致可分以下四类:数码(如电报码,区位码,国标码等)音码(如全拼码,简拼码,双拼码等)形码(如五笔字型,大众码,仓吉码等)音形码(如自然码,首尾码等)2.2.2计算机中数据信息的表示各种输入码交换码(国标码)内码字形码显示汉字打印汉字汉字代码交换流程2.2.2计算机中数据信息的表示计算机硬件技术基础2.2.2计算机中数据信息的表示6.现代微机系统中的数据类型举例支持浮点运算的浮点部件(FPU)。8086—80386对应8087—80387,80486以后嵌入于CPU内部。⑴无符号二进制数字节:8位数,存放在任何逻辑地址上的8位二进制数。字:16位数,存放在任何字节地址开始的2个相邻字节。双字:32位数,存放在任何字节地址开始的2个相邻字(4个相邻字节)。⑵带符号的二进制定点整数所有带符号的数都以补码形式表示,符号位是最高位(MSB)。字节:补码表示的8位带符号数。字整数(字):补码表示的16位带符号数。短整数(双字):补码表示的32位带符号数。长整数(四倍字):补码表示的64位带符号数。CPU支持前3种,浮点部件(FPU)支持后3种。计算机硬件技术基础2.2.2计算机中数据信息的表示⑶浮点数由FPU支持,数据格式基于IEEE754标准,它与前面介绍的浮点数格式有一些差别。⑷BCD数BCD数分成压缩的BCD数(BCD数)和非压缩的BCD数(UBCD数)两种。压缩的BCD数是每个字节包含两位十进制数,其低位在0~3位上,高位在4~7位上;而非压缩的BCD数每个字节仅包含一位十进制数,在0~3位上。CPU支持两种BCD数,而FPU只支持压缩的BCD数。计算机硬件技术基础2.2.2计算机中数据信息的表示⑸串数据包括字节串、字符串和双字符串,串长度为0到232-1字节。只有CPU支持串数据。⑹指针数据包括近指针和远指针两种。近指针即32位指针,是一个32位的段内偏移量,用于段内单元访问。远指针即48位指针,由16位选择符和32位偏移量组成,用于段间单元访问。计算机硬件技术基础2.2.3算术运算与逻辑运算的实现1.二进制加减运算用原码进行加法运算时必须根据两数的符号和数值大小来决定运算结果的符号,这将增加机器的复杂性和运算时间。补码加减法运算是最简单的加法:[X+Y]补=[X]补+[Y]补减法:[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补

已知[Y]补求[-Y]补的方法:将[Y]补连同符号位一起求反,末尾加“1”。[-Y]补称为[Y]补的机器负数。计算机硬件技术基础2.2.3算术运算与逻辑运算的实现补码加减运算规则

参加运算的两个操作数均用补码表示;

符号位作为数的一部分参加运算;③

若做加法,则两数直接相加,若做减法,则将被减数与减数的机器负数相加;

运算结果用补码表示。

例1:64(-46)18+010000001101001000010010+计算机硬件技术基础2.2.3算术运算与逻辑运算的实现例2:A=+01011,B=-01110,求[A+B]补。01011[A]补+10010[B]补11101[A+B]补例3:A=+01011,B=-00010,求[A-B]补。01011[A]补+00010[-B]补01101[A-B]补

A=11B=-14A+B=-3[A+B]原=10011(B)A=11B=-2A-B=13[A+B]原=01101(B)计算机硬件技术基础2.2.3算术运算与逻辑运算的实现2.溢出的产生和判断当所得的结果超过机器允许的额定位数,就会出现错误,这种情况被称为溢出。两个符号相同的数相加,和的符号相反;两个符号不同的数相减,差的符号和减数相同;将符号位扩充为两位(Ss1、Ss2),既能判别是否溢出,又能指出结果的符号。两个符号位作为数的一部分参加运算。

Ss1、Ss2=00结果为正数,无溢出11结果为负数,无溢出01结果正溢出

10结果负溢出80X86CPU中根据标志位OF来判断。无符号数在运算时也可能产生,如8位数相加,128+128=256,而8位变为0。80X86CPU中可根据标志位CF来判断。计算机硬件技术基础2.2.3算术运算与逻辑运算的实现00,1011(+11)11,0101(-11)+00,0111(+7)+11,1001(-7)01,0010(正溢出)10,1110(负溢出)00,1011(+11)11,0101(-11)+11,1001(-7)+00,0111(7)00,0100(+4)11,1100(-4)计算机硬件技术基础2.2.3算术运算与逻辑运算的实现3.其它算术运算简介⑴二进制乘除运算二进制的乘除运算可以由专用的乘法器或除法器来实现,也可以用一个加法器经过多次迭代来实现。⑵十进制数的算术运算在许多通用性较强的计算机中都可采用BCD码进行算术运算。十进制数相加时是“逢十进一”,而BCD数运算却是“逢十六进一”,两者在进位时相差6(即0110),必须要做相应的调整。如:用8421码数进行加法运算时,当和数大于9或向高位有进位时,必须对该位加校正值(0110)调整,才能得到正确的结果。十进制数在进行减法、乘法和除法运算时,也需要做相应的调整。计算机硬件技术基础2.2.3算术运算与逻辑运算的实现例:A=00010111(17BCD),B=00010011(13BCD),求A+B(BCD)。00010111+00010011001010101010≥10(D),需调整。+0000011000110000例:A=00010111(18BCD),B=00010011(19BCD),求A+B(BCD)。00011000+0001100100110001有进位,需调整。+0000011000110111计算机硬件技术基础2.2.3算术运算与逻辑运算的实现4.逻辑运算(按位操作)与、或、非、异或等。逻辑运算是按位进行的,位与位之间没有进位/借位的关系。“与”运算(AND)“或”运算(OR)ABABABAB000000010011100101111111“非”运算(NOT)“异或”运算(XOR)AAABAB0100010011101110计算机硬件技术基础2.2.3算术运算与逻辑运算的实现例:X=10111101,Y=11011110

X=10111101Y=11011110

10011100

X=10111101Y=11011110

11111111

X=10111101

X=01000010

X=10111101

Y=11011110

01100011计算机硬件技术基础2.2.4控制信号的产生1.时序系统时序系统是控制器的心脏,其功能是为指令的执行提供各种定时信号。时序系统是有周期性的时钟脉冲信号组成。其中包括:时钟周期:时钟脉冲信号的间隔时间称为时钟周期,CPU的任何操作都是在时钟脉冲的统一控制下一步一步地进行的。机器周期:每个机器周期完成一个任务。机器周期由若干时钟周期组成。指令周期:一条指令从取出、分析、取数到执行完该指令所需的全部时间。指令周期与指令的操作功能有关,若干个机器周期组成一个指令周期。总线周期:在微型计算机中,CPU与外部系统(内存或外设)的信息交换都是通过总线进行的,将CPU一次访问(即读或写)内存或外设所花费的时间,称为总线周期。计算机硬件技术基础2.2.4控制信号的产生在8086微处理器中,一个最基本的总线周期由4个时钟周期组成,在T4结束后,又开始新的总线周期。如果内存或外设的读写速度跟不上CPU的访问速度时,可以在第三个时钟周期T3之后插入等待时钟周期TW,插入TW的个数与READY信号低电平的持续时间长短有关。

计算机硬件技术基础2.2.4控制信号的产生2.控制电路的硬件实现方法微操作信号发生器是整个控制器的核心,它的输入是译码后的指令操作码,输出是微操作控制命令。控制器可分为硬布线控制器和微程控器,根本区别在于微操作信号发生器的实现方法不同。⑴

硬布线控制器硬布线控制器(组合逻辑控制器),采用组合逻辑技术来实现,微操作信号发生器由门电路组成。特点指令执行速度快微操作信号发生器的结构不规整,设计、调试、维修较困难,难以实现设计自动化。计算机硬件技术基础2.2.4控制信号的产生⑵

微程控器把微操作控制命令代码化,每条机器指令转化成为一段微程序(指令的微程序)。特点设计规整、调试、维修以及更改、扩充指令方便,易于实现自动化设计。增加了一级控制内存,指令的执行速度比硬布线控制器慢。3.微程控原理指令微程序化将指令分解为基本操作(微操作)。将同时发出的控制信号所执行的一组微操作称为一条微指令,一条指令对应于若干个微指令。微程序固化在微程控器的只读控制内存中计算机硬件技术基础2.2.5典型CPU的总体结构1.8086的内部结构计算机硬件技术基础2.2.5典型CPU的总体结构

⑴执行部件EUEU负责执行全部指令从BIU的指令队列中取得指令,经控制单元译码、产生完成该指令所需的各种控制信号,完成规定的操作。ALU进行算术、逻辑运算,或计算出存储单元的16位偏移地址送给BIU,由BIU生成20位的实际物理地址,再与外部总线交换数据。EU的通用寄存器组暂存指令所要求的操作数据。计算机硬件技术基础2.2.5典型CPU的总体结构⑵总线接口部件BIU负责CPU与内存、I/O端口之间的信息传送。BIU从内存取指令送到指令队列CPU执行指令时,BIU要配合EU的请求,完成EU与内存单元或者I/O端口中间的数据传送。BIU根据EU计算出来的16位偏移地址及段寄存器提供的段首址,通过地址产生器生成20位的物理地址。BIU的指令队列缓冲器由6个8位的寄存器组成,采用“先进先出”的原则,顺序存放6个字节的指令码,每当指令队列中空出两个字节后,BIU便自动地执行取指令操作。

EU和BIU是两个独立的工作部件,在大多数情况下,它们能并行重叠操作,在EU执行指令的同时,BIU也在进行取指令、读操作数或存入结果数据的操作。计算机硬件技术基础2.2.5典型CPU的总体结构2.8086的寄存器结构⑴

通用寄存器组⑵

段寄存器组⑶

专用寄存器组状态标志位有6个:CF:进位标志AF:是辅助进位标志OF:溢出标志ZF:零标志SF:符号标志PF:奇偶标志。控制标志位有3个:DF:方向标志IF:中断允许标志TF:陷阱标志。

计算机硬件技术基础2.3.1内存组成存储单元的地址和内容:

存储器以字节(8bit)为单位存储信息

每个字节单元有一个地址,从0编号,顺序加1

地址用二进制数表示(无符号整数,写成十六进制)

一个字要占用相继的两个字节

低位字节存入低地址,高位字节存入高地址

机器以偶地址访问(读/写)存储器

字单元地址用它的低地址来表示计算机硬件技术基础2.3.1内存组成1.三级存储系统

计算机系统中,规模较大的存储器往往分成若干级,称为存储系统。内存储器(主存储器)外存储器(辅助存储器)高速缓冲存储器(Cache)

Cache通常在CPU的外部,80386以上的微处理器中为了进一步提高CPU的运行效率,在CPU的内部又设置了一个Cache。Cache对用户是透明的。CPU内部的Cache称为一级Cache(L1Cache)CPU外部的Cache称为二级Cache(L2Cache)计算机硬件技术基础2.3.1内存组成2.内存储器的的基本结构⑴存储体2k个存储单元(n位)组成,全部存储单元统一编号。⑵地址寄存器AR⑶地址译码器⑷数据寄存器DR⑸读/写电路⑹控制逻辑电路使内存在严格的时序逻辑中执行读或写操作。计算机硬件技术基础2.3.1内存组成3.内存的存储单元存储字:作为一个整体存入或取出的数称为存储字。存储单元:存放存储字或存储字节的内存空间。地址:存储单元的编号称为地址,地址和存储单元之间有一对一的对应关系。一个存储单元可能存放一个字,也可能存放一个字节,这是由计算机的结构确定的。存储单元是CPU对主存可访问操作的最小存储单位。字节编址:最小寻址单位是一个字节,相邻的存储单元地址指向相邻的存储字节。字编址:最小寻址单位是一个字,相邻的存储单元地址指向相邻的存储字。计算机硬件技术基础2.3.1内存组成10011111

1000H(1000H)=9FH00100110

1001H

00011110

1002H(1002H)=1EH11010111

1003H

(1000H)=269FH(1002H)=D71EH(1001H)=1E26H访问两次存储器(1001H)=26H(1003H)=D7H存储器计算机硬件技术基础2.3.1内存组成存储器的分段:20根地址线:地址范围00000H~FFFFFH机器字长16位:仅能表示地址范围0000H~FFFFH小段:每16个字节为一小段,共有64K个小段

小段的首地址

00000H~0000FH

00010H~0001FH

00020H~0002FH

FFFF0H~FFFFFH

段起始地址:小段首地址段的大小:64K范围内的任意字节计算机硬件技术基础2.3.1内存组成物理地址=16d段地址+偏移地址16位段地址16位偏移地址0000+20位物理地址物理地址:每个存储单元唯一的20位地址段地址:段起始地址的高16位

偏移地址:段内相对于段起始地址的偏移值(16位)

(有效地址EA)计算机硬件技术基础2.3.1内存组成存储器的逻辑分段:

存储器64K代码01500H42000H1CD00H0150H4200H1CD0H段寄存器CSDSSSES64K堆栈64K数据64K附加数据B0000HB000H计算机硬件技术基础2.3.1内存组成

存储器8K代码2K数据256堆栈02000H04800H04000H0200H0400H0480HCSDSSS例:(DS)=0400H,EA=1234H,

物理地址=16d(DS)+EA=05234H计算机硬件技术基础2.3.2内存的读写1.内存和CPU之间的连接2.CPU对内存的基本操作⑴读:地址→AB→AR、Read、等待MFC、(M)→DR→DB。⑵写:地址→AB→AR、数据→DB→DR、Write、等待MFC。同步内存存取和异步内存存取。异步内存存取:CPU和内存间没有统一的时钟,由MFC通知CPU内存工作已完成。同步内存存取:CPU和内存采用统一时钟,同步工作,不需要MFC。计算机硬件技术基础2.3.3典型微机的内存接口1.内存编址:最常用的编址方式是字节编址。字/双字/四倍字的地址是最低地址字节的地址。一个字存放在从偶数开始的两个地址中,称为规则存放(规则字);反之称为非规则存放(非规则字)。一个双字存放在从4的整倍数开始的四个地址中,称为规则双字,一个四倍字存放在从8的整倍数开始的八个地址中,称为规则四倍字。读写规则字/双字/四倍字只需一个总线周期,而读写非规则字/双字/四倍字则需要两个存储周期。2.内存接口数据总线一次能并行传送的位数,称为数据通路宽度。对于字节编址的内存来说,存在着一个内存与数据总线之间的宽度匹配和内存接口问题。计算机硬件技术基础2.3.4内存堆栈与堆栈操作1.堆栈结构堆栈是一种按特定顺序{“后进先出”(LIFO)或“先进后出”(FILO)}进行存取的存储区。一般在内存中划出一段区域来作堆栈,这种堆栈称为软堆栈。堆栈的大小可变,栈底固定,栈顶浮动,用一个专门的寄存器作为堆栈栈顶指针(SP)。在80X86中,堆栈的栈底地址大于栈顶地址。SP

堆栈常用来暂存一些重要的数据中断时的断点返回地址参数的传递计算机硬件技术基础2.3.4内存堆栈与堆栈操作2.堆栈操作:进栈堆栈指针SP的内容需要先自动减1,然后再将数据压入堆栈:

(SP)-1→SP修改栈指针

(A)→(SP)将A中的内容压入栈顶单元出栈先将堆栈中的数据弹出,然后SP的内容再自动加1:

((SP))→A将栈顶单元内容弹出送入A中

(SP)+1→SP修改栈指针

堆栈操作既不是在堆栈中移动它所存储的内容,也不是把已存储在栈中的内容从栈中抹掉,而是通过调整堆栈指针而给出新的栈顶位置,以便对位于栈顶位置的数据进行操作。计算机硬件技术基础2.3.4内存堆栈与堆栈操作8086微处理器的堆栈位置由堆栈寄存器SS和堆栈指针SP规定;栈操作都是字(16位)操作;数据的源/目的不能是立即数、目的不能为CS。进栈SP的内容先自动减2,然后将放在寄存器中的数据压入:①(SP)-1→SP,然后把高位字节送到SP所指的存储单元;②(SP)-1→SP,然后把低位字节送到SP所指的存储单元。出栈先将数据弹出至寄存器,然后SP的内容自动加2:①先将栈顶内容送入寄存器的低位字节(如AL),(SP)+1→SP;②再将栈顶内容送入寄存器的高位字节(如AH),(SP)+1→SP。计算机硬件技术基础2.3.4内存堆栈与堆栈操作PUSHAXPOPBX计算机硬件技术基础2.4.1指令系统简介指令是微处理器执行某种操作的命令,微处理器全部指令的集合称为指令系统。指令有两种书写格式:机器指令和符号指令。机器指令——指令的二进制数描述硬件只能识别机器指令,用机器指令书写的程序可以直接运行符号指令——用规定的助记符和规定的书写格式书写的指令与机器指令一一对应,需要翻译成机器指令才能运行10110MOVAL,1计算机硬件技术基础2.4.1指令系统简介1.指令的组成操作码字段(OP),用来指明操作的性质及功能。地址码字段(A),操作数的地址或直接给出操作数。机器语言:用二进制代码表示的指令,是唯一可以被CPU直接识别和执行的程序。汇编程序:赋予每条指令一种利于记忆的符号(助记符),用助记符指令编写的程序就是汇编程序。OPA操作码字段地址码字段计算机硬件技术基础2.4.1指令系统简介2.指令的操作码指令的操作码字段表明了所执行的操作。读出指令→经过译码→产生执行本指令操作所需的微操作控制信号,控制计算机的各部件完成规定的操作。指令系统中的每一条指令都有一个唯一确定的操作码。如果指令系统共有m条指令,指令中操作码字段的位数为N位,则有如下关系式:m≤2N;N≥log2m3.地址码结构对于一般的指令来说,除去操作码(OP)之外,指令还应包含以下信息:参加运算的操作数存放的地址;执行某种操作的结果存放的地址。指令地址码字段的结构又可以有三地址指令、二地址指令和一地址指令等几种。计算机硬件技术基础2.4.1指令系统简介4.指令的格式8086的指令通常由1~6个字节组成,指令的第一个字节或前两个字节存放指令的操作码和寻址方式。指令的第一个字节称为操作码字节其中高6位是操作码OP,用来指明指令执行的操作。第1位说明数据流动的方向第0位说明数据长度是字节还是字第二个字节称为模式字节高2位MOD域选择寻址类型及其是否存在位移量REG域(中间3位)和R/M域(低3位),表示寄存器的分配和内存寻址方式。操作码字节和模式字节后面跟着的字节,用来指明该内存操作数地址的位移量(8位或16位),或者直接给出操作数。计算机硬件技术基础2.4.1指令系统简介5.指令类型通常CPU的指令系统可以有上百条指令,按功能可以分成:⑴数据传送类指令⑵算术、逻辑运算类指令⑶程控类指令⑷输入/输出类指令

计算机硬件技术基础2.4.2指令的寻址方式每种CPU的指令系统都有自己的一套寻址方式与数据有关的寻址方式:寻找操作数的地址与转移地址有关的寻址方式:寻找指令的转移地址数据有关的寻址方式:以MOV指令为例:

立即寻址MOVAX,3069H寄存器寻址MOVAL,BH直接寻址MOVAX,[2000H]寄存器间接寻址MOVAX,[BX]寄存器相对寻址MOVAX,COUNT[SI]基址变址寻址MOVAX,[BP][DI]相对基址变址寻址MOVAX,MASK[BX][SI]计算机硬件技术基础2.4.2指令的寻址方式1.立即寻址立即寻址是将操作数直接传送给寄存器的一种寻址方式操作数紧跟在操作码之后,作为指令的一部分。立即数可以是字节(8位)、字(16位)、双字(32位),其低位字节放在低地址单元,高位字节放在高地址单元。例如:MOVAX,1234H低地址高地址操作码34H12H12HAX34H计算机硬件技术基础2.4.2指令的寻址方式2.寄存器寻址寄存器寻址是用于寄存器之间的数据传送,源和目的寄存器必须使用相同的位数。例如:

MOVAX,BXMOVAL,BHMOVAX,3064H*字节寄存器只有AHALBHBLCHCLDHDL*SRC和DST的字长一致MOVAH,BX*CS不能用MOV指令改变MOVCS,AX计算机硬件技术基础2.4.2指令的寻址方式3.内存寻址内存寻址是寄存器与内存之间传送数据操作数存放在代码段之外的存储区指令中给出的是存储单元地址或产生存储单元地址的有关信息。

X86系列处理器对内存采用分段式管理,程序员在指令中使用的是逻辑地址,逻辑地址由两部分组成——存储单元所在段的基地址:段内偏移地址(偏移量)段的基地址一般由操作系统将程序装入内存时设置,程序员在编程时主要使用段内偏移地址,段内偏移地址也称为有效地址(EA)MOVES:[3000H],ALES:称为段超越前缀(可选),指示处理器访问哪个逻辑段3000H为段内偏移地址(有效地址)计算机硬件技术基础2.4.2指令的寻址方式(1)直接寻址方式*——指令中的操作数部分直接给出操作数的有效地址EA,操作数可以是16位或32位整数,操作数默认在DS段中。MOVAX,[3000H]低地址高地址CS段操作码00H30H34H12H34H12HAXDS段5000053000DS50000300053000+计算机硬件技术基础2.4.2指令的寻址方式(2)寄存器间接寻址——EA在基址寄存器(BX/BP)或

变址寄存器(SI/DI)中

MOVAX,[BX]PA=16d(DS)+(BX)MOVAX,ES:[BX]PA=16d(ES)+(BX)MOVAX,[BP]PA=16d(SS)+(BP)*不允许使用AX、CX、DX存放EAMOVAX,[CX]*SRC和DST的字长一致

MOVDL,[BX];[BX]指示一个字节单元MOVDX,[BX];[BX]指示一个字单元*适于数组、字符串、表格的处理计算机硬件技术基础2.4.2指令的寻址方式低地址高地址CS段操作码34H12H34H12HAXSS段7000073000SS70000300073000+MOVAX,[BP]BP计算机硬件技术基础2.4.2指令的寻址方式(3)寄存器相对寻址方式*

例:MOVAX,COUNT[SI]或MOVAX,[COUNT+SI]假设(DS)=3000H,(SI)=2000H,COUNT=3000H,那么PA=35000H假设(35000H)=1234H,那么(AX)=1234H*适于数组、字符串、表格的处理

有效地址=(BX)(BP)8位(SI)16位(DI)+位移量计算机硬件技术基础2.4.2指令的寻址方式低地址高地址CS段操作码00H15H34H12H34H12HAXFS段7000073500BX150073500+MOVDX,[BX+1500]DS700002000计算机硬件技术基础2.4.2指令的寻址方式(4)基址变址寻址方式*

MOVAX,[BX][DI]

或MOVAX,[BX+DI]MOVAX,ES:[BX][SI]*适于数组、字符串、表格的处理*必须是一个基址寄存器和一个变址寄存器的组合MOVAX,[BX][BP]MOVAX,[SI][DI]有效地址=(BX)(SI)(BP)(DI)+计算机硬件技术基础+2.4.2指令的寻址方式例如:MOVCX,[BX][SI](DS)=2000H,(BX)=2000H(SI)=100H(22100H)=1357H物理地址=162000H+2000H+100H=22100H(CX)=1357HMOVCX,[BP+SI](SS)=3000H,(BP)=1000H(SI)=100H(31100H)=2468H物理地址=163000H+1000H+100H=31100H(CX)=2468H基址寄存器变址寄存器100H2000HSIBX2100H20000HDS22100H计算机硬件技术基础2.4.2指令的寻址方式⑸相对基址变址寻址默认的段:以BP寻址,段为堆栈段(段寄存器SS)。以BX寻址,段为数据段(段寄存器DS)。使用其它段时采用段超越有效地址是基址寄存器(BX或BP)和变址寄存器(SI或DI)+位移量。位移量可以为8位(-128~127)或16位(-32768~32767)。在80386以上的微处理器中,这种寻址方式适用于除ESP之外的任何两个扩展寄存器组合。

有效地址=(BX)(SI)8位(BP)(DI)16位++位移量计算机硬件技术基础2.4.2指令的寻址方式例如:MOVCX,ARRAY[BX][SI](DS)=2000H,(BX)=2000H(SI)=100H,ARRAY=10H(22110H)=1357H物理地址=162000H+2000H+100H+10H=22110H(CX)=1357HMOVCX,[ARRAY+BP+SI](SS)=3000H,(BP)=1000H(SI)=100H,ARRAY=10H(31110H)=2468H物理地址=163000H+1000H+100H+10H=31110H(CX)=2468H57H13H22110H68H24H31110H计算机硬件技术基础2.4.380X86指令系统举例1.数据传送指令包括一般传送指令MOV、堆栈指令PUSH和POP等。⑴MOV指令MOV目标操作数,源操作数1)源操作数可以是8/16/32位的立即数、寄存器操作数、内存操作数。目标操作数不允许为立即数,其余同源操作数。源、目不能同时为内存操作数。2)源、目操作数类型必须匹配MOVBYTEPTR[BX],12H3)不能向段寄存器写立即数MOVAX,2000MOVDS,AX4)以CS为目标的一切传送指令都是非法的寄存器reg

存储器mem段寄存器sreg,CS除外立即数data计算机硬件技术基础2.4.380X86指令系统举例⑵PUSH/POP指令以字为单位进行操作操作数不能为立即数POP指令不能是代码段寄存器(CS)2.算术运算指令包括加法、减法、乘法、除法、加1、减1、求补、比较等。大多数算术运算指令(除加1/减1指令)都具有两个操作数两个操作数不能都在内存中目的操作数不能为立即数乘法的乘数不能为立即数;被乘数必须在累加器(累加器:AL、AX或EAX);积在AX、DX,AX或EDX,EAX。除法的除数不能为立即数;被除数必须在在AX、DX,AX或EDX,EAX;高位寄存器是余数、低位寄存器是商。改变标志寄存器的CF(除加1/减1指令)、OF、ZF、SF、PF和AF标志位的值。计算机硬件技术基础2.4.380X86指令系统举例⑴加、减和比较指令ADD、ADC、SUB、SBBINC、DEC比较指令(CMP)是减法指令的一个特殊变化,仍是进行两数相减的运算,但结果不回送,即不保留“差”。⑵

乘法/除法指令乘法有符号的(IMUL)或无符号的(MUL)整数。乘法允许进行字节、字或双字运算,乘积可能产生双倍宽的数据。除法有符号的(IDIV)或无符号的(DIV)整数。除法也可以进行字节、字或双字运算。被除数总是双倍宽的数据。注意除法的溢出处理计算机硬件技术基础2.4.380X86指令系统举例标志位的含义:乘法无溢出,乘积的数据倍宽不变时OF=CF=0,否则OF=CF=1。其余无定义。除法无定义,除法溢出直接进入INT0其他算术运算指令无符号数运算产生溢出时,CF=1。带符号数运算产生溢出时,OF=1。运算结果为零时,ZF=1。运算结果为负时,SF=1。当运算结果中的1的个数为偶数时,PF=1。当操作数为BCD码、半字节出现进位时,AF=1。计算机硬件技术基础2.4.380X86指令系统举例⑶BCD运算和ASCII运算十进制运算调整指令(DAA)置于ADD或ADC指令之后,将加法运算的结果调整为BCD数的结果。由于DAA指令只作用于AL寄存器,因此这种加法每次只能做8位加法。十进制运算调整指令(DAS)置于SUB或SBB指令之后,将减法运算的结果调整为BCD数的结果。ASCII算术运算指令作用于ASCII码数字。AAA、AAM、AAS分别在加法、乘法、减法之后进行调整,AAD在除法之前进行调整。计算机硬件技术基础2.4.380X86指令系统举例3.基本逻辑指令与(AND)、或(OR)、异或(XOR)、非(NOT)和测试(TEST)指令允许进行字节、字或双字运算。其操作会影响到某些标志位。TEST指令实现AND的操作,但不改变目的操作数,仅仅影响标志寄存器的标志位。80386以上微处理器增加了位测试指令BT、BTC、BTR和BTS。测试以后,将测试结果装入进位标志位,后三条指令还会改变被测试位。NOT指令时对寄存器的值按位取反NEG则对寄存器的值求2的补码。计算机硬件技术基础2.4.380X86指令系统举例4.移位元与循环指令移位元指令分为:算术移位元指令SAL(左移)、SAR(右移),作用于带符号数。算术左移或右移一位,相当于对带符号数做乘以2或除以2的运算,逻辑移位元指令SHL(左移)、SHR(右移),作用于无符号数。计算机硬件技术基础2.4.380X86指令系统举例循环指令分为:小循环(不带进位循环),小循环左移(ROL)、小循环右移(ROR)。大循环(带进位循环),大循环左移(RCL)、大循环右移(RCR)。计算机硬件技术基础2.4.380X86指令系统举例5.程控指令用于控制程序的执行方向,使程序具有测试、分析与判断的能力。包括:转移控制指令、子程序调用和返回指令、中断控制指令等。⑴转移控制指令包括无条件转移指令、条件转移指令和程序循环指令。无条件转移指令(JMP)不受任何条件的

温馨提示

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

评论

0/150

提交评论