当前位置:文档之家› 汇编语言与计算机原理第四章

汇编语言与计算机原理第四章

汇编语言与计算机原理第四章
汇编语言与计算机原理第四章

第四章 Intel8086/8088微处理器及其指令系统

§4.1 概述

微型计算机所使用的微处理器芯片可分为两大类:一类是Intel类型芯片,另一类是非Intel类型的。Intel类型微处理器芯片主要生产厂家是美国Intel公司, IBM PC微型计算机CPU使用的就是Intel类型微处理器。非Intel类型的微处理器芯片是Motorola等公司的产品,主要用于Apple公司的微型计算机和服务器中。

自1971年,Intel公司生产第一片微处理器至今的30多年时间,Intel微处理器每3至5年就要更新换代一次,使IBM PC微型计算机的性能不断提高。IBM PC微型计算机使用的微处理器主要变化是:

1.Intel 8088微处理器

Intel 8088微处理器是Intel公司专门为第一代IBM PC微型计算机设计的。Intel 8088微处理器内部运算和寄存器都是16位,但是外部数据线是8位,因而被称为准16位微处理器。地址线20位,可寻址空间1M;工作频率4.7Mhz。与此同时还推出了Intel 8087浮点运算器,以配合Intel 8088,提高数值运算速度。

2.Intel 80286微处理器

Intel 80286是IBM PC/AT微型计算机使用的微处理,其内部运算和寄存器同Intel 8088一样,也是16位,但是外部数据线增加到16位,是真正的16位微处理器。地址线24位,可寻址空间16M;工作频率8Mhz。和Intel 80286配合的浮点运算器是Intel80287。

3.Intel 80386微处理器

使用Intel 80386微处理器的有IBM公司的PS/2系列微型计算机,和一些其它厂家生产的386型兼容机。Intel 80386是32位微处理器,其内部运算和寄存器都是32位;外部数据线和地址线32位,可寻址空间4G;增加了页式虚拟存储管理部件;时钟频率32 Mhz。和Intel 80386配合的浮点运算器是Intel 80387。

4.Intel 80486微处理器

Intel 80486是高性能的32位微处理器,其内部运算和寄存器的字长和Intel 80386相同。Intel 80486有多个型号,最高时钟频率可达66 Mhz。Intel 80486内含浮点运算器和8KB的高速缓存器。

5.Pentium微处理器

1993年Intel公司推出了Pentium微处理器。Pentium微处理器芯片集成了310万个晶体管,有64位数据线,36位地址线。Pentium微处理器的内部浮点运算器在Intel 80486的基础上进行了全新的设计。Pentium微处理器使用了超标量技术,有两个独立的整数处理单元,可以同时执行两条整数运算指令。内部高速缓存分为两部分:8KB的指令高速缓存和8KB的数据高速缓存。之后Pentium微处理器推出的几个型号,时钟频率从66Mhz发展到166Mhz。

1995年,Intel公司推出了Pentium Pro微处理器。Pentium Pro的整数处理单元增加到3个,时钟频率有150 Mhz、166 Mhz和200 Mhz等几个型号。

1997年1月Intel公司推出了Pentium MMX(Multimedia Execution)微处理器,该处理器增加了57条多媒体指令,用于处理音频、视频和图像数据。

1997年5月,Intel公司推出了PentiumII微处理器,最高时钟频率PentiumII芯片达366Mhz。

1999年,Intel公司推出了Pentium Ⅲ微处理器。最高时钟频率PentiumII芯片达933Mhz。

2000年6月,Intel公司推出了Pentium Ⅳ微处理器,目前,Pentium Ⅳ微处理器的时钟频率已高达2.0G Mhz以上。

§4.2 8086/8088微处理器

一、8086/8088微处理器功能结构

8088微处理器是Intel公司专为IBM-PC微型计算机设计的CPU芯片,它仅仅是在8086CPU的基础进行了一些改进。Intel8086和Intel 8088的主要区别是Intel 8086的数据线是16根,而Inetl8088只有8根数据线,但是它们的地址线都是20根,控制线也基本相同。

图4.2.1 8086/8088功能结构图

Intel8086/8088CPU就功能而言分成两大部分:总线接口单元BIU(Bus Interface unit)和执行单元EU(Execution Unit),如图4.2.1所示。BIU单元的功能主要包括:从存储器取出指令,送入指令流排队机构;访问内存或外部设备;响应外部中断等。

EU的功能是执行指令。EU从指令队列取出指令代码,译码后发出相应的执行控制信号。运算器执行运算,运算结果的特征保存在标志寄存器。

由于取指令和执行指令部件是分开的,并且相对独立,所以指令执行和取指令可以同时进行,即在一条指令执行过程中,可以取出下一条指令。指令队列可以存储多条指令,BIU

取出的指令在指令流排队机构排队,执行单元执行完一条指令后就可以立即从指令队列中取出下一条指令执行。由于执行和取指令可以重叠进行,提高了系统速度。

二.Intel8086/8088CPU的寄存器

Intel8086/8088CPU内部含有一些寄存器,这些寄存器用于暂存数据和地址等。

1.数据寄存器组

数据寄存器有四个,这四个寄存器都是十六位寄存器,可以按十六位使用,也可以分别使用每个寄存器的高八位和低八位。如果按十六位使用其名称分别为AX,BX,CX和DX,如果按八位使用其名字如图4.2.2所示。四个数据寄存器的通常的名称和用途如下:AX:累加器,用于暂存操作数或运算结果。

BX:基址寄存器,除用于存储运算操作数之外,还经常用于地址运算。

CX:计数器,初作为一般寄存器使用外,还经常用于循环程序的循环次数计数。

DX:数据寄存器,用于存储运算操作数或运算结果。

图4.2.2 数据寄存器

2. 变址寄存器

SI:源变址寄存器,16位,一般用于存储源操作数的偏移地址。

DI:目的变址寄存器,16位,一般用于存储目的操作数的偏移地址。

3. 堆栈指针和基数指针

SP:堆栈指针,16位,用于堆栈操作。

BP:基数指针,16位,用于堆栈段指示偏移地址。

4.段寄存器

段寄存器CS、DS、SS、ES是四个十六位寄存器,在段式存储管理中,这四个寄存器用于保存段基址(段开始地址)。由于Intel8086/8088微处理器的地址线有20条,而段寄存器是十六位寄存器,所以只能保存段基址的高十六位,在执行访问内存指令时,将段寄存器左移4位,再加上16位偏移地址得到20位物理地址。四个段寄存器用途如下:CS:代码段寄存器,用于存储程序代码段基址。

DS:数据段寄存器,用于存储程序数据段基址。

SS:堆栈段寄存器,用于存储程序堆栈段基址。

ES:附加数据段寄存器,用于存储程序数据段基址,通常用于字串操作

5. IP:指令指针,16位,指向下一条要执行指令的偏移地址。

6. 标志寄存器

16位寄存器,每一位指示运算指令或其他指令执行后的检验结果,其意义如下:

CF:b0位,进位或借位标志位,当加法运算最高位向前有进位,或减法运算最高位向前有借位,本位置1,否则置0;

PF:b2位,奇偶标志位,当运算结果低8位有偶数个1,PF置1,否则置0;

AF:b4位,辅助进位标志位,当运算时,b3位向b4位有进位AF置1,否则置0;

ZF:b6位,零标志位,运算结果等于0时置1,否则置0;

SF:b7位,符号标志位,运算结果的最高位等于1时SF=1(负号),等于0时 SF=0(正号);

TF:b8位,追踪标志位,当TF=1时使CPU进入单步执行方式,每执行一条指令就暂停,常用于调试程序;

IF:b9位,中断标志位,当IF=0时,CPU不响应可屏蔽中断;

DF:b10位,方向标志位,当字符串传送时,DF=0时每传送一个字节或一个字,地址自动增加1(字节传送)或增2(字传送),当DF=1时每传送一个字节或一个字,地

址自动减1(字节传送)或减2(字传送);

OF:b11位,溢出标志位,当带符号数运算的运算结果超出了数的表示范OF置1,否则置0。例如,8位运算时,当运算结果>+127或<128时,超出了8位机器数的表示

范围,既产生了溢出。进位和溢出是两个不同的概念,不要混淆,如下例,计算

01100100+01100100,计算结果为11001000,并没有向前进位,但是8位带符号机

器数的表示范围,OF将置1:

01100100

+ 01100100

11001000

除上述标志位外,状态标志寄存器还有一些位没有使用,如图4.2.3所示。

图4.2.3 标志寄存器

§4.3 操作数寻址方式

一、指令格式

Intel8086/8088微处理器的指令按格式可分为无操作数指令、单操作数指令和双操作数指令三种。指令的一般格式为:

操作码 [目的操作数] [,源操作数]

