2023年微机原理复习笔记.doc
1. 辨析三个概念:微解决器、微型计算机、微型计算机系统微解决器:MP是指由一片或几片大规模集成电路组成的具有运算器和控制器功能的中央解决器部件,又称为微解决机。微型计算机: MC,是指以微解决器为核心, 配上存储器、 输入输出接口电路及系统总线所组成的计算机(又称主机或微电脑)。微型计算机系统(主机+外设+软件配置)MCS,是指以微型计算机为中心, 以相应的外围设备、电源和辅助电路(统称硬件) 以及指挥微型计算机工作的系统软件所构成的系统。 2. 计算机从诞生至今已经历了四代: 电子管计算机 晶体管计算机 集成电路计算机 大规模、超大规模集成电路计算机3. 4位或低档8位微解决器 Intel 4004或8008CPU 中高档8位微解决器 Intel 8080 CPU 16位高档微解决器 Intel 8086、80286 32位高档微解决器 Intel 80386、80486 64位高档微解决器 Intel 80586(Pentium)、Power PC4. 总线分为三种: 地址总线 AD:单向,由CPU发出到存储器或I/O端口。 数据总线 DB: 双向,由CPU送出或送往CPU。 控制总线 CB:整体双向,个体单向,传送方向固定。5. 微解决器由运算器(又称算术逻辑单元(ALU))、控制器(CU)、和寄存器阵列(RA)三部分组成6. 控制器涉及: 指令寄存器IR 指令译码器ID 可编程逻辑阵列PLA7. 内部寄存器: 程序计数器PC 地址寄存器AR 数据缓冲寄存器DR 指令寄存器IR 累加器A 标志寄存器FLAGS8. 冯·诺依曼首计算机基本设计思想为 以二进制形式表达指令和数据。(电子数字计算机) 程序和数据事先存放在存储器中,计算机在工作时可以自动地、高速地从存储器中取出指令并加以执行。 由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机系统。9.8086cup内部结构 由两部分组成:总线接口单元BIU; 执行单元EU.(1).总线接口单元BIU 组成: 4个16位的段寄存器(CS、DS、ES、SS); 1个16位的指令指针寄存器IP;1个20位的地址加法器; 1个指令队列缓冲器(长度为6个字节); I/O控制电路(总线控制电路);1个与EU通信的内部寄存器。BIU的功能:根据EU的请求负责CPU与内存或I/O端口传送指令或数据。 BIU从内存取指令送到指令队列 当EU执行指令时,BIU要配合EU从指定的内存单元或I/O端口中读取数据,或者把EU的操作结果送到指定的内存单元或I/O端口去。(2)执行单元Eu 组成:16位的ALU(算术逻辑单元); 通用寄存器组 AX,BX,CX,DX(4个数据寄存器)BP(基址指针寄存器) SP(堆栈指针寄存器)SI(源变址寄存器)DI(目的变址寄存器) 数据暂存寄存器 标志寄存器FLAGS EU控制电路作用:负责执行指令,执行的指令从BIU的指令队列中取得;运算结果和所需数据,则由EU向BIU发出请求,经总线访问内存或I/O端口进行存取。10物理地址与逻辑地址有什么区别?答:逻辑地址是指未定位之前在程序中存在的地址,由段地址和偏移地址组成。物理地址是实际访问存储器时的地址(通过20位地址总线传递)。存储单元的逻辑地址不是唯一的,一个存储单元只有唯一的一个物理地址,但可以有一个或多个逻辑地址;5CF进位标志,运算结果有进(借)位,CF=1AF辅助进位标志,低4位向前有进(借)位,AF=1ZF零标志,结果为0, ZF=1SF符号标志,最高位的值OF溢出标志,双高位判别法拟定PF奇/偶标志,运算结果低8位中1的个数为偶数个,PF=1控制标志:控制解决器的某一特定功能。IF可屏蔽中断允许标志,若STI将IF=1表达允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求信号;由CLI将IF清0;该状态对非可屏蔽中断及内部中断没有影响;DF方向标志,CLD将DF=0串操作按增地址方式进行;STD将DF=1,串操作按减地址方式进行;TF跟踪(陷阱)标志(TF=1,单步工作方式;否则正常执行程序);4.地址总线A19A1可同时对高、低位库的存储单元寻址,A0和BHE用于对库的选择。 当A00时,只访问偶地址存储体,读写低字节信息;当BHE0时,奇 高 ;当两者均为0时,则同时访问两个存储体,读写一个字的信息。同为1则无操作;5在什么情况下8086的执行单元(EU)才需要等待总线接口单元(BIU)提取指令?答:EU在执行完转移、调用(涉及子程序调用和中断调用)和返回指令时,因指令的执行顺序发生跳转,本来预取到指令队列中的指令将不再执行,需清空指令队列缓冲器。在此情况下,EU才需要等待BIU从新的地址重新开始提取指令。6存储器为什么要分段(段加偏移)?答:1.8086有1M的存储空间,有20根地址线,而CPU的指令指针和堆栈指针都是16位的,只能直接寻址64KB的地址空间,为了能寻址1MB的空间,需要把存储器分为若干段。2存储器的分段的机制允许重定位,由于段寄存器里的段地址可以由程序来重新设定,因而使得程序和数据不需要进行任何修改,就能使他们重定位。71)段地址:段寄存器的内容,出现在汇编后的机器指令中。2)段基址:段地址左移4位后形成的20位段起始地址。88086CPU系统中为什么要用地址锁存器?8086CPU由于引脚数量少,其地址总线采用了分时复用的双重总线,仅在总线周期的T l 时钟周期输出地址信号, 而在整个总线周期中地址信号需保持不变,这就需用地址锁存器将T1周期发出的地址信号锁存起来以在整个总线周期中都能使用,为此8086CPU在T 1 周期提供地址锁存允许信号ALE(正脉冲),用ALE的下降沿将地址信息锁存在地址锁存器中(3分) 共需3片73LS373芯片用作地址锁存器,锁存信息A 19 A 0 和 BHE9.8086的最大工作模式和最小工作模式的区别?答:最小工作方式即单解决器系统方式;在此方式下,所有控制信号由CPU自身提供,它适合于较小规模的应用。CPU工作于最大工作方式时,系统的控制信号由8288总线控制其提供,通常,在最大方式系统中一般包含两个或多个解决器。10什么叫重定位:重定位是指一个完整的程序块或数据块可以在存储器所允许的空间内任意浮动并定位到一个新的可寻址的区域。118086指令系统的特点:8086与8088的指令系统由8位的80808085指令系统扩展而来的,同时又能在其后续的80x86系列的CPU上对的运营。其重要特点是: (1) 采用可变长指令,指令格式比较复杂。(2) 寻址方式灵活多样,解决数据的能力比较强。(3) 有反复指令和乘、除运算指令。扩充了条件转移、移位/循环指令。(4) 为加强软件中断功能和支持多解决器系统的工作,增设了有关的指令。12总线周期概念:总线周期通常是指微解决器完毕一次访存或I/O端口操作所需的时间。在80868088中,一个最基本的总线周期由4个时钟周期组成, 分别称为4个状态,即T、T、T与T这4个状态。· T状态:CPU往多路复用总线上发送地址信息,以选中所要寻址的存储单元或外设端口的地址。· T状态:CPU从总线上撤消地址,并使总线的低16位浮置成高阻状态,为传送数据做准备。· T状态,多路总线的高4位继续提供状态信息,而其低16位(对8088 CPU则为低8位)上将出现由CPU写出的数据或者CPU从存储器或端口读入的数据。· 说明: 若访问设备未准备好,则CPU会在T3之后自动插入1个或多个附加的时钟周期Tw,这个Tw就叫等待状态(CPU在每个总线周期的T3状态开始对READY信号采样。)· T状态:CPU采样数据总线,完毕本次读/写操作, 总线周期结束。(要对INTR信号进行采样)· 说明:只有BIU与内存或I/O端口互换数据,以及填充指令队列时,BIU才执行总线周期。除此之外,既不需要填充指令队列,EU也没有向BIU发出总线周期请求时,系统总线就处在空闲状态,进入空闲周期,空闲周期由一个或几个Ti状态组成。13RESET:复位后,标志寄存器与指令队列缓冲器的原有信息被清除,IP与DS、SS和ES也被清零,而CS被置为FFFFH。当RESET信号变为低电平时,CPU就从FFFF0H开始执行程序。在程序执行时,RESET线保持低电平。14对存放的字,若低位字节从奇数地址开始存放,为非规则字;反之,为规则字。读一个规则字需要访问一次存储器,一个总线周期,读一个非规则字需要访问两次存储器,两个总线周期。当存放的是双字形式(这种数一般作为指针),其低位字是被寻址地址的偏移量;高位字则是被寻址地址所在的段地址。15.每个IO接口都有一个或几个端口。在微机系统中每个端口分派一个地址号,称为端口地址。一个端口通常为I/O接口电路内部的一个寄存器或一组寄存器。当CPU与偶地址的IO设备实现16位数据的存取操作时,可在一个总线周期内完毕;当CPU与奇地址的IO设备实现16位数据的存取操作时,要占用两个总线周期才干完毕。操作数有立即数操作数、寄存器操作数、存储器操作数、IO操作数、16. 8086/8088指令的分类 8086/8088的指令按功能可分为6大类:数据传送、算术运算、逻辑运算、串操作、程序控制和CPU控制数据传送指令(细提成4类) · 通用数据传送指令 MOV、PUSH、POP、XCHG、XLAT · 目的地址传送指令 LEA、LDS、LES · 标志位传送指令 LAHF、SAHF、PUSHF、POPF · I/O数据传送指令 IN、OUT传送指令: MOV DST, SRC 执行操作:(DST) ¬ (SRC) 说明:可实现一个字节或字的传送注意: * DST、SRC 不能同时为段寄存器 * 立即数不能直接送段寄存器 MOV DS, 2023H * DST 不能是立即数和CS * DST、SRC 不能同时为存储器寻址 * 不影响标志位压入堆栈指令: PUSH SRC “先移后入”,先SP-2,SP始终指向堆顶,然后将操作数压入(SP)+1:(SP))中,操作数可以是通用寄存器,段寄存器或者某种寻址方式所指向的存储单元;弹出堆栈指令:POP dst “先出后移” (SP)+1:(SP))给dst,后SP-2,dst可以是存储器,通用寄存器或段寄存器(不能是CS),不能是立即数。注意: 堆栈操作必须以字(16位)为单位 不影响标志位 不能用立即寻址方式PUSH 1234H 并非局限在栈顶操作 MOV AX,BPSI互换指令: XCHG OPR1, OPR2执行操作: (OPR1) « (OPR2)注意: 不影响标志位 不允许使用段寄存器 不能在存储器单元之间互换换码指令:XLAT 或XLAT OPR(通过查表实现)执行操作:(AL) ¬ ( (BX) + (AL) )例:MOV BX, OFFSET TABLE ; (BX)=0040H(表预先建立在内存) MOV AL, 3 ;索引值 XLAT TABLE指令执行后 (AL)=30H注意* 不影响标志位* 字节表格(长度不超过256字节) 首地址 ® (BX)* 需转换的代码位移量 ® (AL)· 目的地址传送指令 取有效地址指令: LEA REG, SRC执行操作: (REG16位通用寄存器) ¬ SRC(存储器操作数)将一个近地址指针写入到指定的寄存器。把源操作数的EA即16位偏移地址送到寄存器。 指针送寄存器和DS指令: LDS REG, SRC执行操作: (REG)¬(SRC) (DS) ¬ (SRC+2) 相继二字 ® 寄存器、DS 指针送寄存器和ES指令: LES REG, SRC 执行操作: (REG) ¬ (SRC) (ES) ¬ (SRC+2) 相继二字 ® 寄存器、ES 注意: * 不影响标志位 * REG 不能是段寄存器 * SRC 必须为存储器寻址方式· 标志位传送指令* 影响标志位 标志送AH指令: LAHF 执行操作: (AH) ¬ (FLAGS的低字节) AH送标志寄存器指令: SAHF *(置位/复位) 执行操作: (FLAGS的低字节) ¬ (AH) 标志进栈指令:PUSHF(转子/中断调用)执行操作:(SP)¬ (SP) 2 ( (SP)+1, (SP) ) ¬ (FLAGS)标志出栈指令: POPF * (转子/中断调用) 执行操作:(FLAGS) ¬( (SP)+1, (SP) ) (SP) ¬ (SP) + 2二、 算术运算类指令(共20条指令)· 加法指令 ADD dst,src(dst=dst+src不带进位加法指令,影响所有6位状态标志位,目的操作数可以是寄存器或存储器,源操作数可以是寄存器或存储器或立即数,两者不能同时为存储器,段寄存器不能参与加减乘除法,操作对象可以是8位或16位)、ADC(带进位加法指令,dst=dst+src+CF,重要用于多字节数据的加法,其它与ADD同)、INC dst(加1指令,对CF无影响,dst可以是寄存器或存储器,不能是立即数或段寄存器,字节操作或字操作)· 减法指令SUB dst,src(不带借位,dst=dst-src,目的操作数可以是寄存器或存储器,源操作数可以是立即数,存储器,寄存器,不允许两个存储器操作数相减,可以字相减,字节相减)、SBB(带借位dst=dst-src-CF,用于多字节减法)、DEC(减1指令,不影响CF,其它与加1同)、NEG(求补指令,dst=0-dst,操作数可以是寄存器或存储器,可以对8位或16位求补,可得到负数的绝对值,)、CMP dst,src(比较指令,dst-src,不送回dst,dst可以是寄存器或存储器,src可以是立即数,寄存器或存储器,但不能同时为存储器,可以字比较,字节比较,两个相等ZF=1,比较两个无符号数时,前者小于后者CF=1,)· 乘法指令 MUL、IMUL · 除法指令 DIV、IDIV、CBW、CWD 串传送指令MOVS (字符串传送指令)执行 REP MOVS 之前,应先做好(初始化工作):(1)源串首地址(末地址) SI(2)目的串首地址(末地址) DI(3)串长度 CX(最大64KB)(4)建立方向标志( CLD 使 DF=0,STD 使 DF=1 ) 一个串传送的例子:data segment mess1 db personal_computer;字符数组data endsextra segment mess2 db 17 dup (?)extra endscode segment mov ax, data ;不能:mov ds, data (×) movds,ax ;立即数不能直接送段寄存器 movax, extra ;不能:lea ds, data (×) mov es, ax ;用于取变量的有效地址 lea si, mess1 ;源串首地址 lea di, mess2 ;目的串首地址 mov cx, 17 ;串长度 cld ;建立方向标志 (CLD使 DF=0,STD 使 DF=1) rep movsb ;串传送 code ends例(续):把 附加段 中的 10 个字节缓冲区置为 20Hlea di, mess2mov al, 20Hmov cx, 10cldrep stosb比较例3.66中两串是否完全相同,若两串相同,则BX寄存器内容为0;若两串不同,则BX指向源串中第1个不相同字节的地址,且该字节的内容保存在AL寄存器中。CLD MOV CX,100 MOV SI,2500H MOV DI,1400H REPE CPMSB ;串比较,直到ZF=0或CX=0 JZ EQQ ;两串相同,置BX为0 DEC SI ;将指针修改回第1个不相同字节处 MOV BX,SI MOV AL,SI JMP STOP ;必须跳转,否则仍继续执行EQQEQQ: MOV BX,0STOP:HLT例:试比较两个无符号数80H和79H,则用下面的指令,即 MOV AL,80HCMP AL,79HJA ABOVE例:试比较两个有符号数80H和79H,则用下面的指令,即 MOV AL,80HCMP AL,79HJG GREATER串传送指令STOS 将累加器AL或AX的值送传到内存缓冲区的某个位置上,对状态标志没有影响,若加上前缀REP,则操作一直反复进行下去直到CX=0;19.8086汇编语句的种类:(3种):指令语句,伪指令语句,宏指令语句说明:关系运算的结果是一个常数(布尔值)。关系成立,结果为0FFFFH,否则,为0。28 在指令中引用$时,$就表达该指令首地址,与$自身所指向单元无关。 比如指令:JNZ $+6该指令的转移地址是JNZ指令的首地址加上6。当然,$+6必须是某一条指令的首地址,这样才干达成对的转移的目的补充题:为什么I/O接口芯片的地址线A0要和8086系统总线的A1相连?参考答案要点:1)在8086系统中,数据总线为16位,而I/O接口芯片只有8条数据引线。因此,应让CPU和I/O接口芯片之间的数据传输通过数据总线的低8位进行。2)将地址总线的A1和I/O接口芯片的A0端相连,A0浮空,从CPU的角度看,是用两个相邻的偶地址来作为I/O接口芯片的端口地址,同时仍满足接口内部对一奇一偶两个相邻端口地址的规定,从而可以保证用数据总线的低8位和I/O接口芯片互换数据。3)这样的连接方式也和8088系统运用8位数据总线进行传输保持兼容。1.IO接口的作用: 总线隔离作用,大多数外设不能直接和CPU的数据总线相连,要借助与接口电路使外设与总线隔离,起缓冲、暂存数据的作用,使主机和外设协调一致的工作。 速度匹配作用 信号变换作用2.I/O接口的基本结构(接口与端口)接口(Interface):介与主机和外设之间的缓冲电路。端口(Port):接口中可以进行寻址读写的寄存器,简称口。一个接口往往具有几个端口,CPU通过输入输出指令向这些端口取或存信息。端口重要有三类:一类为状态口,一类为命令口(或控制口),一类是数据口。通过输入输出指令可以从数据端口与外设互换数据。因此说,计算机主机与外设之间互换信息都是通过接口中的端口来实现的。4.微机系统中,I/O端口的编址方式分为统一编址和独立编址两大类。在Intel 80x86系列微机中,采用独立编址方式。5. CPU通过接口与外设之间数据传送的方式,一般有三种:程序控制的输入输出方式(这种传送方式又分为无条件传送和有条件传送)、程序中断的输入输出方式和直接存储器存取方式。 6中断的定义 计算机在执行正常程序过程中,当出现某种异常事件或某种外部请求时,解决器就暂停执行当前的程序,而转去执行对异常事件或某种外部请求的解决操作。当解决完毕后,CPU再返回到被暂停执行的程序,继续执行,这个过程称为程序中断。7.中断嵌套 CPU在执行低档别中断服务程序时,又收到较高级别的中断请求,CPU暂停执行低档别中断服务程序,转去解决这个高级别的中断,解决完后再返回低档别中断服务程序,这个过程称为中断嵌套8. 中断向量表 中断向量表是存放中断向量的一个特定的内存区域。所谓中断向量,就是中断服务子程序的入口地址。对于8086/8088系统,所有中断服务子程序的入口地址都存放在中断向量表中。 9. 8259A的功能 8259A是用于管理和控制外部中断请求,实现中断优先级鉴定,提供中断类型号,屏蔽中断输入等功能。单片8259A可管理8个中断,若采用级联方式,最多可用9片8259A构成两级中断机构,管理64个中断。8253的工作过程(1) 由CPU向控制寄存器写入控制字,以拟定工作方式;(2) 由CPU向计数器寄存器写入计数初值或定期常数;(3) 计数单元从计数器寄存器中获得初值,在CLK端输入的计数脉冲控制下进行减1计数(CLK决定计数速率);(4) 减到0时,该状态由OUT输出或由状态寄存器的某一位表达,以作为中断请求信号或供查询方式使用,也可将OUT 连到一个I/O设备上,去启动一个I/O操作;(5) 任何时候都可以将计数单元的当前值送到输出锁存器被CPU读取而不干扰计数器继续计数;(6) 门脉冲GATE是由设备送来的,作为对时钟脉冲的控制信号,门脉冲对时钟的控制方法有多种,以形成多种工作方式。 8253定期器计数器的每个计数器都有六种可编程选择的工作方式。1.方式0 计数结束产生中断方式2方式1可编程单次脉冲 3方式2分频工作方式4方式3方波产生器5方式4软件触发选通6方式5硬件触发选通8255A端口A、端口B和端口C都是8位端口,可以选择作为输入或输出。还可以将端口C的高4位和低4位分开使用,分别作为输入或输出。当端口A和端口B作为选通输入或输出的数据端口时,端口C的指定位与端口A和端口B配合使用,用做控制信号或状态信号。 18255A的工作方式 8255A在使用前要先写入一个工作方式控制字,以指定A、B、C三个端口各自的工作方式。 8255A共有三种工作方式: 方式0基本输入输出方式,即无须联络就可以直接进行8255A与外设之间的数据输入或输出操作。A口、B口、C口的高4位和低4位均可设立为方式0。方式O合用于无条件数据传送,也可以把C口的某一位作为状态位,实现查询方式的数据传送。方式1选通输入输出方式,此时8255A的A口和B口与外设之间进行输入或输出操作时,需要C口的部分I/O线提供联络信号。只有A口和B口可工作于方式1。 方式2选通双向输入输出方式,即同一端口的I/O线既可以输入也可以输出,只有A口可工作于方式2。此种方式下需要C口的部分I/O线提供联络信号。 1) 工作方式选择控制字 它可以使8255A的三个端口工作于不同的工作方式。2) C口按位置位/复位控制字 8255A的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向8255A的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的状态不变。