




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微型计算机原理第一章微型计算机基础知识第二章微型计算机组成及微处理器功能结构第三章80X86寻址方式和指令系统第四章汇编语言程序设计第六章半导体存储器及接口第八章中断和异常第九章输入/输出方法及常用的接口电路微型计算机原理第一章微型计算机基础知识1第一章微型计算机基础知识
常用数据类型数学协处理器的数据格式第一章微型计算机基础知识
常用数据类型21.1.1数据在内存储器中的存储方式字节:8个二进制位.一个字节也叫做一个存储单元.地址:对内存中存储单元的编号.从0开始直到CPU能支持的最高地址.字:相邻两个字节存放一个数.16位.双字:相邻四个字节存放一个数.32位.
多字节数据的存储采取高位字节在高地址的原则.数据所在地址是低字节所在的地址.1.1.1数据在内存储器中的存储方式字节:8个二进制位.一3多字节数据的存储情况例如字1234和双字3C5D7E9F的存储地址地址m+2m+1mm-1××××××××12343C5D7E9Fm+4m+3m+2m+1mm-1(a)字的存储(b)双字的存储多字节数据的存储情况例如字1234和双字3C5D7E9F的存41.1.2数的进位制表示约定二进制:数的后面加后缀B.十进制:数的后面加后缀D或不加.十六进制:数的后面加后缀H.
1.1.2数的进位制表示约定二进制:数的后面加后缀B.51.1.3整数1.无符号数8、16、32位全部用来表示数值本身。最低位LSB是0位,最高位MSB是7、15、31。2.带符号整数1).原码:设X=+1011100B,Y=-1011100B
此时X和Y被称为真值.则[X]原=01011100,[Y]原=11011100
而[+0]原=00000000,[-0]原=10000000综上述[X]原={XX为正2n-1-XX为负1.1.3整数1.无符号数[X]原={X62).补码和反码举一实例:3点钟-7小时=8时
3点钟+5小时=8时即:3-7=3+5为什么?答:时钟是以12为模,5是-7的补码.
在计算机中采用补码主要原因有二,一是可以将减法变成加法来运算.二是补码的符号位可以参加运算.
计算机中是用2n为模—2补码.[X]补=2n+X2).补码和反码举一实例:3点钟-7小时=8时[X]补=2n7若以2n-1为模的补码称1补码反码[X]反=2n-1+X根据上面的公式得:X为正时:[X]反=[X]补=[X]原X为负时:求[X]补是将[X]原的符号位不变,其余各位变反加1.
求[X]反是将[X]原的符号位不变,其余各位变反.若以2n-1为模的补码称1补码反码[X]反=2n-18补码没有+0和-0之分;反码有+0和-0之分
[+0]补=00…..00=0[-0]补=00…..00=0
[+0]反=00…..00=0[-0]反=00…..00=111…..11例如:X=+1010011B
[X]反=[X]补=[X]原=01010011X=-1010011B[X]原=11010011[X]补=10101101[X]反=10101100补码没有+0和-0之分;反码有+0和-0之分[+093).移码针对补码不易比较大小的缺点而出现了移码
[X]移=2n-1
-1+XX>-2n-1
且X<=2n-12n-1-1为偏移量例如:X=+10010B=+18,Y=-10010B=-18[X]移=26-1
-1+X=011111+010010=110001B[Y]移=26-1
-1+Y=011111-010010=001101B3).移码针对补码不易比较大小的缺点而出现了移码103.带符号数的运算原码:类似于正负数的笔算优点:直观.
缺点:减法过程非常繁锁.
适用:浮点数的有效数字.
二进制乘除法.补码:优点:符号位和数值一起运算;
减法可以变成加法运算.
缺点:数值比较大小时易出错.
适用:加减法的运算中.3.带符号数的运算原码:类似于正负数的笔算11运算公式:[x+y]补=[x]补+[+y]补
其中:|x|,|y|,|x+y|<2n-1
[-y]补=[y]变补[y]变补就是将[y]补连同符号位一起各位变反加1.反码:常用在求反逻辑运算中,其它运算不用.移码:优点:能很方便的比较出真值的大小.
适用:A/D和D/A转换器的双极性编码.
浮点数的阶码中.运算公式:[x+y]补=[x]补+[+y]补其中:|x|,124.无符号数运算(补码运算)
[x]补+[+y]补=[x+y]补
其中:x、y及(x+y)<2n加法:最高位没有进位.就有正确结果,并为正.减法:1).若x>=y,[x]补+[-y]补最高位有进位,结果为正.[x-y]补=[x-y]原
2).若x<y,[x]补+[-y]补最高位无进位,结果为负.将[x-y]补再求一次补前边加上负号就得到x-y的真值.4.无符号数运算(补码运算)[x]补+[+y]补=[13例1.1用补码运算:①129-79②79-129解:①.设x=129,y=79则
[x]补=10000001B,[y]补=01001111B[-y]补=[y]变补=10110001B[x-y]补=[x]补+[-y]补=00110010B最高位有进位,结果为正[x-y]补=[x-y]原=00110010Bx-y=50②.设x=79,y=129则
[x]补=01001111B,[y]补=10000001B[-y]补=[y]变补=01111111B[x-y]补=[x]补+[-y]补=11001110B最高位无进位,结果为负x-y=-50例1.1用补码运算:①129-79②79-129解:①.14
总结:对于无符号数和有符号数的补码运算,计算机运算的方法都是一样的.只是结果判断正负的方法不同.无符号数.加法:结果必为正.只要不溢出(最高位没有进位)结果就是正确的.减法:补码运算结果有进位结果为正.否则为负.有符号数.加减法结果看符号位.是否溢出用下述方法判别.
总结:对于无符号数和有符号数的补码运算,计算机运算的方法都155.有符号数加减运算溢出判别
采用双高位判别法.在计算机内设置两个进位位分别是:CS:表示符号位向前进位情况.如有进位CS=1,否则CS=0.CP:表示数值部分最高位向符号进位情况,如有进位CP=1,
否则CP=0.
分析:CSCP溢出情况
00无溢出
01正溢出
10负溢出
11无溢出5.有符号数加减运算溢出判别采用双高位判别法.在计16例1.201011010B+90
+01101011B+10711000101B197CS=0CP=1是正溢出例1.310010010B[-110]补
+10100100B[-92]补
100110110BCS=1CP=0是负溢出例1.400101101B+45+00101101B+4501011010B+90CS=0CP=0无溢出例1.201011010B+9017例1.511111110B[-2]补+11111110B[-2]补
111111100B[-4]补
CS=1CP=1无溢出例1.610001011B[-117]补
+01111001B+121100000100B+4CS=1CP=1无溢出,结果为正
11110100B[-12]+00001001B+911111101B[-3]CS=0CP=0无溢出,结果为负例1.511111110B[-2]补186.算术移位
对寄存器和存储器中的数,左移一位,绝对值增大一倍.右移一位绝对值减少一半.(只要没把有效数值移出).1).对于正数,左移或右移,空位都补0
例00001110B+14
左移一位00011100B+28
右移一位00000111B+72).补码表示的负数左移低位补0,右移高位补1.
例11110010B[-14]补左移一位11100100B[-28]补右移一位11111001B[-7]补6.算术移位对寄存器和存储器中的数,左移193).反码表示的负数
左移和右移空位全补1.
例11110001B[-14]补左移一位11100011B[-28]补右移一位11111000B[-7]补7.有关0的问题
原码和反码都+0和-0之分,而补码没有,补码中的表示-128(8位机)
下面用例题说明这一点:3).反码表示的负数左移和右移空位全补1.20例1.7[-128]补=10000000B,下面运算正确-6411000000B+)-64+11000000B-128110000000B[-128]补符号位进位丢失
-12810000000B+)+12701111111B-111111111B[-1]补例1.8若误认为[-0]补=10000000B,运算便会出错:-010000000+)+1+00000001+110000001[-127]补≠+1出错
例1.7[-128]补=10000000B,下面运算211.1.4字符串字符串是存储器中相邻存储单元字符序列.80386对字符串的操作有:移动;传送;比较;查找等.分类:字节串;字串;双字串.1.1.4字符串字符串是存储器中相邻存储单元字符序列.221.1.5位及位串80x86CPU都支持位操作.80386/80486有位串操作.位串最长是232个位.位偏移量:一个位在位串中的地址.由字节地址和位余数组成.设位串是从m地址开始存储的,位偏移量分别为23和-18的位在什么地方?23/8=2…7在第m+2字节中的第7位.-18/8=3…6在第m-3字节中的第6位.
mm-1m+1m+2m-207…..1.1.5位及位串80x86CPU都支持位操作.80386231.1.6BCD码及ASCⅡ码1.十进制数的二进制编码
1).8421码
2).2421码
3).余3码见P9表1.22.ASCII码
1)7位的ASCⅡ码.2)8位的ASCⅡ码.见P10表1.33.奇偶校验码奇校验:编码“1”的个数为奇数,校验位置“0”
否则校验位置“1”.缺点:双重差错是无法校验出来的.1.1.6BCD码及ASCⅡ码1.十进制数的二进制编码241.2
数学协处理器的数据格式80387支持的数据类型1.2数学协处理器的数据格式80387支持的数据类型251.2.1整型数80387支持长整型数,而80386支持字节整型数.
1.2.2BCD码压缩BCD码占80位,即10个字节.能存储20位BCD数,但在80387中只用了18位BCD数.余下1个字节的最高位为符号位.其余7位不用.最高位是符号位7位不用1.2.1整型数80387支持长整型数,而80386支持字261.2.3实型数任何一个二进制数可以表示成:N=+Y×2J
称为浮点表示法80387规定:指数采用移码表示。短型实数阶码占8位;长型实数阶码占11位。临时实数阶码占15位。短型实数和长型实数的尾数中的1和小数点均隐藏。临时实数小数点前的1不省略。作业:P372.5.6.9.10.14
阅读引论.1.2.3实型数任何一个二进制数可以表示成:27第二章微型计算机组成及
微处理器功能结构2.1微型计算机的组成及工作原理2.28086/8088及80286微处理器2.380386微处理器的功能结构2.480486微处理器的功能结构2.5Pentium级微处理器简介第二章微型计算机组成及
微处理282.1
微型计算机的组成及工作原理微型计算机的组成:CPU存储器I./O接口I/O设备控制总线地址总线数据总线2.1微型计算机的组成及工作原理微型计算机的组成:CPU存292.1.1微处理器(CPU)
组成:控制器;运算器;寄存器组成。控制器是由指令寄存器;指令译码器;
控制电路组成。
指令:是一组二进制编码信息,包括操作码和操作数或操作数地址2.1.2
存储器
组成:内存储器是由半导体存储器芯片组成。
读/写操作:称为CPU访存操作.读就是取.写就是送(存).读操作原存储单元内容不变,写操作原存储单元内容被改写.2.1.1微处理器(CPU)组成:控制器;运算器;寄302.1.3
输入/输出设备及其接口电路输入设备:将程序、原始数据及现场信息以计算机能识别的形式送到计算机中,供计算机自动计算或处理。(键盘鼠标数字化仪扫描仪
A/D等)输出设备:将计算机处理的结果以人能识别的形式输出来。(显示器打印机绘图仪D/A等)外部存储器:软.硬磁盘即是输入设备也是输出设备.
只读光盘是输入设备.接口电路:是CPU与I/O设备联系的必经之路.起信息统一和联系作用.2.1.3输入/输出设备及其接口电路输入设备:将程序、原始312.1.4
总线
总线是具有逻辑控制功能的信号线.1.数据总线(DB):
在CPU,内存和接口之间传递指令和数据.是双向的.总线宽度(总线中信号线的条数)有8位、16位、32位、64位。2.地址总线(AB):
用于传送CPU要访问的存储单元或I/O接口的地址号.是单向的。3.控制总线(CB):
用于CPU向其它部件传送控制信号,其它部件向CPU传送状态信号及请求信号。2.1.4总线总线是具有逻辑控制功能的信号线.322.1.5
微型计算机整机工作原理简述人程序计算机的内存指令指针控制部件译码器指令队列经DB各执行部件结果输出转移指令修改指令指针.2.1.5微型计算机整机工作原理简述人程序332.28086/8088及80286微处理器的功能结构
属Intel公司生产的第三代16位微处理器.新增功能:总线加宽一倍,增加了流水执行部件和总线接口分为两个独立部件.
并行工作.(a)串行处理BIUEU(b)流水处理2.28086/8088及80286微处理器的功能结构342.2.18086/8088CPU的功能结构1.8086/8088CPU的内部结构16数据及操作数指令码多路复用地址/数据总线8086:16位8088:8位EUBIU8086/8088CPU的结构框图2.2.18086/8088CPU的功能结构1.8086/35数据寄存器指针和变址寄存器AHALBHBLCHCLDHDLSPBPSIDIAXBXCXDX暂存寄存器ALU标志寄存器FREU控制器ALU数据总线(16位)指令队列缓冲器123456总线控制逻辑8086总线地址加法器CSDSSSESIP内部暂存器AB(20位)执行部件(EU)总线接口部件(BIU)DB(16位)(8位)
图2-38086CPU的内部功能结构框图队列总线数据寄存器指针AHALSPAX暂存寄存器ALU标志36D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0位号CFPFAFZFSFTFIFDFOF标志寄存器
图2-38086CPU标志寄存器D15D14D13D12D1372.指令流队列
是一个先进先出的栈,6/4个指令字节.总线周期:CPU访问一次存储器或I/O端口所需时间.3.存储器的分段结构和物理地址的形成
物理地址:每个存储单元的实际地址编码.8086/808820位地址总线1MB空间分段结构:1MB可分若干段,大小根据需要而定.每段不超过64KB
段首地址:段的启始地址称段首地址,要求低4位为0.
段基址:段首地址的高16位.
地址偏移量:段内相对于段首址的地址.2.指令流队列是一个先进先出的栈,6/4个指令字节.38内存储器单元地址的两种表示方法:逻辑地址
段基址:偏移量物理地址
物理地址=段基址x10H+偏移量内存储器单元地址的两种表示方法:逻辑地址392.2.280286的功能结构1.CPU主要性能:集成了13.5万只晶体管;68个引脚;四列直插式封装;地址/数据总线分开(16位数据线,24位地址线);时钟频率为8MHz—10MHz;增加存储器管理和保护机构.
工作方式:1)实地址方式.2)虚地址方式.
配80287数学协处理器.2.2.280286的功能结构1.CPU主要性能:集成了1402.80286CPU的内部结构
地址部件执行部件总线接口指令部件已译码指令24162416地址数据80286CPU的结构框图物理偏移量和数据存储器操作数请求2.80286CPU的内部结构411).总线接口部件BIU:
负责处理CPU和系统总线之间的所有通信和数
据传输.2).指令部件IU:
从预取队列取出指令字节到指令译码器,译成
69位内部码送已译码指令队列.3).执行部件EU:
由ALU;FR;控制电路组成.完成指令的执行操作.4).地址部件AU:
实地址方式:与8086一样.
保护方式:AU必须做许可性检查和当前任务的段限制检查.1).总线接口部件BIU:
负责处理CPU和系统总线之422.3
80386微处理器的功能结构主要性能指标:
32位;132条引脚;网络阵列式封装;32条地址线;12.5MHz及16MHz.
具有段页式存储器管理部件,4级保护机构.
有两种芯片:80386SX(准32位机)和80386DX.工作方式:1).实地址方式
2).虚地址保护方式:每段长4GB;可寻实地址4GB;寻虚地址64TB最多可用16K个段.3).虚拟8086方式:实地址方式的同时,利用虚拟保护机构运行多用户操作系统及程序.2.380386微处理器的功能结构主要性能指标:432.3.180386CPU的功能结构
分段部件分页部件总线接口部件指令预取指令译码器执行部件80386功能结构框图2.3.180386CPU的功能结构441.总线接口部件
主要用于将CPU与外部总线连接起来.CPU内部的其它部件都能与BIU直接通信,并将它们的总线请求传给BIU.2.指令预取部件
当BIU空闲时,预取队列有空单元或有转移时,便通过分页部件向BIU发指令预取请求.3.指令译码部件从指令预取队列中取出指令码译成内码送已译码指令队列.
以上三部分构成了指令流水线.
1.总线接口部件主要用于将CPU与外部总线连接起来.C454.执行部件
从已译码队列取来内码变成一系列控制信息发向其它部件完成指令的执行.5.分段部件
将逻辑地址转换成线性地址.送分页部件.6.分页部件在操作系统软件的控制下,若分页部件处于允许状态,便将分段部件或代码预取部件产生的线性地址转换成物理地址.
分段部件,分页部件和BIU构成地址流水线4.执行部件从已译码队列取来内码变成一系列控制信息发462.3.280386CPU的寄存器1.通用寄存器:(共4个)主要用来存放操作数或操作数地址的。
ALAHEAXAX16位寄存器名称8位寄存器名称32位寄存器名称EBX;ECX;EDX与EAX同样结构.分别含有16寄存器BX;CX;DX和8位寄存器BH;CH;DH.BL;CL;DLEAX:累加器EBX:基址寄存器ECX:计数器EDX:数据寄存器2.3.280386CPU的寄存器1.通用寄存器:(共4个472.变址寄存器(共2个)
源变址SIDI目的变址EDIESI在串操作中分别用于存放源串和目的串的偏移地址.也可以存放32位和16位操作数.2.变址寄存器(共2个)源变址SIDI目的变址EDIE483.指针寄存器(共3个)基地址指针EBPBPESPSPEIPIP堆栈指针指令指针EBP和ESP是用于存放堆栈区偏移地址.EIP与代码段寄存器CS一起指出下一条要被执行的指令的地址.它不能由程序员直接访问.3.指针寄存器(共3个)基地址指针EBPBPESPSPEIP49堆栈:是一组寄存器或一个存储区.堆栈的用途:在调用子程序或中断时存放断点数据的.子程序的嵌套堆栈:是一组寄存器或一个存储区.堆栈的用途:在调用子程序或中50堆栈的工作原理:
存储器高地址存储器低地址64K段POPs向上压缩堆栈PUSHes向下增长堆栈SSSP当前堆栈顶堆栈“底”(SP初值)8086堆栈形式堆栈的工作原理:514.段寄存器段描述符寄存器段寄存器:(共6个,16位)
数据段寄存器DS:存放数据段的段基址.
堆栈段寄存器SS:存放堆栈段的段基址.
代码段寄存器CS:存放代码段的段基址.
附加段寄存器ES;FS;GS:存放当前附加段段基址.段描述符寄存器:64位,一个段选择器对应一个段描述符寄存器.4.段寄存器段描述符寄存器段寄存器:(共6个,16位)525.标志寄存器EFLAGS(32位)由处理器保留虚拟8086方式标志调整恢复标志状态标志进位标志奇偶标志辅助进位标志零标志符号标志溢出标志保护方式嵌套任务I/O特权水平控制标志陷阱标志中断允许标志方向标志5.标志寄存器EFLAGS(32位)由处理器保留虚拟8086531).状态标志:保存ALU运算结果的特殊信息.CF:有进位(借位)置“1”,否则置“0”.PF:算术逻辑运算结果低8位中“1”的个数为偶置“1”,否则置“0”.AF:ALU加法运算时结果的第3位向第4位有进位(借位)置“1”,否则置“0”.ZF:ALU的结果为全零置“1”,否则置“0”.SF:ALU的结果最高位是“1”,表示负数置“1”,否则置“0”.OF:有符号加(减)结果产生溢出时置“1”,否则置“0”.Cs㋤Cp=1时溢出.1).状态标志:保存ALU运算结果的特殊信息.CF:有进位(54判别两个带符号数a与b的大小(a-b)OF
㋤SF=1说明a<b否则说明a≥b以上6个标志位与8086/808880286完全兼容.CF;ZF;SF;OF支持8位;16位;32位运算.PF:只反映低8位中“1”的个数.AF:只反映第3位向第4位进位或借位情况.判别两个带符号数a与b的大小(a-b)OF㋤SF=1说明552).控制标志:(共7个)可用程序来置位或清零,
具有一定的控制能力TF:陷阱标志(单步操作标志)TF=1时,CPU每执行完一条指令,就去执行服务程序,向用户提供各寄存器状况等.用于程序调试.IF:中断允许标志,IF=1时可接受并响应可屏蔽中断.DF:方向标志,指定字符串处理指令的步进方向.DF=1时是减地址,DF=0时是增地址.
以上3个标志位与8086/808880286兼容.2).控制标志:(共7个)可用程序来置位或清零,
56IOPL:输入/输出特权级标志,有四种状态.00最高特权;11最低特权.当前特权级高于或等于IOPL所表示的特权级I/O指令可以执行.否则产生一个保护异常.NT:嵌套任务标志,用于控制返回指令的运行.NT=1当前任务正嵌套在另一任务之中.返回操作通过任务切换来执行.即不同任务之间的返回.NT=0时是同一任务的返回.
以上两个标志只在保护方式有效,8086仿真方式(实方式)下无效.IOPL:输入/输出特权级标志,有四种状态.57RF:重新启动标志(调整恢复标志)RF=0时,调试故障被接受并应答.RF=1时,调试故障被忽略.VM:虚拟8086方式标志,VM=1时CPU在虚拟8086方式下运行,VM=0时CPU在一般方式下运行.
以上两个标志是80386新增的控制标志.RF:重新启动标志(调整恢复标志)586.控制寄存器(4个32位)CR0:43210
311615允许保护监控协处理器仿真协处理器任务转换处理机扩展允许分页1).PE:允许保护标志,用于CPU是否进入保护方式,PE=1进入保护方式.若想解除,只有通过系统复位重新启动.系统默认是实地址方式.6.控制寄存器(4个32位)CR0:432592).MP:监控数学协处理器扩充标志,用来表示协处理器是否存在.MP=1时表示协处理器存在.MP=0时协处理器不存在.3).EM:仿真协处理器扩充标志,用来表示是否用软件来仿真数学协处理器.EM=1时表示采用软件仿真数学协处理器的功能.4).TS:任务转换标志,由硬件置位,由软件复位.当一个任务转换完成后,TS自动置“1”.下一条企图使用数学协处理器的指令将产生一个“无数学协处理器”的异常.
以上4个系统标志与80286兼容.2).MP:监控数学协处理器扩充标志,用来表示协处理器是否存605).ET:扩充类型标志,表示系统中所使用的
数学协处理器的类型.ET=1时表示系
统内使用的是80387.否则表示系统
使用的是80287或没有协处理器.当
EM=1时,ET无效.6).PG:允许分页标志,表示CPU是否允许对存储器线性地址进行分页.并进行物理地址转换.PG=1时允许分页,分页部件将线性地址转换成物理址.PG=0
时禁止分页,线性地址直接当作物理地址.5).ET:扩充类型标志,表示系统中所使用的
数61CR1:是未定义的控制寄存器,待CPU升级时
用.CR2:页故障线性地址寄存器,保存最后出现页故障的全32位线性地址,以便当产生页故障时用来报告错误信息.CR3:页目录基址寄存器,保存页目录表的物理基地址.CR1:是未定义的控制寄存器,待CPU升级时
用.C627.系统地址寄存器:(共4个)4732位线性基地址1615界限
0GDTRTDTRTRLDTR1).GDTR:全局描述符表寄存器.48位.保存全局描述符表的32位线性基地址和16位界限.2).IDTR:中断描述符表寄存器.48位.保存中断描述符表的32位线性基地址和16位界限.7.系统地址寄存器:(共4个)4732位线性基633).LDTR:局部描述符表寄存器.16位.保存当前任务的局部描述符表的16位选择符.4).TR:任务状态寄存器.16位.保存当前任务的任务状态段的16位选择符.8.调试寄存器(共8个,32位)
DR0DR1DR2DR3DR4DR5DR6DR73).LDTR:局部描述符表寄存器.16位.保存当前任务的局649.测试寄存器(共2个.32位)TR6:测试命令寄存器.存放命令.TR7:数据寄存器.保存对旁视缓冲器测试时的状态数据.
程序员可在芯片加电后,测试分页部件中转换旁视缓冲器TLB的操作是否正确.9.测试寄存器(共2个.32位)TR6:测试命令寄存器.存放652.480486微处理器的功能结构主要性能指标:32位;120万个晶体管;168条引线;网络阵列式封装;32条地址线;寻址4GB实;64TB虚;25MHz和33MHz;80486DX达50MHz—60MHz.CPU,协处理器及cache集成在一个芯片上,工作速度加快.还具有外部高速缓冲存储器.9个处理部件,并行流水,对大多数指令以一个时钟周期一条指令的速度持续执行.2.480486微处理器的功能结构主要性能指标:66整数部件分段部件分页部件Cache部件预取部件指令译码部件控制部件浮点部件总线接口部件地址总线数据总线硬件的微指令指令字80486CPU框图整数部件分段部件分页部件Cache部件预取部件指令译码部件控672.4.1总线接口部件
负责与处理器外部总线的连接。与80386不同的是BIU只与Cache和指令预取部件交换数据。其它访存请求都要经过Cache。2.4.2
高速缓冲存储部件
用于管理芯片上8KB高速缓冲RAM.所有总线请求先到这里.如命中,则不产生总线周期.如未命中,BIU一次从内存取16B送高速缓存行填充.
写通:在高缓中找到目标修改写回存储器.2.4.1总线接口部件负责与处理器外部总线的连接。682.4.3代码预取部件
只要总线空闲时,预取部件向BIU发请求.一次取16B的代码送32B的预取队列.
如Cache能命中,则不产生总线周期.
当遇到转移,中断,子程序调用时预取队列清空.2.4.4
指令译码部件
从预取队列取机器码转换成各处理部件的控制信号.译码分两步:取操作数和译码同时进行.没有已译码队列.2.4.3代码预取部件只要总线空闲时,预取部692.4.5控制部件
对整数部件,浮点部件和分段部件进行控制.使它们完成已译码指令的执行.2.4.6
整数部件
完成整数的传输,加,减运算和逻辑运算.
有4个32位通用寄存器;2个32位变址寄存器;2个32位指针寄存器;64位桶形移位器;ALU;EFLAGS.2.4.5控制部件对整数部件,浮点部件和分702.4.7分段部件和分页部件
一起构成存储器管理.
分页部件:完成虚拟存储器管理,将线性地址转换成物理地址.分段部件:将部件逻辑地址转换成线性地址.并用高速缓存提高速度.2.4.8
浮点部件与外部协处理器的功能完全一样.80486SX需配80487SX等效80486DX.2.4.7分段部件和分页部件一起构成存储器管712.5Pentium级微处理器简介2.5.1Pentium微处理器第5代微处理器.1993年Intel公司推出.0.35um工艺;金属配线;双级CMOS技术;310万个晶体管;数据总线64位;地址总线36位;60MHz66MHz目前已有133MHz166MHz;
超标量流水技术,多个执行单元,一个指令周期内执行多条指令.两条超标量流水线U和V,各自有地址生成逻辑,算术逻辑部件及数据高速缓存.(V流水不能执行浮点)2.5Pentium级微处理器简介2.5.1Pentiu722.5.2PentiumPro微处理器1996年推出;0.35um工艺;4层金属配线;CMOS技术;5.5百万个晶体管;3条超标量流水线;3个并行译码器;5个执行单元;2个一级8KB高速缓冲存储器(数据和指令各一个);200MHz250MHz;1个二及高速缓冲存储器(界于一级高缓和内存之间);8个整数通用寄存器;8个浮点数通用寄存器;还增加了40个通用寄存器.2.5.2PentiumPro微处理器199732.5.3MMXPentium微处理器(多能奔腾)
芯片管脚与Pentium相兼容.增加视频信号,音频信号的处理功能和速度.内部高缓比Pentium增加一倍.指令和数据高缓都是16KB的.适用于便携式电脑.2.5.4PentiumII微处理器第6代微处理器.1997年推出.266MHz—451MHz;功耗低;广泛用于商业领域.
作业:P695、6
思考:2、3
2.5.3MMXPentium微处理器(多能奔腾)74第三章80X86寻址方式与指令系统3.1计算机指令格式3.2指令长度与字长的关系3.380x86指令寻址方式3.48086/8088指令系统3.580x86寻址方式及新增指令第三章80X86寻址方式与指令系统3.1计算机指令格式753.1
计算机指令格式1.零地址指令
格式:
指令中只给出操作码,没有显地址.有几种可能:1).无操作数的指令.(空操作;CPU控制)2).操作数是隐含约定的.(栈操作;串操作;累加器操作)OP3.1计算机指令格式1.零地址指令OP762.一地址指令
格式:
一地址指令有两种常见的形态,根据操作码含义确定它是哪一种.
1).只有目的操作数的单操作数指令(加1;减1;取补;取反)2).隐含约定目的地址的双操作数指令(乘;除等)
OPD2.一地址指令格式:OPD773.二地址指令格式:功能:(D1)OP(D2)D1二地址指令是最常用的.4.三地址指令格式:功能(D2)OP(D3)D1OPD1D2OPD1D2D33.二地址指令格式:OPD1D2OPD1D2D3783.2指令长度与字长的关系
指令位数多,信息多,功能强.但存储空间大,取指时间长.所以目前都采用变字长指令格式.能短则短,需长则长.8086/8088变字长指令格式:指令长1~6个字节.80286指令长:1~10字节.80386指令长:1~15字节.3.2指令长度与字长的关系指令位数多,信息多793.380x86指令(编码)格式与寻址方式3.3.1
8086/8088/80286指令编码格式opcodemodregr/mdispdata
8086/8088不同字长的指令格式类型如下:opcodeopcodemodopcodemoddata/dispopcodemoddata/disp(低)data/disp(高)opcodemoddisp(低)disp(高)dataopcodemoddisp(低)disp(高)data(低)data(高)
3.380x86指令(编码)格式与寻址方式3.3.18080操作码和寻址方式字节格式如下:
操作码字节寻址方式字节D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D01.操作码字节:W=0操作数均是8位,字节操作.W=1操作数均是16位,字操作.
D=0reg域指定源操作数.D=1reg域指定目的操作数.2.寻址方式字节:指出第二操作数的存放地址,
寻求EA的方法.操作码和寻址方式字节格式如下:操作码字节寻址方式字节81reg域:确定一个寄存器.(3位)reg域:确定一个寄存器.(3位)82Mod域:说明是寄存器寻址还是存储器寻址.r/m域:mod=11时是寄存器寻址,指出第二操作数所在的寄存器号.mod=00、01、10时是存储器寻址,指出如何求得操作数的有效地址。Mod域:说明是寄存器寻址还是存储器寻址.r/m域:mod=83mod与r/m域所组合的寻址方式mod与r/m域所组合的寻址方式84例3.1写出指令MOV[BX+DI-6],CL
的机器
语言编码MOV指令操作码:100010D:0(源操作数)W:0(8位,字节操作)reg:001(CL)mod:01r/m:001disp8:-6的补码为指令编码:1000100001001写成十六进制:88H、49H、FAH例3.1写出指令MOV[BX+DI-6],CL的机器85例3.2写出MOVAH,[BX+DI+50H]
的机器语
言编码.MOV的操作码:100010D:1W:0mod:01reg:100r/m:001指令编码:1000101001100写成十六进制:8AH、61H、50H例3.3写出ADDAX,[BX+DI+0826H]
的机器语言编码.
0000001110
写成十六进制:03H、81H、26H、08H例3.2写出MOVAH,[BX+DI+50H]的机器863.3.28086/8088的寻址方式操作数存在的地方有:寄存器;存储器;指令字节中;I/O端口.目的操作数:用指令的执行结果替换掉的操作数.源操作数:指令执行过程中保持原值不变.1.操作数的寻址方式
8086/8088有7种寻址方式.
1).立即数寻址方式操作数(8位或16位)是指令码中的组成部分.例:MOVAL,80H3.3.28086/8088的寻址方式操作数存在的地方有:87立即数:只能是源操作数;
只能是整数或字符,若是字符加引号;
16进制的立即数以字母开头时前边要
加“0”.且低8位跟在操作码后面,高8位
在其后.
例如:MOVCX,0B3CAH
MOVAL,25
MOVBX,“AB”
MOVAH,‘C’
立即数:只能是源操作数;
只能是整数或字符,若882).寄存器寻址方式
操作数存放在CPU内的通用寄存器或段寄存器中.在指令中给出寄存器的地址(寄存器的名字)例如:INCCXMOVAX,CXMOVDS,AX3).直接寻址方式操作数存放在存储单元中,该单元的有效地址在指令中直接给出.不特指,默认段寄存器是DS.2).寄存器寻址方式操作数存放在CPU内的通用寄存89例如:MOVAL,[1064H]源操作数的物理地址(DS)×10H+1064H数据段YY代码段操作码64H10HAXIPCSDSmmmmnnnnhhhhnnnn0
+mmmm
ppppm
ppppm
ppppm+1
ppppm+2
hhhh0
+1064
gggg4
gggg4
注:符号地址和数值地址问题例如:MOVAL,[1064H]源操作数的物理地址(DS)904).寄存器间接寻址方式
操作数存放在存储单元中,该单元的有效地址存放在指令中的寄存器(BX;BP或SI;DI)里.用BP间址隐含段寄存器是SS.
例如:MOVCH,[SI]MOVAX,[BX]5).寄存器相对寻址操作数存放在存储单元中,该单元的在效地址等于指令中给出的基址或变址寄存器的内容和一个带符号的8位或16位的位移量之和.用BP间址隐含段寄存器是SS.
例如:MOVAX,[BX+1234H]MOVAL,[BP-10H]4).寄存器间接寻址方式操作数存放在存储单元中,该单元916).基址加变址寻址方式
操作数存放在存储单元中,该单元的有效地址等于基址寄存器的内容加变址寄存器的内容.BP间址隐含段寄存器是SS.EA=(BX)/(BP)+(SI)/(DI)
例如:MOVAX,[BX+SI]MOVAX,[BP+SI]MOVES:[BX+DI],AX6).基址加变址寻址方式操作数存放在存储单元中,该单927).相对的基址和变址寻址方式操作数存放在存储单元中,该单元的有效地址等于基址寄存器的内容加变址寄存器的内容再加上指令中给出的8位或16位位移量.BP间址隐含段寄存器是SS.EA=(BX)/(BP)+(SI)/(DI)+disp8/disp16
例如:ANDDL,[BX+SI+20H]MOVSS:[BX+SI+100H],BX7).相对的基址和变址寻址方式93若I/O端口不是与内存统一编址,I/O端口有两种寻址方式1).直接端口寻址方式指令中直接给出由8位地址码表示的端口地址号.
例如:INAL,21H2).间接端口寻址方式端口地址用16位表示,并固定存储在DX寄存器中.
例如:OUTDX,AL若I/O端口不是与内存统一编址,I/O端口有两种寻址方式1)942.程序转移地址的寻址方式1).段内直接(相对)寻址方式转移的地址是当前的IP内容和指令规定的8位或16位位移量之和.8位是短程转移;16位是近程转移.2).段内间接寻址方式转移的地址存放在寄存器或存储单元中.
用它来更新IP的内容.2.程序转移地址的寻址方式1).段内直接(相对)寻址方式953).段间直接寻址方式
指令中直接给出16位的段地址和16位偏移量地址,用来更新CS和IP的内容.4).段间间接寻址方式根据指令中给出的寻址方式,找到内存相应的单元连续两个字,低位字地址单元替换IP的内容.高位字地址单元替换CS的内容.作业:P11813).段间直接寻址方式指令中直接给出16位的段地963.48086/8088指令系统学习指令的注意事项指令的功能——该指令能够实现何种操作。通常指令助记符就是指令功能的英文单词或其缩写形式指令支持的寻址方式——该指令中的操作数可以采用何种寻址方式指令对标志的影响——该指令执行后是否对各个标志位有影响,以及如何影响其他方面——该指令其他需要特别注意的地方,如指令执行时的约定设置、必须预置的参数、隐含使用的寄存器等3.48086/8088指令系统学习指令的注意事项973.4.1数据传送类指令数据传送是计算机中最基本、最重要的一种操作传送指令也是最常使用的一类指令传送指令把数据从一个位置传送到另一个位置除标志寄存器传送指令外,均不影响标志位重点掌握MOVXCHGXLATPUSHPOPLEA3.4.1数据传送类指令数据传送是计算机中最基本、最重要的981.通用数据传送指令
1).基本传送指令MOV格式:MOVDEST,SRC功能:DEST(SRC)
即将源地址的内容(源操作数)传送到目的地址中.传送指令执行完后源操作数保持不变.
说明:1)标志寄存器内容不变.2)两操作数位数应相同.(字节或字)3)其它规则见下图.
1.通用数据传送指令1).基本传送指令MOV99MOV指令的传送规定段寄存器DSESSSCS立即数通用寄存器存储器MOV指令的传送规定段寄存器CS立即数通用存储器100非法传送种种两个操作数的类型不一致例如源操作数是字节,而目的操作数是字;或相反两个操作数不能都是存储器传送指令很灵活,但主存之间的直接传送却不允许段寄存器的操作有一些限制段寄存器属专用寄存器,对他们的操作能力有限非法传送种种两个操作数的类型不一致1012).堆栈操作指令压栈:用压栈指令PUSH可以将通用寄存器、段寄存器或字存储单元内容压入堆栈。例如:PUSHAX;将AX内容送入栈顶字单元中压栈指令执行分两步进行:①.(SP)-2SP;②.操作数[SP];①后SP②AHALXXXXSP内存SS增地址方向2).堆栈操作指令压栈:用压栈指令PUSH可以将通用寄存器、102出栈:用弹出指令POP可以将当前栈顶字单元内容取出送到通用寄存器、段寄存器或字存储单元中。例如:POPAX;将栈顶字单元内容送到AX中出栈指令分两步进行:①.((SP))寄存器/字单元.②.(SP)+2SP内存SSSP②后SP增地址方向XXXXAHALXXXX出栈:用弹出指令POP可以将当前栈顶字单元内容取出送到通用寄1033).交换指令指令格式:XCHGDEST,SRC功能:(DEST)(SEC),即将源地址的内容(源操作数)与目的地址的内容(目的操作数)相互交换.
说明:1).标志寄存器内容不变.2).所交换的数据可以是字节或字.3).数据交换只能在通用寄存器之间或通用寄存器存储单元之间进行.AXBXCXDXSIDIBPSP
存储器3).交换指令指令格式:XCHGDEST,SRCAXB1042.累加器专用传送指令1)输入指令直接寻址:0〜255个端口地址号.
格式:INAX,portINAL,port
功能:将来自端口地址号是port的数据送到累加器中.间接寻址:可寻64K个端口地址号.
格式:INAX,DXINAL,DX
功能:将来自DX内的端口地址号的数据送到累加器中.2.累加器专用传送指令1)输入指令1052)输出指令直接寻址:0〜255个端口地址号.
格式:OUTport,AXOUTport,AL
功能:将累加器的内容送到port端口地址.间接寻址:可以64K个端口地址号.
格式:OUTDX,AXOUTDX,AL
功能:将累加器的内容送到DX所指的端口地址.说明:输入输出指令都不改变标志寄存器.2)输出指令106换码指令执行前:在主存建立一个字节量表格,内含要转换成的目的代码表格首地址存放于BX,AL存放相对表格首地址的位移量换码指令执行后:将AL寄存器的内容转换为目标代码3).换码指令XLAT将BX指定的缓冲区中、AL指定的位移处的一个字节数据取出赋给ALXLAT ;al←ds:[bx+al]换码指令执行前:3).换码指令XLAT将BX指定的缓冲区中107例代码转换movbx,100hmoval,03hxlat
换码指令没有显式的操作数,但使用了BX和AL;因为换码指令使用了隐含寻址方式——采用默认操作数例代码转换movbx,100h换码指令没有显式的操1083.地址传送指令1).取有效地址指令
格式:LEAREG,MEM
功能:取源操作数(变量、标号、地址表达式)地址的EA送目的操作数地址(通用寄存器).
说明:该指令不改变标志寄存器.
例如:LEAAX,[DI+10]
设(DI)=0500H该指令执行后
(AX)=050AH3.地址传送指令1).取有效地址指令1092).地址指针装入DS指令
格式:LDSREG,MEM
功能:将源操作数有效地址所对应的双字长的内存单元中的高字内容送入DS,低字内容送入指令中指定的寄存器.3).地址指针装入ES指令
格式:LESREG,MEM
功能:将源操作数有效地址所对应的双字长的内存单元中的高字内容送入ES,低字内容送入指令中指定的寄存器.以上两条指令均不影响标志寄存器.2).地址指针装入DS指令1104.标志传送指令1).标志装入AH指令
格式:LAHF
功能:将标志寄存器中的低8位传送到AH中.
说明:该指令不影响标志位.2)设置标志指令
格式:SAHF
功能:将AH的内容传送至标志寄存器的低8
位.
说明:该指令改变标志寄存器的低8位.即以下标志位:CFPFAFZFSF4.标志传送指令1).标志装入AH指令1113).标志压入堆栈指令
格式:PUSHF
功能:将标志寄存器的内容压入堆栈.
说明:该指令不影响标志寄存器.4).标志弹出堆栈指令
格式:POPF
功能:从堆栈中弹出一个字送标志寄存器.
说明:该指令影响标志寄存器的所有标志位.3).标志压入堆栈指令格式:PUSHF1123.4.2算术运算指令四则运算是计算机经常进行的一种操作。算术运算指令实现二进制(和十进制)数据的四则运算请注意算术运算类指令对标志的影响掌握:ADD/ADC/INC、SUB/SBB/DEC/NEG/CMP熟悉:MUL/IMUL、DIV/IDIV理解:CBW/CWD、DAA/DAS、AAA/AAS/AAM/AAD3.4.2算术运算指令四则运算是计算机经常进行的一种操作。1131.加法指令1).加法指令
格式:ADDDEST,SRC
功能:DEST(SRC)+(DEST),并根据结果设置标志寄存器的OFSFZFAFPFCF.
说明:两操作数均可以存放在通用寄存器或存储单元中.源操作数还可以是立即数.但不能同时为存储器操作数.1.加法指令1).加法指令114例3.4设(AL)=3AH,则执行ADDAL,7CH后,(AL)=?.各标志位如何?
解:
+0111110010110110B6HALCF=0PF=0AF=1ZF=0SF=1OF=1
例3.4设(AL)=3AH,则执行ADDAL,7CH后,1152).带进位加指令
格式:ADCDEST,SRC
功能:DEST(SRC)+(DEST)+CF
并根据结果设置标志位CFPFAFZFSFOF.
说明:该指令常用于多字节运算.3).加1指令
格式:INCDEST
功能:DEST(DEST)+1
并根据结果设置标志位PFAFZFSFOF 但不影响CF.2).带进位加指令格式:ADCDEST,SRC1162.减法指令1).不带借位的减法指令
格式:SUBDEST,SRC
功能:DEST(DEST)-(SRC)
并根据结果设置标志位CFPFAFZFSFOF.
说明:两操作数的要求与ADD指令一样.例3.5S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据交换中的网络协议解析试题及答案
- 公共财政政策的方向与挑战试题及答案
- 解析西方国家的危机治理与政策响应研究试题及答案
- 国家与社会的关系在西方政治中的表现试题及答案
- 如何选择适合的参考书籍试题及答案
- 网络工程师考试备考全景回顾与2025年试题与答案
- 未来西方政治制度与公共财务管理的探讨试题及答案
- 西方国家外交政策的伦理基础试题及答案
- 软件设计师市场定位试题及答案
- 软件设计师考试如何正确使用工具与试题与答案
- 2025届江苏省南师附中高考数学考前最后一卷预测卷含解析
- 审计沟通课件
- 糖尿病低血糖的预防处理
- 医疗器械监督管理条例培训2024
- 咨询类合同合同范例
- 2024年全国黄金行业职业技能竞赛(矿山救护工)理论考试题库(含答案)
- 刑法总论:刑事法治的中国特色智慧树知到答案2024年湘潭大学
- 钢琴调律服务合同
- 爱国英雄霍去病历史人物介绍
- DZ/T 0430-2023 固体矿产资源储量核实报告编写规范(正式版)
- 冠心病合并房颤患者PCI术后抗栓治疗策略
评论
0/150
提交评论