操作码表示指令的操作类型,源操作数和目的操作数表示指令的操作对象,操作结果存入目的操作数。例如指令:ADD AL,3 ,表示将AL寄存器中的值和常数3相加,结果存入AL寄存器。微处理器实际执行的指令是二进制代码的机器指令,为了编程方便,在编写程序时一般使用机器指令的助记符号,机器指令的助记符号称为汇编指令,例如,上面指令中的ADD就是加法机器指令的助记符。

不同指令的操作数个数可能不同,有的指令有两个操作数,有的指令有一个操作数,还有的指令没有操作数,或者其操作数是隐含的,如下面的例子:

INC AL ;将AL寄存器值加1,结果存入AL寄存器

CLD ;将标志寄存器的DF位置0

ADD AL, BL

上面第一个指令是单操作数指令;第二个指令的操作数是隐含的(DF标志位),第三个指令是双操作数指令。

二、操作数类型:

按操作数所在位置,可分为三种类型:

1.寄存器操作数:操作数在CPU内部寄存器中,例如将AL和BL得值相加,结果存入

AL,可用如下指令:

ADD AL, BL

这里源操作数和目的操作数都是寄存器操作数。

2.存储器操作数:操作数据在内存单元中,如下例:

ADD [2000H], AL

该指令的执行将AL的值和偏移地址为2000H的内存单元值相加,结果存入内存单元,该指令的源操作数属于寄存器操作数,而目的操作数是存储器操作数。

3.立即数:操作数在指令中,例如下面指令的源操作数为立即数:

ADD AL,30

在指令中目的操作数除了参加运算之外,还要存储运算结果,所以目的操作数不能是立即数,只能是存储器操作数或寄存器操作数。

三、寻址方式

所谓寻址方式,是CPU在执行指令时,如何确定源操作数或目的操作数所在位置。Intel8088寻址方式有如下几种:

1.立即寻址

操作数为立即数,例如:

MOV AL, 3

MOV AL,’A’

第一条指令的功能是将数值常数3传送到AL寄存器。第二条指令的功能是将字符A的ASCII码41H传送到AL寄存器。立即数寻址中的操作数(立即数)作为指令的一部分,跟随在操作码之后。如果是16位操作数,低8位在前(低地址),高8位在后(高地址)。例如:

MOV AX,4142H

指令在内存中的存放如图4.3.1所示,指令执行后,AL=42H,AH=41H。

图4.3.1 16位立即数寻址

2.寄存器寻址

操作数为CPU内部寄存器,上面示例指令的目的操作数即为寄存器寻址,下面指令的源操作数和目的操作数都是寄存器寻址方式:

MOV DS,AX ;将AX的值传送给DS寄存器。

3.直接寻址

直接寻址方式指令中,给出的是操作数所在内存单元的段内16位偏移地址,如下面指令:

MOV AX,[2000H] ;将段内相对偏移地址为2000H单元的值传送到AX。

这里方括号是地址符号,2000H为十六进制数。执行指令时CPU要根据偏移地址计算实

际物理地址,其计算方法是:

DS*10H+2000H

这里约定段基址的高16位存放在DS 段基址寄存器,低4位为0。CPU 的地址运算器根据段基址和指令中的偏移地址计算出20位的物理地址,发送到地址总线,将该地址开始存放的一个字(两个字节)的数据传送到寄存器AX ,如图4.3.2所示。

图4.3.2 直接寻址

如果不使用DS 作为段基址,在指令中要给出段前缀,指明计算物理地址时使用那一个段寄存器,例如:

MOV AX ,ES :[2000H] 或:ES :MOV AX ,[2000H]

在执行指令时计算物理地址使用ES 段寄存器。

在汇编语言程序中操作数的偏移地址一般使用符号表示,例如:

MOV AX ,BUFF

指令中的BUFF 是偏移地址符号,一般称为变量,其代表的值在程序中应当有相应的定义。

4. 寄存器间接寻址

寄存器间接寻址方式的指令,操作数的段内偏移地址由寄存器的值指出。例如:

MOV BX ,2000H MOV AX ,[BX]

第一条指令将偏移地址存入BX 寄存器,第二条指令由BX 指定源操作数偏移地址。这里方括号的含义是将BX 寄存器的值作为偏移地址,指令是将该地址存储的一个字(两个字节)的数据传送到AX 寄存器。

寄存器间接寻址操作数的段内偏移地址可以由SI ,DI ,BX ,BP 四个寄存器指定。在指令中没有段前缀时,如果使用SI ,DI ,BX 寄存器,指令执行时使用DS 寄存器的值作为段基址计算物理地址;如果使用BP 寄存器指定,计算物理地址约定使用SS 段寄存器。

5.变址寻址

所谓变址寻址就是由规定的变址寄存器的值再加上一个指令中给出的位移量作为操作数的段内偏移地址。Intel 8088CPU 有两个变址寄存器SI 和DI ,位移量可以是8位或16位二进制数。如指令:

ADD AX, BUFF[SI]

计算物理地址的方法是:DS*10H+[SI] +BUFF 。指令中BUFF 是代表位移量符号。 6.基址寻址

基址寻址与变址寻址类似,只不过使用的寄存器是基址寄存器BX ,或基址指针寄存器BP 。指令中如果没有段前缀,如果使用BX 寄存器,计算物理地址使用DS 寄存器;如果使用BP 寄存器,计算物理地址使用SS 段寄存器。如指令:

DS 数据段

ADD AX, BUFF[BX]

计算物理地址的方法是:DS*10H+[BX] +BUFF。

7.基址-变址寻址

指令中将BX或BP作为基址寄存器,将SI或DI作为变址寄存器,偏移地址由基址寄存器值加上变址寄存器值再加上一个位移量得到,如下面指令:

MOV AX, MASK[BX][SI]

其物理地址为:DS*10H+BX+SI+MASK。这里MASK是一个代表位移量的符号。如果指令使用BX作基址寄存器,使用DS寄存器计算物理地址;使用BP作基址寄存器,计算物理地址使用SS段寄存器。当指令有段前缀时,使用是指定的段寄存器计算计算物理地址。

§4.4 Intel8086/8088指令系统

指令系统是指CPU所能识别和执行的指令集合。Intel8086/8088指令按功能可分为六组:

1.数据传送指令

2.算术逻辑指令

3.逻辑运算指令

4.串操作指令

5.程序控制指令

6.处理器控制指令

我们将分类说明Intel8086/8088指令,并且从每一类选出一到两个常用指令做较详细讨论,其余一些指令在以后章节的程序设计举例中将会使用,届时将会进行详细讨论;有一些指令在本教材中没有做详细讨论,如果需要可以查阅有关参考资料。

一、数据传输指令

数据传输指令包括通用传送指令、输入输出指令、目标地址传送和标志传送指令,如表4.4.1所示。

表4.4.1 数据传输指令

下面讨论MOV指令和交换指令XCHG的使用:

1.MOV指令

指令格式:MOV oprd1,oprd2

MOV 是操作码,oprd1是目的操作数,oprd2是源操作数。此指令将一个字节(8位)或一个字(16位)操作数从源传送到目的操作数,例如:

MOV AL,[2000]

MOV AX,[2000]

第一条指令是将段内偏移地址为2000的单元数据传送到AL寄存器;第二条指令是将段内偏移地址为2000的单元数据传送到AL寄存器,2001单元数据传送到AH寄存器。

使用MOV指令应注意:

⑴.源操作数可以是立即数、寄存器数或存储器操作数,目的操作数可以是寄存器操作数或存储器操作数,但不可以是立即数;

⑵.oprd 1和oprd 2不能同时为存储器操作数,即不能使用MOV指令将存储器的一个单元数据传送到另一个单元;

⑶.MOV指令中的目的操作数不能是CS段寄存器,也就是不能通过传送指令改变CS段寄存器的值,但是CS可以是源操作数;

⑷.当源操作数是立即数时,目的操作数不能是DS、ES、SS段寄存器。

⑸.MOV指令执行不影响标志位。

2.交换指令XCHG

指令格式:XCHG oprd 1,oprd 2

XCHG指令将oprd 1和oprd 2相互交换,例如:

XCHG AL,BL

上面指令将AL的值传送到BL,将B L的值传送到AL。使用该指令应注意:

⑴.oprd1和oprd2不能是段寄存器;

⑵.oprd1和oprd2不能同时是存储器操作数。

⑶.XCHG指令执行也不影响标志位。

二、算术运算指令

算术运算指令包括加、减、乘、除等运算指令。算术运算指令执行后将影响CF,ZF,SF,AF,PF,OF标志位,例如,加法运算最高位有进位时或减法运算有借位时,CF标志位将值位。算术运算指令如表4.4.2所示。

表4.4.2 算术运算指令

1.加法指令

