《天津大学微机原理复习 电信版》由会员分享,可在线阅读,更多相关《天津大学微机原理复习 电信版(20页珍藏版)》请在金锄头文库上搜索。
1、第一章冯式结构(计算器中心各器件功能)输入:将信息转换成机器能识别的形式储存器:存放数据和程序运算器:算术运算逻辑运算控制器:指挥程序运行输出:将结果转换成人们熟悉的形式计算机系统组成1.中央处理器CPU或称微处理器:中央处理器(CPU)由运算器和控制器组成。2.存储器:存放程序和数据。程序是计算机操作的依据,数据是计算机操作的对象。3.总线:地址总线AB 、数据总线DB 、控制总线CB4.输入/输出接口电路三总线数据总线DB (Data Bus)地址总线AB (Address Bus)控制总线CB (Control Bus)定点数表示方法小数点的位置固定在最低位的右边(表示整数)或者固定在次
2、最高位的左边(表示有符号的纯小数)。 n-bit定点数表示范围(补码):无符号数02n-1,有符号数-2n-12n-1-1浮点数表示方法形式:MBE(M尾数/有效数,B基数,E指数) 第二章EU BIU(功能)EU作用:负责指令执行,完成指令的操作BIU作用:根据EU的请求,执行CPU对存储器或I/O接口的总线操作寄存器数据寄存器AX(Accumulator Register)累加器一般用来存放参加运算的数据和结果,在乘、除法运算、I/O操作、BCD数运算中有不可替代的作用。BX(Base Register)基址寄存器除可作数据寄存器外,还可放内存的逻辑偏移地址,而AX,CX,DX则不能。CX
3、(Counter Register)将它称作计数寄存器,是因为它既可作数据寄存器,又可在串指令和移位指令中作计数用。DX(Data Register)DX除可作通用数据寄存器外,还在乘、除法运算、带符号数的扩展指令中有特殊用途。指针寄存器SP,BP:作地址指针,有效地址的偏移量 SP:堆栈指针BP:存放于堆栈段某数据区基址的偏移地址变址寄存器SI,DI :当前数据段中数据的偏移地址,使用时自动加1SI:指向源操作数DI:指向目的操作数指令指针寄存器IP是一个16位的专用寄存器。当BIU从内存中取出一条指令,自动修改IP,始终指向下一条将要执行的指令在现行代码段中的偏移量。 8086/8088中
4、的某些指令执行后会改变IP的内容,但用户不能编写指令直接改变IP 的内容。IP是指令地址在代码段内的偏移量(又称偏移地址),IP要与CS配合共同构成物理地址。状态标志寄存器 FF是一个16位的专用寄存器,其中6位状态位用于存放运算结果的特征,3位控制位用于控制CPU的操作 。状态位SF位:符号位(SF=1 负数;SF=0 正数)ZF位:零标志位(ZF=1 运算结果为0;ZF=0 运算结果不为0)CF位:进位标志位(CF=1最高位有进位/借位;CF=0最高位无进位/借位) AF位:辅助进位(AF=1 有进位;AF=0 无进位;辅助位表示低4位有无进位或借位)PF位:奇偶标志位(PF=1 运算结果
5、1的个数为偶数;PF=0 运算结果1的个数为奇数)OF位:溢出位(OF=1 有溢出;OF=0 无溢出)主要对带符号数 运算数值过大,侵占了符号位三个控制位DF:方向标志控制数据串操作指令的步进方向DF=1 减址方式(STD)DF=0 增址方式(CLD)IF:中断允许标志对可屏蔽中断IF=1 开中断(STI)IF=0 关中断(CLI)TF:陷阱标志程序调试TF=1 单步执行TF=0 连续正常执行总线周期CPU完成对存储器或I/O端口的一次访问所需的时间;8086一个基本的总线周期一般由4个时钟周期组成。读写周期时序读周期:T1:输出地址;T2:总线浮空、缓冲;T3 T4:从总线输入数据传送数据写
6、周期:T1:输出地址;T2 T4:把输出数据送到总线上。若存储器或外设速度慢,则向CPU发送READY无效信号,可在T3后插入一个或多个等待周期TW;就绪后,发READY有效信号,CPU自动脱离TW而进入T4状态。若一个总线周期后不执行下一个总线周期,即总线上无数据传输操作,系统总线处于空闲状态,此时执行空闲周期。8086储存格式规则字:从偶地址开始存放的字非规则字:从奇地址开始存放的字特点:规则字的存取在一个总线周期内即可完成非规则字的存取则需2个总线周期I/O端口组织8086系统和外部设备之间是通过I/O接口相互传输信息的。端口:I/O芯片上的一个或一组寄存器,一个I/O芯片上有若干个端口
7、。端口号(端口地址):为每个I/O端口分配的地址,具有惟一性。 微机I/O端口有两种编址方式(1)统一编址 (2)独立编址统一编址 又称“存储器映射方式”。在这种编址方式下 ,I/O端口地址置于存储器空间中,和存储单元统一编址。 优点:无需专门的I/O指令,对端口操作的指令类型多,从而简化了指令系统的设计。缺点:端口占用存储器的地址空间,使存储器容量更加紧张,同时端口指令的长度增加,执行时间较长,端口地址译码器较复杂。独立编址 又称“I/O映射方式”。将端口单独编址构成一个I/O空间,不占用存储器地址空间。 这就需要设置专门的输入(IN)、输出指令(OUT)对I/O端口进行操作。 优点:端口所
8、需的地址线较少,地址译码器较简单,采用专用的I/O指令,端口操作指令执行时间少,指令长度短 。缺点:输入输出指令类别少,一般只能进行传送操作。8086系统采用的是I/O独立编址方式。端口地址说明8086使用A15A0这16根地址线作为I/O端口地址线,可访问端口最多可达64K个8位端口或32K个16位端口。和存储器的字单元一样,对于奇地址的16位端口的访问,要进行两次操作才能完成。16位的I/O端口地址无需经过地址加法器产生,因而不使用段寄存器。从地址总线上发出的端口地址仍为20位,只不过最高四位A19A16为0。第三章指令的基本格式操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操
9、作,它是指令中不可缺少的组成部分操作数是指令执行的参与者,即各种操作的对象每种指令的操作码:用一个助记符表示(指令功能的英文缩写)对应着机器指令的一个或多个二进制编码指令中的操作数:可以是一个具体的数值可以是存放数据的寄存器或指明数据在主存位置的存储器地址寻址方式寻找指令中所需的操作数或操作数地址的方式称为寻址方式系统设计了多种操作数的来源直接给出所使用的操作数本身给出操作数所在的寄存器、存储器或I/O端口的地址给出操作数所在的寄存器、存储器或I/O端口的地址的计算方法。立即数寻址指令中的操作数直接存放在机器代码中,紧跟在操作码之后立即数可以是8位、16位或32位数值立即数寻址方式只允许源操作
10、数为立即数,目标操作数必须是寄存器或存储器不需要访问存储器,执行速度快Eg:MOV AX, 0102H ; AX0102H固定寻址指令中的操作数是CPU中某个固定寄存器,该寄存器被隐含于操作码中。不需要访问存储器,执行速度快寄存器寻址操作数存放在CPU的内部寄存器reg中:8位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器r16:AX、BX、CX、DX、SI、DI、BP、SP4个段寄存器seg:CS、DS、SS、ES无需访问存储器,执行速度快源操作数和目的操作数可同时使用寄存器寻址Eg:MOV AX, BX ; AXBX储存器寻址操作数在主存储器中,用主存地址表示程序设
11、计时,8086采用逻辑地址表示主存地址段地址在默认的或用段超越前缀指定的段寄存器中指令中只需给出操作数的偏移地址8086设计了多种存储器寻址方式1、 直接寻址方式直接寻址方式的有效地址在指令中直接给出默认的段地址在DS段寄存器,可使用段超越前缀改变用中括号包含有效地址,表示取该存储单元的内容Eg: MOV AX, 2000H; AXDS:2000HMOV AX, ES:2000H ; AXES:2000H2、 寄存器间接寻址方式有效地址存放在基址寄存器BX或变址寄存器SI、DI中,默认的段地址在DS段寄存器,可使用段超越前缀改变Eg:MOV AX, BX; AXDS:BX 如果指令中指定的寄存
12、器是BP,则操作数在堆栈段SS中: MOV BP, AX假设 (SS)= 1000H, (BP)=3000H, (AX)=1234H 物理地址=(SS)*16+(BP)3、 寄存器相对寻址方式有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变Eg:MOV AX, 06HSI 或 MOV AX, SI 06H4、 基址变址寻址方式有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;
13、可用段超越前缀改变5、 相对基址变址寻址方式有效地址是基址寄存器(BX/BP)、变址寄存器(SI/DI)与一个8位或16位位移量之和段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变6、 串寻址串寻址方式仅在8086的串指令中使用根据设定的方向标志(DF),SI和DI会自动调整。I/O(输入/输出)端口寻址(1) 直接端口寻址为双字节指令,可寻址的端口数为0255可有字和字节两种使用方式(2) 寄存器间接端口寻址为单字节指令端口地址放在DX中,地址为0000HFFFFH可有字和字节两种使用方式8086指令系统包括6大类133条基本指令(1) 数据传送类指令通用
14、数据传送指令 MOV PUSH POP XCHG传送指令MOV(move)格式:MOV DST, SRC操作:DST(SRC)即把源操作数的内容送入目的操作数说明:可以进行8位或16位数据的传送源操作数可为立即数、寄存器、存储器操作数目的操作数可为寄存器、存储器操作数MOV指令立即数传送以字母开头的常数要有前导0MOV指令通用寄存器传送寄存器具有明确的字节和字类型MOV指令段寄存器传送对段寄存器的操作不灵活非法指令(1) 两个操作数类型不一致在绝大多数双操作数指令中,目的操作数和源操作数必须具有一致的数据类型,或者同为字量,或者同为字节量,否则为非法指令非法指令(2) 无法确定是字节量还是字量操作当无法通过任一个操作数确定操作类型时,需要利用汇编语言的操作符显式指明非法指令(3)两个操作数都是存储器非法指令(4)违反对段寄存器操作的限制不允许在段寄存器之间直接传送数据MOV DS, ES;非法指令不允许向段寄存器送立即数MOV DS, 100H;非法指令不允许用CS或IP作为目的操作数MOV CS, SI;非法指令非法指令(5)立即数作为目的操作数交换指令XCHG(exchange)功能:把两个地方的数据进行互换