微机原理期末复习:微机原理期末复习.docx

微机原理期末复习:微机原理期末复习.docx
微机原理期末复习:微机原理期末复习.docx

微机原理期末复习

第2章计算机的基本结构与工作过程

1.计算机的基本组成及各个组成部件的基本功能

运算器

运算器是进行算术运算(如加、减、乘、除等)和逻辑运算(如非、与、或等)的装置。

通常由算术逻辑部件ALU、专用寄存器X、Y和Z、累加器、通用寄存器RO、R1、…、

Rn-1以及标志寄存器F组成。

核心部件ALU用于完成算术运算和逻辑运算。

X、Y是ALU的输入寄存器,Z是ALU的输出寄存器。X、Y、Z是与ALU不可分的一部分,通常称为ALU的数据暂存器。X、Y中的数据可来自通用寄存器,也可来自存储器。Z中的数据可送往通用寄存器,也可送往存储器。

F用于存放运算结果的状态,例如,结果是否为零,是正还是负,有无进位,是否溢出,等等。

控制器

为了实现对计算机各部件的有效控制,快速准确地取指令、分析指令和执行指令, 控制器通常由下而几部分组成:

指令寄存器IR一一用于存放正在执行或即将执行的指令。

程序计数器PC——用于存放下一条指令的存储单元地址,它具有自动增量计数的功能。

存储器地址寄存器MAR——用于在访存时缓存存储单元的地址。

存储器数据寄存器MDR——用于在访存时缓存对存储单元读/写的数据。

指令译码器ID——用于对IR屮的指令进行译码,以确定IR屮存放的是哪一条指令。

控制电路一一产牛时序脉冲信号,并在时序脉冲的同步下对有关的部件发出微操作控制命令(微命令),以控制各个部件的动作。

输入设备

用来输入数据和程序的装置,其功能是将外界的信息转换成机内的表示形式并传送到计算机内部。常见的输入设备有键盘、鼠标、图形数字化仪、图像扫描仪等

等。

输出设备

用来输出数据和程序的装置,其功能是将计算机内的数据和程序转换成人们所需要的形式并传送到计算机外部。常见的输出设备有显示器、打印机.绘图机等等。存储器

计算机中的指令和数据都表现为二进制数码。

为了准确地对存储器进行读或写,通常以字节(或以字)为单位将存储器划分为一个个存储单元,并依次对每一个存储单元赋予一个序号,该序号称为存储单元的地址。

存储单元中存放的数据或指令称为存储单元的内容。

地址的位数由控制器地址线的位数确定,每个存储单元中内容的位数由设计计算

机时对存储器的编址方法确定。

基本结构:

存储单元

2.微型计算机系统的组成

CPU、存储器、I/O接口、输入/输出设备。

CPU、存储器、I/O接口屯路之间用三组总线相连:地址总线(AB, Address Bus) >

数据总线(DB, Data Bus) > 控制总线(CB, Control Bus) o

地址总线、数据总线、控制总线通常统称为系统总线。

从传输方向上看,数据总线是双向的,地址总线是单向的,控制总线中的信号线有的是单向的,也有的是双向的。

3.计算机执行指令的基本过程(P48)

(1)控制器把PC屮的指令地址送往存储器地址寄存器MAR,并发出读命令“M 读”。存储器按给定的地址读出指令,经由存储器数据寄存器MDR送往控制器,保存在指令寄存器IR中。

(2)指令译码器1D对指令寄存器1R中的指令进行译码,分析指令的操作性质, 并由控制电路向存储器、运算器等有关部件发出指令所需要的微命令。

(3)当需要由存储器向运算器提供数据时,控制器根据指令的地址部分,形成数据所在的存储单元地址,并送往存储器地址寄存器MAR,然后向存储器发出读命令“M读”,从存储器中读出的数据经由存储器数据寄存器MDR送往运算器。