指令格式:ADD oprd 1,oprd 2 ;oprd 1+ oprd 2 →oprd 1

ADD指令是不带进位的加法指令,指令源操作数可以是寄存器操作数、存储器操作数、或立即数,目标操作数不可以是立即数,并且源操作数和目标操作数不可以同时为存储器操作数,例如,下面指令是错误的:

ADD [2000H],[3000H]

相加数据可以作为带符号数处理,或者作为无符号数处理,由程序设计者根据实际问题考虑,例如:MOV AL,7EH

ADD AL,5BH

相加后(AL)=D9H,此时各标志位的状态为:SF=1,ZF=0,AF=1,PF=0,CF=0,OF=1。如果程序设计中将其作为无符号数处理,只要检查CF标志位,因为其没有置位,说明没有溢出;如果将其作为带符号数处理,要检查OF标志位,,因其置位,说明运算结果溢出。

2.增1指令:

指令格式:INC oprd ;oprd +1 → oprd

INC指令将目标操作数加1,该指令影响SF、ZF、AF、PF和OF标志位,但是不影响CF 标志位。INC指令指令的操作数可以是存储器操作数,或除段寄存器之外的寄存器操作数。但是不能是立即数。例如:

INC CX ;16位寄存器CX增1

INC CL ;8位寄存器CL增1

INC CH ;8位寄存器CH增1

INC SI ;源变址寄存器SI增1

3.减法指令

指令格式:SUB oprd 1,oprd 2 ; oprd 1-oprd 2 → oprd 1

SUB指令的使用方法和ADD指令类似,只不过是做减法运算。SUB指令的目的操作数是被减数,SUB指令执行后,影响CF、SF、ZF、AF、PF和OF标志位,当最高位有向前借位时CF标志位置位。例如:

SUB BX, 1000H ;寄存器减立即数

SUB BUF[BX][SI], 37DH ;存储器操作数减立即数

4.减1指令

指令格式:DEC oprd ;oprd -1 → oprd

DEC指令将目标操作数减1。DEC指令也不影响CF标志位,对其他标志位的影响同SUB 指令。例如:

DEC CX

三、逻辑指令

逻辑指令包括逻辑运算指令、移位指令和循环移位指令,如表4.4.3所示。

表4.4.3 逻辑指令

1.逻辑运算指令

逻辑运算指令包括指令NOT(逻辑非)、AND(逻辑与)、TEST(逻辑与测试)、OR(逻辑或)和XOR(逻辑异或)。这些指令对操作数按位进行逻辑运算,除了NOT操作不影响标志位外,其余指令对标志位的影响是:

根据运算结果影响SF、ZF和PF标志位,例如,运算结果为0时ZF置位;

无论运算结果如何,CF和OF标志位都将置0;

AF的值不确定。

⑴.NOT指令

指令格式:NOT oprd

NOT指令将操作数按位取反,例如,

MOV AL,0FH

NOT AL

执行后AL的值为F0H

⑵.AND指令

指令格式: AND oprd 1`,oprd 2

将oprd 1和oprd 2按位进行与运算,运算结果存入oprd 1,例如:

MOV AL ,0BFH

AND AL,0FCH

这两条指令的执行结果是AL= 0BCH

1011 1111

∧ 1111 1100

1011 1100

使用AND指令可以将某些位清0。如果要将某些位清0,其它位不变,清0位和0相与,不变位和1相与。例如,将数字的ASCII码转换为非压缩的8421-BCD码:

MOV AL,’8’

AND AL,0FH

⑶.OR指令

指令格式:OR oprd 1,oprd 2

将oprd D1和oprd2按位进行“或”运算,运算结果存入oprd1 ,例如:MOV AL,43H

OR AL,20H

上面两条指令执行后AL=63H

0111 0011

∨ 0010 0000

0110 0011

使用OR指令可以将某些位置为1。如果将某些位置1,其他位不变,置1位和1相或,不变位和0相或。例如,将非压缩的BCD码转换为ASCII码:

MOV AL,09H

OR AL,30H

⑷.XOR指令

指令格式:XOR oprd1,oprd2

将oprd1和 oprd2按位进行异或运算,运算结果存入 oprd1,例如:

MOV AL,11H

XOR AL,3H

指令执行:

0001 0001

XOR 0000 0011

0001 0010

结果AL=12H。

使用XOR指令可以将某些位取反,要将某位取反,只要和1进行异或,不变位和0进行异或。XOR指令经常用于将寄存器清0,例如:

XOR CX,CX

使用XOR指令将寄存器清0,同时CF标志位也清0。

⑸.TEXT指令

指令格式:TEST oprd1,oprd2

将oprd1和 oprd2 按位进行与运算,不存运算结果,只影响标志位。例如,检测某寄存器中的值是否为负数:

TEST AX, 8000H

如果AX中的值是负数ZF=0,如果是正数ZF=1。

2.移位指令

移位指令包括逻辑左移、逻辑右移、算术左移和算术右移四条指令。

⑴.逻辑左移指令

指令格式:SHL oprd, 1

SHL oprd, CL

将操作数左移1位,或左移 CL寄存器指定的位数,最低位移入0,最高位移出到CF

标志位。如图4.4.1⑴所示。

⑵.逻辑右移指令

指令格式:SHR oprd, 1

SHR oprd, CL

将操作数oprd右移1 位,或右移CL寄存器指定的位数,最高位移入0,最低位移出到CF标志位,如图4.4.1⑵所示。

⑶.算术左移指令

指令格式:SAL oprd, 1

SAL oprd, CL

和SHL 指令操作相同。 ⑷.算术右移指令

指令格式:SAR oprd, 1

SAR oprd , CL

将操作数oprd 右移1 位,或右移CL 寄存器指定的位数,最高位不变,如图4.4.1⑶所示。

⑴ 逻辑左移/算术左移

⑵ 逻辑右移

⑶ 算术右移

图4.4.1 移位指令

逻辑移位则用于无符号数乘二或除二运算运算:SHL 用来乘二,SHR 用来除二;算术移位指令使用于带符号数乘二或除二运算:SAL 用来乘二,SAR 用来除二。由于移位指令比乘法指令执行的速度要快得多,因此,在程序设计中经常使用移位代替乘法指令。

例1:计算AX/2。

SHR AX ,1

如执行前AX=0064H ,执行后AX=32H 。 例2:计算AX*4。

MOV CL ,2 SHL AX ,CL

如执行前AX=16D ,执行后AX=64D 。 例3:计算AX*10。

SHL AX ,1 MOV BX, AX MOV CL, 2 SHL AX, CL ADD AX, BX

如执行前AX=0020D ,执行后AX=0200D 。 3,循环移位指令

循环移位指令有循环左移和循环右移两条指令。 ⑴.循环左移指令

指令格式:ROL LPRD,1

ROL LPRD,CL

将操作数oprd左移一位,或左移CL寄存器指定的位数,最高位移入到最低位移入,并且移到CF标志位,如图4.4.2⑴所示。

⑵.循环右移指令

指令格式:ROR PORD,1

ROR PORD,CL

将操作数oprd右移一位,或右移CL寄存器指定的位数,最低位移出到最高位,并且移到CF标志位,如图4.4.2⑵所示。

⑶.带CF的循环左移指令

指令格式:RCL oprd,1

RCL oprd,CL

将操作数oprd左移一位,或左移CL寄存器指定的位数,CF标志位值移入最低位,最高位移出到CF标志位,如图4.4.2⑶所示。

⑷.带CF的循环右移指令

指令格式:RCR oprd,1

RCR oprd,CL

将操作数oprd右移一位,或右移CL 寄存器指定的位数,CF标志位值移入最高位,最低位移出到CF标志位,如图4.4.2⑷所示。

例:假如AL和BL寄存器分别有非压缩8421-BCD码,AL=03H,BL=09H,要将其转换为压缩8421-BCD码39H存入AL,可用如下指令序列实现:

MOV CL,4

ROL AL,CL

OR AL,BL

这里将AL左移4位,再和BL值进行“或”运算。由于移位次数大于一,所以要将移位次数置CL寄存器。

图 4.4.2 循环移位指令

四、串操作指令

串操作指令包括:MOVS串传送指令、CMPS串比较、SCAS串扫描、STOS存入串和LODS 取串,如表4.4.4所示。

表4.4.4 串操作指令

上面串操作指令应用于内存数据快的操作,例如MOVS指令应用于将内存某一个或多个数据传送到内存的另一位置。串操作指令的源数据串的段基址由DS段寄存器指定,偏移地址由SI寄存器指定;目的数据串的段基址由ES段寄存器指定,偏移地址由DI寄存器指定。每移动一个字或一个字节,DS:SI指向源串的下一个数据,ES:DI指向目的串的下一个数据。串操作指令可以是按字节(8位)操作或按字(16位)操作,当字节操作时串操作指令执行后SI和DI分别增1或减1;当字操作时出操作指令执行后SI和DI分别增2或减2。增减取决于DF标志位,当 DF= 0时增,当DF= 1时减。

例:将地址FB254H—FB264H十六个字节数据传送到地址B2A4H—FB2B4可用下面指令完成:

MOV AX, 0FB25

MOV DS, AX

MOV ES, AX

MOV SI, 04H

MOV DI, 50H

CLD

MOV CX, 16

LI: MOVSB

LOOP L1

串操作指令可以加重复前缀,如:

REP MOVS

等价于:

LI: MOVSB

LOOP L1

重复前缀REP的含义是当CX≠0重复执行串操作指令。除了REP重复前缀,另外两个重复前缀是:

REPE/REPZ ;当CX≠0并且ZF=1时重复。

REPNE/REPNZ ;当CX≠0并且ZF=0时重复。

这里仅介绍了MOVS指令,其它串操作指令在后面章节结合实例再作再做介绍。

五、程序控制指令

控制转移指令可以改变程序执行的顺序,从一条指令转移到前面或者后面的指令继续执行。控制转移指令可分为下面五类:

⑴.无条件转移指令JMP;

⑵.条件转移指令;

⑶.迭代循环指令;

⑷.过程调用指令;

⑸.中断指令。

下面介绍无条件转移指令JMP和迭代循环指令LOOP,其余指令将在以后章节讨论。

1.无条件转移指令JMP

指令格式: JMP 目的地址

由前面对指令执行过程讨论我们知道,CPU执行指令先要从主存储器读取指令,读取指令过程是根据代码段寄存器CS的值和指令指针IP的值计算指令的物理地址,然后将该地址存放的指令取到CPU内部的指令寄存器。因此,让CPU执行哪条指令,只要将指令所在程序段的段基址装入CS,偏移地址装入IP即可。对于一般指令,一条指令取出后,指令指针IP 自动改变为下一条指令的偏移地址。但是对于无条件转移指令,指令本身操作就是强制修改IP的值,有时甚至还要修改代码段寄存器CS的值。这样就改变了原来顺序执行指令的状况。无条件转移指令的助记符号为JMP,但是根据目标地址的不同属性对应的操作是不同的。如果目标地址是同一段内地址,称为段内无条件转移,或段内跳转。段内跳转由于目标地址和转移执行指令在同一段内,所以无条件转移指令只改变指令指针IP的值。如果目标地址是不同段的地址,称为段间无条件转移,或段间跳转。段间跳转由于目标地址和转移执行指令不在一个段,所以无条件转移指令执行的操作是同时修改指令指针IP和段寄存器CS的值。

例: .CODE_1

S1: ……

……

……

JMP S1 ;段内跳转

执行JMP指令时将标号S1的值装入指令指针IP,CPU在取下一条指令时就会从地址S1取出指令。

例: .CODE_1

S1: ……

……

……

.CODE_2

S2: ……

……

……

JMP S1 ;段间跳转

JMP指令的目标地址在另外段,执行该指令时,将偏移地址S1装入IP,同时将代码段CODE 1的段基址值装入CS段寄存器。

2.迭代循环指令

指令格式1:LOOP dest

该指令的功能是:计算CX-1→CX,然后检测CX的值,如果CX≠0则转移到目的地址,如果CX=0则执行下一条指令。

指令格式2:LOOPE/LOOPZ dest

该指令执行时CX-1→CX,然后检测CX和ZF标志位,如果CX≠0并且ZF=1则转移到目的地址,否则执行下一条命令。

指令格式3:LOOPNE/LOOPNZ dest

该指令执行时CX-1→CX,然后检测和ZF标志位,如果CX≠0并且ZF=0则转移到目的地址,否则执行下一条命令。

六、处理器控制指令

处理器控制指令包括标值寄存器操作、处理器暂停指令、处理器等待指令。

1.标志寄存器操作

标志寄存器操作指令可以将某标志位清0或者置1。

CLC ;0→CF,进位标志位清0

CMC ;CF求反,进位标志位其反

STC ;1→CF,进位标志位置1

CLD ;0→DF,方向标志位清0

STD ;1→DF,方向标志位置1

CLI ;0→IF,禁止中断申请

STI ;1→IF,允许中断申请

2.处理器暂停指令HLT

执行HLT指令后,CPU进入暂停状态,当有外部中断申请时,或复位信号可使CPU退出暂停状态。

3.处理器等待指令WAIT

执行WAIT指令使CPU进入等待状态,当有外部中断申请时退出等待状态,开始执行中断服务程序;中断服务程序执行结束,CPU又进入等待状态。WAIT指令用于CPU和外部设备同步工作场合。

计算机组成原理第四章作业答案

第四章作业答案 解释概念:主存、辅存,Cache, RAM, SRAM, DRAM, ROM, PROM ,EPROM ,EEPROM CDROM, Flash Memory. 解:1主存:主存又称为内存,直接与CPU交换信息。 2辅存:辅存可作为主存的后备存储器,不直接与CPU交换信息,容量比主存大,速度比主存慢。 3 Cache: Cache缓存是为了解决主存和CPU的速度匹配、提高访存速度的一种存储器。它设在主存和CPU之间,速度比主存快,容量比主存小,存放CPU最近期要用的信息。 4 RAM; RAM是随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。 5 SRAM: 是静态RAM,属于随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。靠触发器原理存储信息,只要不掉电,信息就不会丢失。 6 DRAM 是动态RAM,属于随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。靠电容存储电荷原理存储信息,即使电源不掉电,由于电容要放电,信息就会丢失,故需再生。 7 ROM: 是只读存储器,在程序执行过程中只能读出信息,不能写入信息。 8 PROM: 是可一次性编程的只读存储器。 9 EPROM 是可擦洗的只读存储器,可多次编程。 10 EEPROM: 即电可改写型只读存储器,可多次编程。 11 CDROM 即只读型光盘存储器。 12 Flash Memory 即可擦写、非易失性的存储器。 存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次? 答:存储器的层次结构主要体现在Cache—主存和主存—辅存这两个存储层次上。 Cache—主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。 主存—辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。 综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。 主存与Cache之间的信息调度功能全部由硬件自动完成。而主存—辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部份通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。

微机原理-期末考试题库及答案(含3套试卷)

微型计算机原理与接口技术综合测试题一 一、单项选择题(下面题只有一个答案是正确的,选择正确答案填入空白处) 1.8086CPU通过(1 )控制线来区分是存储器访问,还是I/O访问,当CPU执行IN AL,DX 指令时,该信号线为(2 )电平。 (1) A. M/ B. C. ALE D. N/ (2) A. 高 B. 低 C. ECL D. CMOS 2.n+1位有符号数x的补码表示范围为()。 A. -2n < x < 2n B. -2n ≤ x ≤ 2n -1 C. -2n -1 ≤ x ≤ 2n-1 D. -2n < x ≤ 2n 3.若要使寄存器AL中的高4位不变,低4位为0,所用指令为()。 A. AND AL, 0FH B. AND AL, 0FOH C. OR AL, 0FH D. OR AL 0FOH 4.下列MOV指令中,不正确的指令是()。 A. MOV AX, BX B. MOV AX, [BX] C. MOV AX, CX D. MOV AX, [CX] 5.中断指令INT 17H的中断服务程序的入口地址放在中断向量表地址()开始的4个存贮单元内。 A. 00017H B. 00068H C. 0005CH D. 0005EH 6.条件转移指令JNE的条件是()。 A. CF=0 B. CF=1 C. ZF=0 D. ZF=1 7. 在8086/8088 CPU中,一个最基本的总线读写周期由(1 )时钟周期(T状态)组成,在T1状态,CPU往总线上发(2 )信息。 ⑴ A. 1个 B. 2个 C. 4个 D. 6个

⑵ A. 数据 B . 地址 C. 状态 D. 其它 8. 8086有两种工作模式, 最小模式的特点是(1 ),最大模式的特点是(2 )。 ⑴ A. CPU提供全部控制信号 B. 由编程进行模式设定 C. 不需要8286收发器 D. 需要总线控制器8288 ⑵ A. M/ 引脚可直接引用 B. 由编程进行模式设定 C. 需要总线控制器8288 D. 适用于单一处理机系统 9.在8086微机系统的RAM 存储单元器0000H:002CH开始依次存放23H,0FFH,00H,和0F0H四个字节,该向量对应的中断号是( )。 A. 0AH B. 0BH C. 0CH D. 0DH 10.真值超出机器数表示范围称为溢出,,此时标志寄存器中的( )位被置位 A. OF B AF C PF D CF 11.8086 系统中内存储器地址空间为1M,而在进行I/O读写是,有效的地址线是( ) A . 高16位 B. 低16位 C. 高8位 D. 低8位 12.8086 CPU中段寄存器用来存放( ) A. 存储器的物理地址 B. 存储器的逻辑地址 C. 存储器的段基值 D. 存储器的起始地址 13.8259A可编程中断控制器的中断服务寄存器ISR用于( ) A.记忆正在处理中的中断 B. 存放从外设来的中断请求信号 C.允许向CPU发中断请求 D.禁止向CPU发中断请求 14.8253 可编程定时/计数器的计数范围是( ) A. 0-255 B. 1-256 C. 0-65535 D. 1-65536 15. 在8086中,(BX)=8282H,且题中指令已在队列中,则执行INC [BX]指令需要的总

复试-通信学院-计算机原理及接口技术

天津工业大学硕士研究生入学考试复试科目考试大纲 课程编号:0503 课程名称:计算机原理及接口技术 一.复试的总体要求 “计算机原理及接口技术”入学复试考试是为了招收通信及信息工程、计算机应用、自动化、电子、电科、机电等类硕士研究生而实施的入学复试性考试。其指导思想是有利于选拔具有扎实的基础理论知识和具备一定实验技能的高素质人才。 要求考生能够系统地掌握计算机方面的基础理论知识和基本的实践能力以及具备运用所学的知识分析问题和解决问题的能力。 二.复试的内容及比例: 1.基础知识(30%):微机的结构、编码、码制(原码,反码,补码)的概念;补码运算原理;中断、堆栈的基本概念;总线、并行和串行通信的基础知识;常用专用名词的英文缩写等。 2.指令系统的应用(20%):基本的寻址方式(立即寻址,寄存器寻址,直接寻址,寄存器间接寻址),常用指令的操作过程,并能阅读简单程序,利用指令编写基本结构的程序段(主要是顺序,分支,循环,子程序等结构)。编写程序主要采用8086指令系统编程。 3.电路设计及电路分析(20%):存储器系统电路设计;常见的I/O接口(例8255A,8155A,8253A,8250A等)与计算机系统的连接技术;常用控制电路的设计及应用技术。主要以中断和查询两种传输方式为主,能用指令编写简单的应用程序。 4.定时器技术的应用(10%):定时和计数的基本概念,应用场合。基本的应用技术主要是8253A定时/计数器的实际应用 5.A/D,D/A技术应用(10%) 主要:DAC0832、ADC0809的基本工作原理;与8086的连接技术及应用程序的编写。 6.串行通信接口的应用(10%) 主要:异步通信的基本知识;INS8250 串行通信接口的基本工作原理;初始化设置;基本应用编程。

微机原理试题及答案

微机原理试题及答案 微机原理试题及答案 一、填空题(每空1分,共15分) 1、在计算机中,对带符号数的运算均采用补码。带符号负数1100 0011的补码为_10111101_。2、单片机通常采用“三总线”的应用模式,芯片内部设有单独的地址总线、数据总线_ 和控制总线。 3、当使用80C51单片机时,需要扩展外部程序存储器,此时EA应为_0__。 4、若(A)=B3H,(R0)=A8H,执行指令XRL A,R0之后,(A)=_1BH__。 5、在80C51单片机中,带借位减法SUBB指令中,差的D7需借位时,_CY_=1,差的D3需借位时,AC_=1。 6、80C51单片机中,在调用子程序前,用_PUSH__指令将子程序中所需数据压入堆栈,进入执行子程序时,再用___POP__指令从堆栈中弹出数据。 7、在十六进制数与ASCII码值的转换过程中,当十六进制数在0~9之间时,其对应的ASCII码值为该十六进制数加___30H______。 8、外部中断INT0和INT1有两种触发方式:___电平触发方式_____和__边沿触发方式__。 9、在单片机串行通信中,依发送与接收设备时钟的配置情况,串行通信可以分为 __异步通信___和__同步通信_。10、若累加器A中的数据为

0111 0010B,则PSW中的P=__0___。二、选择题(每题1分,共15分) 1、单片机是在一片集成电路芯片上集成了以下部分,除了( D ) A、微处理器 B、存储器 C、I/O接口电路 D、串口通信接口2、一个机器周期包含多少个晶振周期(D ) A、2 B、6 C、8 D、12 3、80C51单片机有21个特殊功能寄存器,其中与串行口相关的有以下几个,除了( B ) A、SBUF B、TCON C、SCON D、PCON 4、 80C51系列单片机具有4个8位的并行I/O口,其中哪个口工作时需要外接上拉电阻(A ) A、P0 B、P1 C、P2 D、P3 5、寄存器中的内容为地址,从该地址去取操作数的寻址方式称为( C ) A、寄存器寻址 B、直接寻址 C、寄存器间接寻址 D、变址寻址6、源地址为1005H。目的'地址为 0F87H。当执行指令“JC rel”时,rel为( B )。A、7EH B、80H C、82H D、84H 7、若(R0)=30H,(30H)=75H,(75H)=90H,执行指令MOV A,@R0后,(A)=__B____。A、30H B、75H C、90H D、00H 8、下列哪个语句是起始地址设置伪指令( A )。A、ORG B、END C、DW D、EQU 9、在80C51单片机中,各中断优先级最低的是( D )。A、外部中断0 B、外部中断1 C、定时器0 D、计数器1 10、80C51单片机的中断响应时间至少需要( C )个完整的机器周期。A、1 B、2 C、3 D、5 11、在80C51单片机中,

(整理)微型计算机原理与接口技术

4.9练习题 10、写一个宏定义,要求能把任意一个寄存器的最低位移至另一个存储器的最高位中。 DATA SEGMENT VAR1 DB 4,6 VAR2 DD 200 DUP(?) DATA ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATA,SS:STACKS START: MOV AX,DATA MOV DS,AX XTY MACRO X,Y MOV AX,X AND AX,1 ROR AX,1 MOV Y,AX ENDM MOV DX,1 MOV AX,0 XTY DX,AX, MOV AH,4CH INT 21H CODES ENDS END START 11、利用DOS功能调用从键盘输入60个字符到缓冲区BUF中,在按下ENTER键后在屏幕上显示这些字符。请写出程序段。 DATA SEGMENT ST1 DB 'Please input 60 characters from keyboard.',0DH,0AH,'$' BUF DB 61 DUP(?) DATA ENDS COD SEGMENT ASSUME CS:COD,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DL,07H MOV AH,2 INT 21H MOV DX,OFFSET ST1 MOV AH,9 INT 21H LEA SI, BUF MOV CX,60 LP: MOV AH,7 INT 21H MOV [SI],AL CMP AL,0DH JZ EXIT INC SI LOOP LP EXIT: MOV BX,60 SUB BX,CX MOV CX,BX LEA SI, BUF LP2: MOV DL,[SI] MOV AH,6 INT 21H INC SI LOOP LP2 MOV AH,4CH INT 21H COD ENDS END START

微型计算机原理与应用_第四版_课后答案_(郑学坚_朱定华)

微机原理第七章答案 7.3 设AX=1122,BX=3344H,CX=5566H,SS=095BH,SP=0040H,下述程序执行 后AX ,BX ,CX ,DX 4个通用寄存器内容是多少?画出堆栈存储器的物理地址及存储内容和SP 指向的示意图。 PUSH AX PUSH BX PUSH CX POP BX POP AX POP DX 参考答案:(BX)=5566H, (AX)=3344H, (DX)=1122H ,(CX)=5566H 堆栈段物理地址=SS*16(左移4位)+SP

7.4 设SP=0040H,如果用进栈指令存入5个数据,则SP=0036H,若用出栈指令取出两个数据,则SP=003AH 。 7.5将表中程序段各指令执行后AX的值用十六进制数填入表中 参考答案: 7.6用十六进制数填下表,已知DS=1000H,ES=2000H,SS=0FC0H,通用寄存器的值为0。 参考答案:逻辑地址=段基址:段内偏移地址 BP以SS为默认段基址,其余寄存器以DS为默认段基址 ES:为段前缀,以ES为段基址

7.7 试给出执行完下列指令后OF、SF、ZF、CF4个可测试标志位的状态(用十六进制给出FLAG的值,其余各位为0) (1)MOV AX,2345H (2) MOV BX,5439H ADD AX,3219H ADD BX,456AH (3)MOV CX,3579H (4) MOV DX,9D82H SUB CX,4EC1H SUB DX,4B5FH

参考答案:(这里除了上面4个标志还考虑了奇偶标志PF和辅助进位标志AF)(1)AX=555EH FLAG=0000H (2)BX=99A3H FLAG=0894H (3)CX=E6B8 FLAG=0081H (4)DX=5223 FLAG=0014H 7.8AX 中有一负数,欲求其绝对值,若该数为补码,则使用指令NEG AX;若为原码则用指令AND AX,7FFFH。。 7.9 分别写出实现如下功能的程序段: (1)将AX中间8位(做高8位),BX低4位和DX高4位(做低4位)拼成一个新字。(注意:左移右移操作) AND AX,0FF0H MOV CL,04H

微机原理习题集以及答案

第一部分 例题与习题 第1章 微型计算机基础 例 题 1.把十进制数转化为二进制数。P7 解:把十进制数转换成二进制数时,需要对一个数的整数部分和小数部分分别进行处理,得出结果后再合并。 整数部分:一般采用除2取余法 小数部分:一般采用乘2取整法 余数 低位 整数 高位 2 | 137 2 | 68 × 2 2 | 34 2 | 17 × 2 2 | 8 2 | 4 × 2 2 | 2 1 高位 低 位 (137)10=()2 10=2 所以,10=(.111)2 2.把二进制数转换为八进制数和十六进制数。P9 解:八进制、十六进制都是从二进制演变而来,三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数,从二进制向八进制、十六进制转换时,把二进制数以小数点为界,对小数点前后的数分别分组进行处理,不足的位数用0补足,整数部分在高位补0,小数部分在低位补0。 (10 1)2=(010 100)2=8 (1 2=(0001 2=16 3.将八进制数转换为二进制数。P9 解:8=(010 100)2=2 4.X=,Y=-,求[X -Y]补,并判断是否有溢出P11 解:[X -Y]补=[X]补+[-Y]补 [X]补= [Y]补= [-Y]补= + -------------- 1 -------------- 0 -------------- 0 -------------- 1 -------------- 0 -------------- 0 -------------- 0 -------------- 1 ------------- 1 ------------- 1 ------------- 1

微机原理习题及答案

一、选择 1、在微型计算机中,微处理器的主要功能是进行( )。 D A、算术运算 B、逻辑运算 C、算术、逻辑运算 D、算术、逻辑运算及全机的控制 2、Pentium I属于()位CPU C A、16 B、8 C、32 D、64 3、Intel 8086属于()位CPU A A、16 B、8 C、32 D、64 4、CPU与I/O设备间传送的信号通常有( ) D A、控制信息 B、状态信息 C、数据信息 D、以上三种都有 5、存储器用来存放计算机系统工作时所需要的信息,即( )。 D A、程序 B、数据 C、技术资料 D、程序和数据 6、运算器的核心部件是( )。 D A、加法器 B、累加寄存器 C、多路开关 D、算逻运算单元 二、填空 1、内存可分为2大类:随机存储器RAM 和 2、数据总线是向的,地址总线是向的。 3、计算机的五大部件是:、、、、输出设备 4、总线可分为三类:、、 5、存储程序工作原理最先由提出 6、在计算机内部,一切信息的存取、处理和传送都是以形式进行的。 1、只读存储器ROM 2、双、单 3、运算器、控制器、存储器、输入设备 4、地址总线、数据总线、控制总线 5、冯·诺依曼 6、二进制 三、简答 1、冯·诺依曼型计算机的特点是什么? (1).以二进制表示指令和数据 (2).程序和数据存放在存储器中,从存储器中取指令并执行 (3).由运算器、控制器、存储器、输入设备、输出设备构成计算机硬件系统。 一、选择 1、在机器数______中,零的表示形式是唯一的()。BD A、原码 B、补码 C、反码 D、移码 2、计算机内部表示带符号整数通常采用()。C A、原码 B、反码 C、补码 D、移码

《微型计算机原理与接口技术》第三版)习题答案

《微机原理与接口技术》习题解答 习题1 1.1 冯·诺依曼型计算机的设计方案有哪些特点? 【解答】冯·诺依曼型计算机的设计方案是“存储程序”和“程序控制”,有以下5方面特点:(1)用二进制数表示数据和指令; (2)指令和数据存储在内部存储器中,按顺序自动依次执行指令; (3)由运算器、控制器、存储器、输入设备和输出设备组成基本硬件系统; (4)由控制器来控制程序和数据的存取及程序的执行; (5)以运算器为核心。 1.2 微处理器和微型计算机的发展经历了哪些阶段?各典型芯片具备哪些特点? 【解答】经历了6代演变,各典型芯片的特点如表1-1所示。 表1-1 微处理器的发展及典型芯片的特点 1.3 微型计算机的特点和主要性能指标有那些? 【解答】除具有运算速度快、计算精度高、有记忆能力和逻辑判断能力、可自动连续工作等基本特点以外,还具有功能强、可靠性高、价格低廉、结构灵活、适应性强、体积小、重量轻、功耗低、使用和维护方便等。 微型计算机的性能指标与系统结构、指令系统、硬件组成、外部设备以及软件配备等有关。常用的微型计算机性能指标主要有:字长、主频、内存容量、指令数、基本指令执行时间、可靠性、兼容性、性能价格比等。

1.4 常见的微型计算机硬件结构由哪些部分组成?各部分的主要功能和特点是什么? 【解答】微型计算机硬件一般由微处理器、内存储器、外存储器、系统总线、接口电路、输入/输出设备等部件组成。 主要组成部件的功能和特点分析如下: (1)微处理器:是微型计算机的核心部件,由运算单元ALU、控制单元、寄存器组以及总线接口部件等组成,其功能是负责统一协调、管理和控制系统中的各个部件有机地工作。 (2)内存储器:用来存放计算机工作过程中需要的操作数据和程序。可分为随机存储器RAM和只读存储器ROM。RAM存放当前参与运行的各种程序和数据,特点是信息可读可写,存取方便,但信息断电后会丢失;ROM用于存放各种固定的程序和数据,特点是信息固定不变,关机后原存储的信息不会丢失。 (3)系统总线:是CPU与其它部件之间传送数据、地址和控制信息的公共通道。可分成数据总线DB、地址总线AB、控制总线CB。 (4)输入/输出接口电路:完成微型计算机与外部设备之间的信息交换。由寄存器组、专用存储器和控制电路等组成。 (5)主机板:由CPU插座、芯片组、内存插槽、系统BIOS、CMOS、总线扩展槽、串行/并行接口、各种跳线和一些辅助电路等硬件组成。 (6)外存储器:使用最多的是磁盘存储器(软盘、硬盘)和光盘存储器。外存储器容量大,保存的信息不会丢失。 (7)输入/输入设备:是微型计算机系统与外部进行通信联系的主要装置。常用的有键盘、鼠标、显示器、打印机和扫描仪等。 1.5 什么是微型计算机的系统总线?说明数据总线、地址总线、控制总线各自的作用。 【解答】系统总线是CPU与其它部件之间传送数据、地址和控制信息的公共通道。 (1)数据总线:用来传送数据,主要实现CPU与内存储器或I/O设备之间、内存储器与I/O设备或外存储器之间的数据传送。 (2)地址总线:用来传送地址。主要实现从CPU送地址至内存储器和I/O设备,或从外存储器传送地址至内存储器等。 (3)控制总线:用于传送控制信号、时序信号和状态信息等。 1.6 什么是系统的主机板?由哪些部件组成? 【解答】CPU、RAM、ROM、I/O接口电路以及系统总线组成的计算机装置称为“主机”,主机的主体则是主机板。主机板上主要有CPU插座、芯片组、内存插槽、系统BIOS、CMOS、总线扩展槽、串行/并行接口、各种跳线和一些辅助电路等硬件。 1.7 计算机中有哪些常用的数制和码制?如何进行数制之间的转换? 【解答】数值数据经常用二进制、十进制、八进制和十六进制;字符数据使用ASCII码;表示十进制数字用BCD码。 (1)十进制到二进制:整数部分连续除以2后“倒取余”,小数部分连续乘以2后“正取整”; (2)二进制到十进制:将二进制数按权展开即可。 (3)二进制到八进制:将3位二进制一组对应1位八进制数码。 (4)八进制到二进制:将1位八进制数码对应3位二进制数码。 十六进制与二进制间转换与八进制与二进制间转换类似,只是比例关系为1位十六进制数码对应4位二进制数码。 1.8 将下列十进制数分别转化为二进制数、十六进制数和压缩BCD码。 (1)15.32 (2)325.16 (3)68.31 (4)214.126

微型计算机原理及应用课后习题解答

李伯成《微机原理》习题第一章 本章作业参考书目: ①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》 机械工业出版社2002年2月第一版 ②陆一倩编《微型计算机原理及其应用(十六位微型机)》 哈尔滨工业大学出版社1994年8月第四版 ③王永山等编《微型计算机原理与应用》 西安电子科技大学出版社2000年9月 1.1将下列二进制数转换成十进制数: X=10010110B= 1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21 =128D+0D+0D+16D+0D+0D+4D+2D=150D X=101101100B =1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20 =256D+0D+64D+32D+0D+16D+4D+0D=364D X=1101101B= 1*26+1*25+0*24+1*23+1*22+0*21 +1*20 =64D+32D+0D+8D+4D+0D+1D=109D 1.2 将下列二进制小数转换成十进制数: (1)X=0.00111B= 0*2-1+0*2-2+1*2-3+1*2-4+1*2-5= 0D+0D+0.125D+0.0625D+0.03125D=0.21875D (2) X=0.11011B= 1*2-1+1*2-2+0*2-3+1*2-4+1*2-5= 0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D (3) X=0.101101B= 1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6= 0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D 1.3 将下列十进制整数转换成二进制数: (1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B 1.4 将下列十进制小数转换成二进制数: (1)X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B 1.5 将下列十进制数转换成二进制数 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B 1.6 将下列二进制数转换成十进制数 (1) X=1001101.1011B =77.6875D

计算机组成原理第四章存储系统(一)(含答案)

第四章、存储系统(一) 4.1 存储系统层次结构随堂测验 1、哈弗结构(Harvard Architecture)是指()(单选) A、数据和指令分别存放 B、数据和指令统一存放 C、指令和数据分时存放 D、指令和数据串行存放 2、如果一个被访问的存储单元,很快会再次被访问,这种局部性是()(单选) A、时间局部性 B、空间局部性 C、数据局部性 D、程序局部性 3、下列关于存储系统层次结构的描述中正确的是()(多选) A、存储系统层次结构由Cache 、主存、辅助存储器三级体系构成 B、存储系统层次结构缓解了主存容量不足和速度不快的问题 C、构建存储系统层次结构的的原理是局部性原理 D、构建存储系统层次结构还有利于降低存储系统的价格 4、下列属于加剧CPU和主存之间速度差异的原因的是()(多选) A、由于技术与工作原理不同,CPU增速度明显高于主存增速率 B、指令执行过程中CPU需要多次访问主存 C、辅存容量不断增加 D、辅存速度太慢 5、下列关于局部性的描述中正确的是()(多选) A、局部性包括时间局部行和空间局部性 B、局部性是保证存储系统层次结构高效的基础 C、顺序程序结构具有空间局部性 D、循环程序结构具有时间局部性 4.2 主存中的数据组织随堂测验 1、设存储字长为64位,对short 变量长度为16位,数据存储按整数边界对齐,关于short 变量j 在主存中地址的下列描述中正确的是()(此题为多选题) A、j的物理地址mod 8 = 0 B、j的物理地址mod 8 = 1 C、j的物理地址mod 8 = 2 D、j的物理地址mod 8 = 3

2、设存储字长为64位,对char 变量长度为8位,数据存储按整数边界对齐,关于char 变量j 在主存中地址的下列描述中正确的是()(此题为多选题) A、j的物理地址mod 8 = 0 B、j的物理地址mod 8 = 1 C、j的物理地址mod 8 = 2 D、j的物理地址mod 8 = 3 3、下列关于大端与小端模式的描述中,正确的是()(此题为多选题) A、大端模式(Big-endian)是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中 B、小端模式(Little-endian)是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中 C、0x12345678 按大端模式存放时,其所在存储单元最低字节单元存放的数据是0x12 D、0x12345678 按小端模式存放时,其所在存储单元最高字节单元存放的数据是0x12 4、下列关于存储字长的描述中正确的是()(此题为多选题) A、主存一个单元能存储的二进制位数的最大值 B、存储字长与所存放的数据类型有关 C、存储字长等于存储在主存中数据类型包含的二进制位数 D、存储字长一般应是字节的整数倍 5、某计算机按字节编址,数据按整数边界存放,可通过设置使其采用小端方式或大端方式,有一个float 型变量的地址为FFFF C000H ,数据X = 12345678H,无论采用大端还是小段方式,在内存单元FFFF C001H,一定不会存放的数是()(此题为多选题) A、12H B、34H C、56H D、78H 4.3 静态存储器工作原理随堂测验 1、某计算机字长16位,其存储器容量为64KB,按字编址时,其寻址范围是()(单选) A、64K B、32KB C、32K D、64KB 2、一个16K*32位的SRAM存储芯片,其数据线和地址线之和为()(单选) A、48 B、46 C、36 D、39

微机原理试题及答案 (1)

学年第学期微机原理及应用(A)课程试卷 卷16 班级姓名得分任课教师 一、选择题:(每题分,共18分) 1、DMAC向CPU发出请求信号,CPU响应并交出总线控制权后将( 3)。 反复执行空操作,直到DMA操作结束 进入暂停状态, 直到DMA操作结束 进入保持状态, 直到DMA操作结束 进入等待状态, 直到DMA操作结束 2、有一个实时数据采集系统,要求10ms进行一次数据采集,然后进行数据 处理及显示输出,应采用的数据传送方式为( 3 )。 无条件传送方式查询方式 中断方式直接存储器存取方式 3、在数据传送过程中,数据由串行变并行,或由并行变串行的转换可通过 (3 )来实现。 计数器寄存器移位寄存器 D触发器 4、8088 CPU输入/输出指令可寻址外设端口的数量最大可达(4 )个。 128 256 16K 64K 5、CPU响应中断后,通过( 4)完成断点的保护。 执行开中断指令执行关中断指令 执行PUSH指令内部自动操作 6、并行接口芯片8255A具有双向数据传送功能的端口是(1 )。 PA口PB口 PC口控制口 7、8088CPU处理动作的最小时间单位是(2 )。 指令周期时钟周期机器周期总线周期8.堆栈是内存中(4 )。 先进先出的ROM区域后进先出的ROM区域 先进先出的RAM区域后进先出的RAM区域

9、计算机中广泛应用的RS-232C实质上是一种(3 )。 串行接口芯片串行通信规程(协议) 串行通信接口标准系统总线标准 5--1 10、高速缓冲存储器(CACHE)一般是由( 1 )芯片组成。 SRAM DRAM ROM EPROM 11、鼠标器是一种(3 )。 手持式的作图部件手持式的光学字符识别设备 手持式的座标定位部件手持式扫描器 12、传送速度单位“bps”的含义是( 2 )。 bytes per second bits per second baud per second billion bytes per second 二、填空题:(每空1分,共12分) 1、CPU在响应中断后,自动关中。为了能实现中断嵌套,在中断服务程序中, CPU必须在保护现场后,开放中断。 2、在计算机运行的过程中,有两股信息在流动,一股是数据,另 一股则是控制命令。 3、指令MOV BX,MASK[BP]是以 ss 作为段寄存器。 4、指令REPE CMPSB停止执行时,表示找到第一个不相等的字符 或 CX=0 。 5、设CF=0,(BX)= 7E15H,(CL)= 03H,执行指令 RCL BX,CL后, (BX) = ,(CF)=,(CL)=。0F0A9H 1 3 6、在8088 CPU中,一个总线周期是 CPU从存储器或I/O端口存取一个字 节的时间。 8253定时/计数器有 3 个独立的16位计数器,每个计数器都可按二进制或 bcd 来计数。 三、程序设计(共40分) 1.(10分)假设X和X+2单元与Y和Y+2单元中分别存放的是两个双

微型计算机原理与应用试题库答案

《微型计算机原理及应用》试题库及答案 一、填空 1.数制转换 A)125D=(0111 1101 )B =(175 )O=(7D )H=(0001 0010 0101 )BCD B)10110110B=(182 )D =(266)O=(B6 )H=(0001 1000 0010)BCD 2.下述机器数形式可表示的数值范围是(请用十进制形式写出):单字节无符号整数0~ 255 ;单字节有符号整数-127 ~127 。 (注:微型计算机的有符号整数机器码采用补码表示,单字节有符号整数的范围为-128~+127。)3.完成下列各式补码式的运算,并根据计算结果设置标志位SF、ZF、CF、OF。指出运算结果 有效否。 A)00101101+10011100=11001001B SF=1 ZF=0 CF=0 OF=0 B)11011101+10110011=10010000B SF=1 ZF=0 CF=1 OF=0 4.十六进制数2B.4H转换为二进制数是_0010 1011.0100B ,转换为十进制数是_43.25。 5.在浮点加法运算中,在尾数求和之前,一般需要操作,求和之后还需要进行和 舍入等步骤。 6.三态门有三种输出状态:低电平、高电平、高阻态状态。 7.字符“A”的ASCII码为41H,因而字符“E”的ASCII码为45H ,前面加上偶 校验位后代码为。 8.数在计算机中的二进制表示形式称为机器数。 9.在计算机中,无符号书最常用于表示。 10.正数的反码与原码相等。 11.在计算机中浮点数的表示形式有整数和小数两部分组成。 12.微处理器中对每个字所包含的二进制位数叫字节。 13.MISP是微处理的主要指标之一,它表示微处理器在1秒钟内可执行多少

微机原理试题及答案

微机原理试题及答案 Revised as of 23 November 2020

学年第学期微机原理及应用(A)课程试卷 卷16 班级姓名得分任课教师 一、选择题:(每题分,共18分) 1、DMAC向CPU发出请求信号,CPU响应并交出总线控制权后将( )。 反复执行空操作,直到DMA操作结束 进入暂停状态, 直到DMA操作结束 进入保持状态, 直到DMA操作结束 进入等待状态, 直到DMA操作结束 2、有一个实时数据采集系统,要求10ms进行一次数据采集,然后进行数据处理及显示输出,应 采用的数据传送方式为()。 无条件传送方式查询方式 中断方式直接存储器存取方式 3、在数据传送过程中,数据由串行变并行,或由并行变串行的转换可通过()来实现。 计数器寄存器移位寄存器 D触发器 4、8088 CPU输入/输出指令可寻址外设端口的数量最大可达()个。 128 256 16K 64K 5、CPU响应中断后,通过()完成断点的保护。 执行开中断指令执行关中断指令 执行PUSH指令内部自动操作 6、并行接口芯片8255A具有双向数据传送功能的端口是()。 PA口 PB口 PC口控制口 7、8088CPU处理动作的最小时间单位是()。 指令周期时钟周期机器周期总线周期

8.堆栈是内存中()。 先进先出的ROM区域后进先出的ROM区域 先进先出的RAM区域后进先出的RAM区域 9、计算机中广泛应用的RS-232C实质上是一种()。 串行接口芯片串行通信规程(协议) 串行通信接口标准系统总线标准 5--1 10、高速缓冲存储器(CACHE)一般是由()芯片组成。 SRAM DRAM ROM EPROM 11、鼠标器是一种()。 手持式的作图部件手持式的光学字符识别设备 手持式的座标定位部件手持式扫描器 12、传送速度单位“bps”的含义是()。 b ytes per second bits per second baud per second billion bytes per second 二、填空题:(每空1分,共12分) 1、CPU在响应中断后,自动关中。为了能实现中断嵌套,在中断服务程序中,CPU必须在 后,开放中断。 2、在计算机运行的过程中,有两股信息在流动,一股是,另一股则是。 3、指令MOV BX,MASK[BP]是以作为段寄存器。 4、指令REPE CMPSB停止执行时,表示找到或。 5、设CF=0,(BX)= 7E15H,(CL)= 03H,执行指令 RCL BX,CL后, (BX)= , (CF)=,(CL)=。 6、在8088 CPU中,一个总线周期是。 7、8253定时/计数器有个独立的16位计数器,每个计数器都可按二进制或 来计数。 三、程序设计(共40分)

计算机组成原理第四章作业答案(终板)学习资料

计算机组成原理第四章作业答案(终板)

第四章作业答案 4.1 解释概念:主存、辅存,Cache, RAM, SRAM, DRAM, ROM, PROM ,EPROM ,EEPROM CDROM, Flash Memory. 解:1主存:主存又称为内存,直接与CPU交换信息。 2辅存:辅存可作为主存的后备存储器,不直接与CPU交换信息,容量比主存大,速度比主存慢。 3 Cache: Cache缓存是为了解决主存和CPU的速度匹配、提高访存速度的一种存储器。它设在主存和CPU之间,速度比主存快,容量比主存小,存放CPU最近期要用的信息。 4 RAM; RAM是随机存取存储器,在程序的执行过程中既可读出信息又可 写入信息。 5 SRAM: 是静态RAM,属于随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。靠触发器原理存储信息,只要不掉电,信息就不会丢失。 6 DRAM 是动态RAM,属于随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。靠电容存储电荷原理存储信息,即使电源不掉电,由于电容要放电,信息就会丢失,故需再生。 7 ROM: 是只读存储器,在程序执行过程中只能读出信息,不能写入信息。 8 PROM: 是可一次性编程的只读存储器。 9 EPROM 是可擦洗的只读存储器,可多次编程。 10 EEPROM: 即电可改写型只读存储器,可多次编程。 11 CDROM 即只读型光盘存储器。 12 Flash Memory 即可擦写、非易失性的存储器。

4.3 存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次? 答:存储器的层次结构主要体现在Cache—主存和主存—辅存这两个存储层次上。 Cache—主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。 主存—辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。 综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。 主存与Cache之间的信息调度功能全部由硬件自动完成。而主存—辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部份通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。

微型计算机原理与接口技术 张荣标

第一章 1.选择题 (1)C (2) D A(3) C 3填空 (1)CPU,微型计算机,系统软件,外围设备,微型计算机系统 (2)10,3,12 (3)阶数 (4)10010010B,01000100B,11010110B,FF4EH (5)3F7H,1C3H,243H,277H, 4简答题 (1)微处理器,微型计算机和微型计算机系统三者有何联系与区别? 微处理器是把原来的中央处理单元CPU的复杂电路(包括运算器和控制器)做在一片或几片大规模集成电路的芯片上。把这种微缩的CPU大规模集成电路称为微处理器。 微型计算机是以微处理器为核心,再配备上用大规模集成电路工艺制成的存储器和I/O接口就构成了微型计算机。 以微计算机为核心,再配备上系统软件、I/O设备、辅助电路和电源就构成了微机系统。微型计算机系统包括硬件和软件了两大部分。 (2)试述在计算机中常采用二进制的缘由? (3)简述如何从补码判断真值的符号? (4)BCD码与纯二进制数有何区别? 主要区别是二者对应的二进制位所表示的二进制真值不同, (5)试述机器数的定点和浮点数表示形式。 第2章 2填空题

(1)递增,A7,A5,A3,A1. (2)地址总线的宽度,00000H~0FFFFFH (3)寄存器,运算器,控制器;运算和控制 (4)SS,SP (5)MN/MX (6)主频,总线宽度 (7)20,16 3简答题 (1)什么是指令周期?什么是总线周期?一个总线周期至少包括几个时钟周期? 指令周期是一条指令执行所需的时钟周期,cpu在执行指令过程中,凡需执行访问存储器或访问I/O端口的操作都统一交给BIU的外部总线完成,进行一次访问所需的时间称为一个总线周期。一般一个基本的总线周期由4个时钟周期组成。 (2)8086CPU在最小模式下构成计算机系统至少应该包括哪几个基本的部分? (3)8086CPU中,标志寄存器包含哪些标志位?各标志位为‘0’,‘1’分别表示什么含义? (4)8086CPU中有哪些通用寄存器和专用寄存器?说明他们的作用。 (5)在8086CPU中,已知CS寄存器和IP寄存器的内容分别如下所示,请确定其物理地址. 1) CS=1000H ,IP=2000H 物理地址: CS*16+IP=10000H+2000H=12000H 2) CS=1234H ,IP=0C00H物理地址: CS*16+IP=12340H+0C00H=12F40H (6)设(AX)=2345H,(DX)=5219H,请指出两个数据相加或相减后,FLAG中状态标志位的状态. 相加: CF=0,SF=0,ZF=0,AF=0,OF=0,PF=0 相减:0010 0011 0100 0101

计算机组成原理第四章

1.证明在全加器里,进位传递函数。 解:并行加法器中的每一个全加器都有一个从低位送来的进位和一个传送给较高位的进位。进位表达式为欲证明,也就是要证明 用卡诺图法,图4-10(a)和4-10(b)分别是两个逻辑表达式的卡诺图。两个卡诺图相同,两个逻辑表达式就相等,则进位传递函数的两种形式相等。 2.某加法器采用组内并行、组间并行的进位链,4位一组,写出进位信号C6的逻辑表达式。 3.设计一个9位先行进位加法器,每3位为一组,采用两级先行进位线路。 4.已知X 和Y ,试用它们的变形补码计算出X + Y ,并指出结果是否溢出。 (1) X =0.11011,Y =0.11111 (2) X =0.11011,Y =-0.10101 (3) X =-0.10110,Y =-0.00001(4) X =-0.11011,Y =0.11110

5.已知X 和Y ,试用它们的变形补码计算出X - Y ,并指出结果是否溢出。 (1) X =0.11011,Y =-0.11111 (2) X =0.10111,Y =0.11011 (3) X =0.11011,Y =-0.10011 (4) X =-0.10110,Y =-0.00001 7.设下列数据长8位,包括1位符号位,采用补码表示,分别写出每个数据右移或左移2位之后的结果。 (1)0.1100100 (2)1.0011001 (3)1.1100110 (4)1.0000111 8.分别用原码乘法和补码乘法计算X × Y 。 (1) X =0.11011,Y =-0.11111 (2) X =-0.11010,Y =-0.01110 (2) X × Y =0.0101101100,过程略。 9.根据补码两位乘法规则推导出补码3位乘法的规则。

相关主题
文本预览
相关文档 最新文档