(4)当需要由运算器向存储器写入数据时,控制器根据指令的地址部分,形成数据所在的存储单元地址,并送往存储器地址寄存器MAR,再将欲写的数据存入存储器数据寄存器MDR,最后向存储器发出写命令“M写”,MDR中的数据即被写入由MAR指示地址的存储单元中。

5) 一条指令执行完毕后,控制器就要接着执行下一条指令。

为了把下一条指令从存储器中取出,通常控制器把PC的内容加上一个数值,形成下一条指令的地址。

在遇到“转移”指令时,控制器则把“转移地址”送入PC。

控制器不断重复上述过程的(1)到(5),每重复一次,就执行了一条指令,直到整个程序执行完毕。

4.硬布线控制器与微程序控制器的基本结构、工作原理及各自特点。

硬布线控制器(硬连线控制器或组合逻辑控制器)

基本结构:

硬布线控制器主要由环形脉冲发牛器、指令译码器和微命令编码器组成。

环形脉冲发生器用于循环地产生节拍脉冲信号;

指令译码器用于确定IR屮存放的是哪一条指令;

微命令编码器用于在不同节拍脉冲信号的同步下产生相应的微命令信号。

工作原理:

在取指令和执行指令时,都需要控制器能针对不同的指令在不同的机器周期内发出所需要的各种微命令。例如,在取指令时,就需要控制器在第一个周期内发出PCOUT、MARIN、M读、PC加共4个微命令,在第二个周期内发出MDROUT和IRIN 两个微命令。

针对前面给出的4条指令及对指令执行过程的讨论,可归纳出对不同指令在不同机器周期内应发出的微命令如表2-2所示。表中的End代表指令执行结束的微命令。

T5

指令名T1 T2 T3 T4

'

LOAD PCout MDRout IRout MDRout End

(00) MARin TRin MARin Rlin

M读M读

PC加

ADD 同上同上IRout MDRoutYin Rlout ?(01) MARin add 1

M读

STORE 同上同上IRout Rlout Encl

(10) MARin MDRin

M写

J MP 同上同上IRout End

(11) PCin

如果用“?”表示“与", 用“ + ”表示“或”,用Ti表示第i 个机器周期的节拍

脉冲信号,并设所有的信号都是高电平有效,则可用一个逻辑表达式来表示某个微命令应在什么时间发出、对哪些指令发出。

例如,对于微命令MAR1N,所有的四条指令在T1周期内都需要,LOAD 、ADD 、STORE 三条指令在T3周期内也需要,而其他指令则不需要。 描述上述关系的逻辑表达式就是:

MARIN 二T1 ? (LOAD+ADD+STORE+川P)+T3 ? (LOAD+ADD+STORE)二T1+T3 ? (LOAD+ADD+ STORE)o 优缺

点:

硬布线控制器直接由组合逻辑电路产生微操作控制信号,因而其操作速度较快, 但相应的控制逻辑屯路十分庞杂,给设计、调试和检测都带来不便。

这种形式的控制器设计完毕后若想扩充和修改,则更为困难。 其突出的优点是指令执行速度很快,常用于RISC 结构的机器中。 微程序控制器 基本组成:

主要由控制存储器(CM)、微指令寄存器(MR)、微地址寄存器(UAR)和微地 址形成电路等部件组成。

基本原理:

(1) 在微程序中有一条或几条微指令,其微命令是实现“取指”的操作,称为

“取机器指令用的微指令”,属于微程序的公用部分。

在开始执行机器指令时,先从控制存储器屮读取“取机器指令用的微指令”,它 所包含的微命令使CPU 访问主存储器,读取机器指令,送入指令寄存器IR,然 后修改程序计数器PC 的内

微地址给定部分

序控制方式

微命令序列(至处理

微操作控制字段

顺序控制字段

微指令寄存器pR

控制存储器CM

IR

代码.

运行

状态-

PSW

指令 微地址形成

电路

PC

微地址寄存

器 JLI AR

容。

(2)根据机器指令中的操作码,通过微地址形成电路,找到与该机器指令所对应的微程序入口地址。

(3)逐条取出对应的微指令,每一条微指令提供一个微命令序列,控制相关部件的操作。执行完一条微指令后,根据微地址形成方法产生后继微地址,读取下一条微指令。

(4)执行完对应于一条机器指令的一段微程序后,返回到“取机器指令用的微指令”,开始读取与执行又一条机器指令。

顺序控制方式:

(1)初始微地址的形成:每一条机器指令由一段对应的微程序解释执行,该段微程序的入口地址就是所谓的初始微地址。

(1)读取机器指令:在整个微程序中需设置一小段公用的“取机器指令用的微程序”,来实现读取机器指令的操作。这段微程序可以从控制存储器的0#单元或其他特定单元开始,这样就可以以该单元地址为初始微地址读取机器指令。

(ii)功能转移:取出机器指令后,根据指令代码转换成相应的微程序段入口地址,称为功能转移。常见的有“一级功能转移”和“多级功能转移”等。

(2)后续微地址的形成:每条微指令执行完毕后,都要根据其顺序控制字段的规定形成后续微地址。常用的有增量方式与断定方式两种类型。

(i)增量方式:又称计数器方式,是用微程序计数器u PC (即微地址寄存器u

AR)来产生下一条微指令的微地址,将微程序中各条微指令按执行顺序安排在控制存储器中,后续微地址由现行微地址加上一个增量来得到。P PC的更新一般是进行加1的操作,但当遇到特殊情况时可做专门的处理:例如微程序结束时, u PC复位到初始微地址,这个微地址可由初始微地址生成电路产生。

(ii)断定方式:这是一种将“直接给定”与“测试断定”相结合的方式。具体做法是,直接给定微地址的高位部分,而将微地址的若干低位作为可断定的部分, 相应地在微指令的顺序控制字段中设置断定条件,即微地址低位段的形成条件。

优缺点:

与硬连线控制器相比,微程序控制器是一种利用软件方法来设计硬件的技术,可实现复杂指令的操作控制。

它具有规整性的突出优点,它实质上是用程序的方法来产牛和组织微命令信号 (将程序技术引入

CPU ),用存储逻辑控制代替组合逻辑控制(将存储逻辑引入CPU)o

微程序控制器每执行一条指令都要启动控制存储器屮的一串微指令(即一段微程序),因此指令的执行速度相对于“硬布线”控制器来说要慢。

微程序控制器的另一个优点是其灵活性。它使得在计算机中可以较方便地增加和修改指令,只要增加或修改一部分微程序即可。甚至可以实现其他计算机的指令系统,从而可以在一种计算机上运行另一种计算机的指令代码。

这种实现不同机器指令系统的方式称为计算机系统的“指令仿真(Emulation)^ 计算机的指令仿真是一种获得机器软件兼容的方法,它使得已有软件能够在新型的计算机中继续运行。

第3章微处理器的编程结构

1.8086处理器的寄存器结构

通用寄存器(多功能寄存器)

共有8个通用寄存器,按它们的功能差别,又可分为两组,即:“通用数据寄存器”及“指针寄存器和变址寄存器”。

(1)通用数据寄存器

通用数据寄存器用来存放8位、16位或32位的操作数。大多数算术运算和逻辑运算指令都可以使用这些寄存器。共有4个通用数据寄存器,它们是EAX、EBX、ECX 和EDXo

(2)指针寄存器和变址寄存器

这是另外4个通用寄存器,分别是:堆栈指针寄存器ESP、基址指针寄存器EBP、源变址寄存器ESI和目的变址寄存器EDlo

指令指针寄存器EIP (Instruction Pointer)

E1P是一个专用寄存器,用于寻址当前需要取出的指令字节。当CPU从内存中取出一个指令字节后,EIP就自动加1,指向下一指令字节。

当微处理器工作在实模式下时,这个寄存器为IP(16位);当80386及更高型号的微处理器工作于保护模式下吋,则是ETP(32位)。

程序员不能对EIP/IP进行存取操作。程序中的转移指令、返回指令以及中断处理能对E1P/1P 进行操作。

标志寄存器EFLAGS

EFLAGS用于指示微处理器的状态并控制它的操作。

早期的8086/8088微处理器的标志寄存器FLAG为16位,且只定义了其中的9 位;80286微处理器虽然仍为16位的标志寄存器,但定义的标志位已从原来的9 位增加到12位;80386及更高型号的微处理器则采用32位的标志寄存器EFLAGS, 所定义的标志位也有相应的扩充。

段寄存器FS和GS

这两个段寄存器仅对80386及更高型号的微处理器有效,以便程序访问相应的两个附加的存储器段。

2.8086标志寄存器及每个标志位的功能

8086/8088系统屮所定义的9个标志位——0、D、I、T、S、Z、A、P、C,这也是实模式下

80x86/Pentium系列微处理器所使用的标志位。在这9个标志位中,有6位(即CF、PF、AF、ZF、SF和0F)为状态标志;其余3位(即TF、IF和DF) 为控制标志。

状态标志

(1)进位标志CF(Carry Flag):

当执行算术运算指令时,其结果的最高位有进位或借位

时将CF置1;否则将CF置0。

(2)奇偶标志PF (Parity Flag):

该标志位反映操作结果低8位屮“1”的个数情况,若为偶

数个“1”,则将PF置“1”;若为奇数个“1”,则将PF置“0”。

(3)辅助进位标志AF(Auxiliary carry Flag):

辅助进位标志也称“半进位”标志。AF=1,表示本次运算的低4位中的最高位有进位(加法运算时)或有借位(减法运算时)o AF 一般用于BCD运算中是否进行十进制调整的依据。十进制调整指令DAA和DAS测试这个标志位。

(4)零标志ZF(Zero Flag):

反映运算结果是否为零。若结果为零,则ZF=1;若结果不为零,则ZF = 0°

(5)符号标志SF(Sign Flag):

反映带符号数(以二进制补码表示)运算结果符号位的情况。若结果为负数,则

SF=1;若结果为正数,则SF=0o

SF的取值总是与运算结果的最高位(字节操作为D7,字操作为D15,双字操作为D31)取值一致。

(6)溢出标志OF (Overflow Flag):

反映有符号数运算结果是否发生溢出。若发生溢出,则OF=1;否则,0F=0o 溢出是指运算结果超出了计算装置所能表示的数值范围。例如,对于字节运算, 数值表示范围为T28?+127;对于字运算,数值表示范围为-32768?+32767。

若超过上述范围,则发牛了溢出。溢出是一种差错,系统应做相应的处理。

例:指出80x86CPU执行如下指令后,标志寄存器中各状态标志位的值:

(1) MOV AX, 32C5H (2) MOV AX, 0E453H

ADD AX, 546AH ADD AX, 0C5721I

解:(1) 0011001011000101 (2) 1110010001010011

+ 0101010001101010 + 1100010101110010

1000011100101111 1010100111000101 所以,0F二1 SF=1 ZF=O 0F=0 SF=1 ZF=O

AF=O PF=O CF=O AF=O PF=1 CF=1 控制标志

(1)方向标志DE (Direction Flag):

用来控制串操作指令的执行。

若DF = O,则串操作指令的地址自动增量修改,串数据的传送过程是从低地址到高地址的方向进行;

若DF=1,则串操作指令的地址自动减量修改,串数据的传送过程是从高地址到

低地址的方向进行。

可以设置DF的指令为STD (置1)和CLD (清0)。

(2)中断标志IF (Interrupt Flag):

用来控制对可屏蔽中断的响应。

若IF=1,则允许CPU响应可屏蔽中断请求;

若1F = O,则CPU不能对可屏蔽中断请求作出响应。

可以设置IF的指令有STI (置1)和CLI (置0) o IF对非屏蔽中断和内部中断不起作用。

(3)陷阱标志TF(Trap Flag):

陷阱标志也称单步标志。

当TF=1时,微处理器就进入单步工作方式,每执行完一条指令便自动产生一个内部中断(称为单步中断),转去执行一个中断服务程序,可以借助中断服务程序来检查每条指令的执行情况;

若TF=0,则CPU正常(连续)执行指令。

单步工作方式常用于程序的调试。

3.物理地址与逻辑地址的概念

在有地址变换机构的计算机系统屮,每个存储单元可以看成具有两种地址:物理地址和逻辑地址。

物理地址是信息在存储器中实际存放的地址,它是CPU访问存储器时实际输出的地址。

逻辑地址是编程时所使用的地址。

编稈时不需要知道产牛的代码或数据在存储器中的具体物理位置。这样可以简化存储资源的动态管理。

在实模式下的软件结构中,逻辑地址由“段基值”和“偏移量”两部分构成。

每个存储单元有惟一的物理地址,但它可以由不同的“段基值”和“偏移量”转换而来,这只要把段基值和偏移量改变为相应的值即可。同一个物理地址可以由不同的逻辑地址来构成。或者说,同一个物理地址与多个逻辑地址相对应。

4?“段加偏移”的寻址机制

“段基值”是段的起始地址的高16位。“偏移量” (offset)也称偏移地址,它是所访问的存储单元距段的起始地址之间的字节距离。

给定段基值和偏移量,就可以在存储器中寻址所访问的存储单元。

在实模式下,“段基值”和“偏移量”均是16位的。

“段基值”由段寄存器CS、DS、SS、ES、FS和GS提供;“偏移量”由BX、BP、SP、SI、DI、IP或以这些寄存器的组合形式来提供。

将段寄存器中的16位“段基值”左移4位(低位补0),再与16位的“偏移量” 相加,即可得到所访问存储单元的物理地址。

上述由段基值(段寄存器的内容)和偏移量相结合的存储器寻址机制也称为“段加偏移”寻址机制,所访问的存储单元的地址常被表示成“段基值:偏移量”的形式。

默认的段和偏移寄存器

段寄存器偏移地址寄存器主要用途

CS IP 指令地址

SS SP 或BP 堆栈地址

DS BX、DI、SI、8位或16位数数据地址

ES 串操作指令的DI 串操作目的地址

5?堆栈的定义,堆栈的结构,堆栈的操作。

堆栈定义

堆栈是存储器中的一个特定的存储区,它的一端(栈底)是固定的,另一端(栈顶)是浮动的,信息的存入和取出都只能在浮动的一端进行,并且遵循后进先出(Last In First Out)的原则。

堆栈的结构

堆栈是在存储器中实现的,并由堆栈段寄存器SS和堆栈指针寄存器SP来定位。SS寄存器中存放的是堆栈段的段基值,它确定了堆栈段的起始位置。SP寄存器屮存放的是堆栈操作单元的偏移量,SP总是指向栈顶。

这种结构的堆栈是所谓“向下生长的”,即栈底在堆栈的高地址端,当堆栈为空时SP就指向栈底。堆栈段的段基址(由SS寄存器确定)并不是栈底。

堆栈的操作

实模式下的堆栈为16位宽(字宽),堆栈操作指令(PUSH指令或POP指令)对堆栈的操作总是以字为单位进行。要压栈(执行PUSII指令)时,先将SP的值减2,然后将16位的信息压入新的栈顶。要弹栈(执行POP指令)吋,先从当前栈顶取出16位的信息,然后将SP的值加2。

可概括为「'压栈时,先修改栈指针后压入”,“弹栈时,先弹岀后修改栈指针”。

第4章寻址方式与指令系统

1.寻址方式

指出给定指令的源操作数及目的操作数的寻址方式;

指出/比较给定寻址方式的特点。

数据寻址方式

(1)立即寻址(Immedia tc addressing)

MOV AL , 8011

指令中直接给出操作数,操作数紧跟在操作码之后,作为指令的一部分存放在代码段里,在取出指令的同时也就取出了操作数,立即有操作数可用,所以称之为立即寻址。

立即数可以为8位,也可以为16位。如果是16位数,则“高位字节存放在高地址屮,低位字节存放在低地址屮。”

立即寻址方式常用于给寄存器赋值,并且只能用于源操作数,而不能用于目的操作数。

(2)寄存器寻址(Register addressing)

MOV AX , BX

操作数在寄存器中,指令中指明寄存器号,这种寻址方式叫寄存器寻址。

对于8位操作数,寄存器可以是AH, AL, BH, BL, CH, CL, DH, DL O

对于16 位操作数,寄存器可以是AX, BX, CX, DX, SI, DI, SP , BP, CS, DS, ES, SS

(但CS不能作目的寄存器)。两个操作数不能都是段寄存器。

操作数就在寄存器中,不需要访问存储器来取得操作数(指令执行时,操作就在CPU的内部进行),因而执行速度快;寄存器号比内存地址短。

除以上两种寻址方式外,下而各种寻址方式的操作数均在存储器中,通过采用不同的寻址方式取得操作数地址,从而取得操作数。

(3)直接寻址(Direct Addressing)

MOV AX , DS:[2000H]

在直接寻址方式中,指令中直接给出操作数的有效地址,或者说,有效地址EA 就在指令中。它(操作数的有效地址,而不是操作数本身)存放在代码段中指令的操作码Z后,但操作数一般存放在数据段屮。

规定双操作数指令不能两个操作数都用直接寻址方式。

(4)寄存器间接寻址(Register indirect Addressing)

MOV AX , [BX]

采用寄存器间接寻址方式时,指令屮给出寄存器号(寄存器为BX, BP, SI和DI 之一),被指定的寄存器中存放着操作数的有效地址,操作数在存储器中(以寄存器的内容为操作数的有效地址)。

BX对应段寄存器为DS; BP——SS; S1——DS; D1——DS。

(5)寄存器相对寻址(Register relative addressing)

MOV AX, [SI+3000II]

操作数的有效地址是一个基址或变址寄存器的内容与指令中指定的8位或16位位移量(Displacement)之和。

这种寻址方式可用于表格的处理,通过位移量来设置表格的首地址,利用修改基

址寄存器或变址寄存器的内容来获得表项的值。

(6)基址变址寻址(Based indexed addressing)

MOV AX, [BX+DT]

操作数的有效地址是一个基址寄存器和一个变址寄存器内容之和,两个寄存器均

由指令指定。

这种寻址方式同样适用于表格(或数组)的处理,表的首地址可存放在基址寄存器屮,而用变址寄存器来访问表格屮的各项。

由于两个寄存器都可以修改,使用起来更灵活。

(7)相对基址加变址寻址(Relative based indexed address)

MOV AX,[BX+S1+0250H]

也称“带位移量的基址加变址寻址方式”,操作数的有效地址是一个基址寄存器和一个变址寄存器内容与8位或16位位移量Z和。

这种寻址方式可用于访问二维数组。设数组元素在内存中按行顺序存放(首先放第一行所有元素,再放第二行所有元素,……)。通过改变基址寄存器(如BX)和变址寄存器(如S1)的值可以访问数组中不同行和列上的元素。转移地址的寻址方式

(1)段内直接转移(直接近转移)

JMP L

转移地址(通常就是近标号)直接包含在汇编形式的转移指令中,转移指令的机器代码中存放的是该标号与当前IP值的差(标号-IP),此差称为位移量,该位移量与转移指令一起存于代码段:位移量被放在转移指令的操作码Z后,也是“高字节放在高地址单元,低字节放在低地址单元”。

在取转移指令时,此位移量即作为转移指令的一部分被取入CPU中。

执行转移指令时,将这个位移量加到1P上即可得到转移地址(标号的值),即

IP+(标号-IP)二标号二转移地址。不必为找这个转移地址再去访问寄存器或存储器。

(2)段内间接转移(间接近转移)

①寄存器操作数(也称寄存器寻址)

JMP BX

②存储器操作数(也称存储器寻址)

(i)直接寻址

JMP WORD PTR DS: [20]

其特征是:转移地址(偏移地址部分)在数据存储单元中,数据存储单元的地址在指令中直接给出。

(ii)寄存器间接寻址

JMP [BX]

其特征是:转移地址(偏移地址部分)在数据存储单元中,数据存储单元的偏移地址在BX、BP、ST、DT 之一中。(iii)寄存器相对寻址

JMP [BX+20]

其特征是:转移地址(偏移地址部分)在数据存储单元中,数据存单元的偏移地址是寄存器(BX、BP、SI、DIZ—)的内容与位移量的和。

(iv)基址变址寻址

JMP [BX+SI]

其特征是:转移地址(偏移地址部分)在数据存储单元中,数据存储单元的偏移地址是基址寄存器(BX、BP之一)的内容和变址寄存器(SKDI之一)的内容之和。

(v)基址变址相对寻址

JMP [BX+ST+20]

其特征是:转移地址(偏移地址部分)在数据存储单元中,数据存储单元的偏移地址是基址寄存器(BX、BP之一)的内容、变址寄存器(SI、DI之一)的内容及位移量的和。

(3)段间直接转移(直接远转移)

JMP FAR PTR L

转移地址(通常就是远标号)直接包含在汇编形式的转移类指令中,也直接存放在转移类指令的机器代码中,它是转移类指令不可分割的一部分,位于转移类指令的操作码Z后。

高字存放转移地址的段基值部分,低字存放转移地址的偏移地址部分。在取转移类指令时,此段基值和偏移地址作为转移类指令的一部分被取入CPU中,执行转移类指令时,不必为找转移地址再去访问寄存器或存储器。

⑷段间间接转移(间接远转移)

JMP DWORD PTR [BX+SI+20]

段间间接转移时的转移地址既包含偏移地址部分,又包含段基值部分,在数据存储器中占两个字:低字单元存放偏移地址,高字单元存放段基值。

2.指令系统

熟悉和掌握8086指令系统常用指令的格式与功能(通过编程或阅读程序来体现); 条件转移指令(P120);逻辑运算和移位指令;

串操作指令(串传送指令MOVSB);

XLAT指令;CMP指令;TEST指令。

* 十进制调整指令(DAA, DAS; AAA, AAS, AAM, AAD)。

*指令的机器码格式。

第5章汇编语言的基本语法

练习1:根据下面的数据定义:

ORG 10H

DAT1 DB 10 DUP (?)

DAT2 EQU 12H

DAT3 DW 56H, $+10

确定数据项$+10的值。

$ :地址计数器的当前值;

0RG:指定下一个要用的存储单元的偏移地址。

DATA SEGMENT

TAB DW 1, 2, 3, 4, 5, 6

ENTRY EQU 3

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

L: MOV AX, DATA

MOV DS, AX

MOV BXJ 3FFSET TAB

ADD BX, ENTRY

MOV AX, [BX]

CODE ENDS

END L

上述程序执行后,AX= ___________________________ ?

若定义DAT DD 12345678H,则(DAT+1)字节单元的数据是(

A. 12H

B. 34H

C. 56H

D. 78H

要求能够阅读和编写完整的汇编语言程序(DOS环境下),包括: 数据段、堆栈段、代码段的定义;

程序中能够判别有键按下时退出当前程序并返回DOS( 16H BIOS中断调用的1

号功能,DOS功能调用的4CH号功能)

第7章微处理器的内部结构及外部功能特性

1. Pentium处理器的结构特点

总线接口单元BIU (Bus Interface Unit)是微处理器与微机中其他部件进行连接与通信的物理界面。通过这个界面,实现微处理器与其他部件之间的数据信息、地址信息以及控制命令信号的传送。另外,BIU还有地址总线驱动、数据总线驱动、总线周期控制及总线仲裁等多项功能。Pentium处理器的外部数据总线宽度为64位,它与存储器之间的数据传输率可达528MB/so

由于Pentium处理器内部的算术逻辑单元ALU(Arithmatic Logic Unit)和寄存器的宽度仍是

32位的, 所以它仍属于32位微处理器。Pentium处理器的地址总线位数为32位,即它的直接

寻址物理地址空间为232=4GB O

指令Cache与数据Cache,可以使CPU在较低速的存储器件条件下获得较高速的存储器访问时间,并提高系统的性能价格比。Pentium处理器中的Cache设计与80386和80486有很大的不同,它采用哈佛结构。把Cache分为"指令Cache” 和“数据Cache”分别设置,从而避免仅仅设置统一Cache吋发生存储器访问冲突的现象。Pentium 包括两个8KB的Cache, 一个为8KB的数据Cache, 一个为8KB的指令Cache。指令Cache只存储指令,而数据Cache只存储指令所需的数据,这两个Cache可以并行工作。在只有统一的高速缓存的微处理器(如80486) 屮,一个数据密集的程序很快就会占满高速缓存,几乎没有空间用于指令缓存, 这就降低了微处理器的执行速度。在Pentium中就不会发生这种情况,因为它有单独的指令Cacheo

转移目标缓冲器BTB (Branch Target Buffer )动态预测程序的转移操作。在程序执行时,若某条指令导致转移,便记忆下这条转移指令的地址及转移日标地址, 并用这个信息来预测这条指令在此发生转移时的路径,预先从这里记录的“转移目标地址”处预取指令,以保证流水线的指令预取不会空置。

指令预取器和预取缓冲器,指令预取器按给定的指令地址,从指令Cache中顺序取出指令放入预取缓冲器中,直到在指令译码阶段遇到一条转移指令并预测它在指令执行阶段将发生转移时为止。

指令译码器将预取來的指令译码,以确认该指令的操作。

执行单元EU,以两个ALU为中心,完成U、V流水线中两条指令的算术及逻辑运算。

浮点处理单元FPU专门用来处理浮点数或进行浮点运算,也称浮点运算器。控制单元CU的基本功能是控制整个微处理器按照一定的时序过程一步一步完成指令的操作。

2.指令流水线的工作特点

“超标量流水线”结构是Pentium处理器设计技术的核心。

流水线(pipeline)方式是把一个重复的过程分解为若干子过程,每个子过程可以与其他子过程并行进行的工作方式。釆用流水线技术设计的微处理器,把每条指令分为若干个顺序的操作(如取指、译码、执行等),每个操作分别由不同的处理部件(如取指部件、译码部件、执行部件等)来完成。这样构成的微处理器,可以同时处理多条指令。采用流水线技术,可以加快计算机执行程序的速度并提高处理部件的使用效率。

Pentium处理器的流水线由分别称为“U流水”和“V流水”的两条指令流水线构成(双流水线结构),其中每条流水线都拥有自己的地址牛成逻辑、ALU及数据Cache接口oPentium的毎一条流水线也是分为五个阶段(5级流水):“指令预取”、

“指令译码”、“地址生成”、“指令执行”和“回写”。Pentium处理器实现的是两条流水线的并行操作,而每条流水线由五个流水级构成。对于每个处理部件來说,每条指令的同类操作(如取指令)就像流水一样连续被加工处理。

3?微处理器典型引脚的名称、功能、方向

按功能的不同,可将这132个引脚信号分成4组:存储器/I0接口、中断接口、

DMA接口、协处理器接口。

?|有效电平

CLK2 系统时钟输入—

A:H?A2 地址总线输出—

BE??BEo 字节允许输岀0

D31 ?Do 数据总线输入/输出—

BS16 16位总线宽度输入0

W/R 与/读指示输出1/0

D/C 数据/控制指示输岀1/0

M/10 存储器/I0指示输出1/0

ADS 地址状态输出0

READY 就绪输入0

NA 下一地址请求输入0

LOCK 总线封锁输岀0

TNTR 中断请求输入 1

相关主题
相关文档
最新文档