当前位置:文档之家› 微机原理与接口技术习题答案

微机原理与接口技术习题答案

微机原理与接口技术习题答案
微机原理与接口技术习题答案

《微机原理与接口技术》李华贵主编

课后习题参考答案

第1章(1.6 习题)

1.简述名词的概念:微处理器、微型计算机、微型计算机系统。

答:

(1)微处理器:微处理器(Microprocessor)简称μP或MP,或CPU。CPU是采用大规模和超大规模集成电路技术将算术逻辑部件ALU(Arithmetic Logic Unit)、控制部件CU (Control Unit)和寄存器组R(Registers)等三个基本部分以及内部总线集成在一块半导体芯片上构成的电子器件。

(2)微型计算机:微型计算机(Microcomputer)是指以微处理器为核心,配上由大规模集成电路制作的存储器、输入/输出接口电路及系统总线等所组成的计算机,简称微机。

(3)微型计算机系统:微型计算机系统由硬件与软件两大部分组成,分别称为硬件(Hardware)系统与软件(Software)系统。其中,硬件(Hardware)系统由CPU、内存储器、各类I/O接口、相应的I/O设备以及连接各部件的地址总线、数据总线、控制总线等组成。

软件(Software)系统:计算机软件(Software)是指为运行、维护、管理、应用计算机所编制的程序及程序运行所需要的数据文档资料的总和。一般把软件划分为系统软件和应用软件。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。

2.简述名词的概念:指令寄存器、地址寄存器、标志寄存器。

答:

(1)指令寄存器:指令寄存器(Instruction Register,IR)用来保存计算机当前正在执行或即将执行的指令。当一条指令被执行时,首先,CPU从内存取出指令的操作码,并存入IR中,以便指令译码器进行译码分析。

(2)地址寄存器:地址寄存器(Address Register,AR)被动地接受IP传送给它的地址值(二进制地址),AR的作用是保持IP送来的地址,并且以并行方式连接输出到CPU的地址引脚上,以便CPU访问指定的内存单元。

(3)标志寄存器:标志寄存器(Flags,F)是CPU中不可缺少的程序状态寄存器,因此,也称程序状态字寄存器(PSW),所谓状态是指算术或逻辑运算后,结果的状态以二进制的0或1在标志寄存器中标识出来,例如,运算结果有进位,则进位标志位CF=1,否则为0。

3.何谓IA-32处理器?

《微机原理与接口技术》课后习题的参考答案

答:

Intel公司推出了32位结构的80386微处理器后,确定了80386芯片的指令集结构(Instruction Set Architecture)为以后开发80X86系列处理器的标准,称其为Intel 32位结构(Intel Architecture-32,IA-32),后来的80486、Pentium等微处理器统称为IA-32处理器,或称32位80X86处理器。

4.什么叫总线?总线包括哪三种?

答:

所谓总线,它将多个功能部件连接起来,并提供传送信息的公共通道,能为多个功能部件分时共享,CPU通过总线连接存储器和I/O接口等,构成了微型计算机。

这里指的总线(BUS)包括地址总线、数据总线和控制总线三种。

5.地址总线的作用是什么?

答:

地址总线(Address Bus,AB),通常是CPU用来发出地址信息的,用于对存储器和I/O 接口进行寻址。

6.什么叫溢出?判断溢出的方法是什么?

答:

(1)溢出通常指计算机运算的结果超出了计算机所能允许的范围。本章所讲的溢出是指用补码实现加/减运算后,若参与操作的两数在定义域内,但运算结果超出了字长范围内补码所能允许表示的值,所计算出的结果产生了错误,称之为溢出。

(2)加/减运算判断溢出的方法:

如果把加/减法运算都变成补码相加,则两个正数相加可能产生正的溢出,两个负数相加可能会产生负的溢出,正负两数相加不会产生溢出。

具体实现的方法是:两个操作数运算后,用最高位和次高位产生的进位位异或,异或结果为1,则表示有溢出,结果为0,表示无溢出。例如:两个8位数运算后,溢出标志OF=C6⊕C7

7.假设四种CPU主存地址分别为16根、20根、24根以及32根,试问每种CPU可寻址内存多少字节?

解:每种CPU可寻址内存分别是:216=64KB、220=1MB、224=16MB、232=4GB。

8.在一般指令格式中,由哪两部分组成?

答:

由操作码和操作数组成。

9.设字长为16位,将下列十进制数转换成二进制数、十六进制数以及BCD数。

①65 ②129 ③257 ④513

- - 2

解:

①65=01000000B=41H=(0110 0101)BCD

②129=10000001B=81H=(0001 0010 1001)BCD

③257=100000001B=101H=(0010 0101 0111)BCD

④513=1000000001B=201H=(0101 0001 0011)BCD

10.设字长为8位,写出x、y的原码、反码和补码,并且用补码计算x+y,问是否有溢出?

①x=-78 y=35 ②x=-64 y=-66

解:

①x=-78 y=35

[X]原=11001110,[X]反=10110001,[X]补=10110010

[Y]原=00100011,[Y]反=00100011,[Y]补=00100011

[X]补+[Y]补=10110010+00100011=11010101,无溢出。

②x=-64 y=-66

[X]原=11000000,[X]反=10111111,[X]补=11000000

[Y]原=11000010,[Y]反=10111101,[Y]补=10111110

[X]补+[Y]补=11000000+10111110=01111110,有溢出。

11.试用8位二进制写出以下数、字母以及控制命令的ASCⅡ码,还要写出它们各自的奇校验、偶校验、标记校验及空格校验的ASCⅡ码。

① B ②8 ③CR ④NUL

解:各自对应的奇校验、偶校验、标记校验及空格校验的ASCⅡ码如表1所示。

表1 数、字母以及控制命令的ASCⅡ码

12.设两个BCD数X=1000 1001,Y=0111 0101,试用列竖式的方法计算X+Y,注意要做加6修正运算。

解:

1000 1001

0111 0101

1111 1110 结果不正确

110 个位加6修正

- -

3

《微机原理与接口技术》课后习题的参考答案

1 0000 0100 结果还不正确

+ 110 十位加6修正

1 0110 0100 结果正确

13.若规格化32位浮点数N的二进制存储格式为41360000H,求其对应的十进制数值。

解:

41360000H=0 10000010 01101100000000000000000B

N=(-1)S×(1.M)×2E-127=(-1)0×(1.011011)×2130-127

=1.011011×23=1011.011=11.375D

14.微机中的存储器是如何编址的?

答:

在微机中,存储器均按字节(一字节由8位二进制信息组成)编址,即每个字节有一个二进制的地址编码。给每个存储单元分配的一个固定地址,称为单元地址。

15.微型计算机的硬件系统由那些部件组成?

答:

微型计算机的硬件系统主要由运算器、控制器、存储器、输入设备及输出设备五大部分组成。

16.计算机的主要性能指标有哪些?

答:字长、CPU的主频、主存储器的容量及外存储器的容量等。

第2章(2.5 习题)

1.微型计算机可以工作在哪三种工作模式下?

答:

微处理器可以工作在:实地址模式、保护模式及虚拟8086模式共三种。

2.如何从实模式转变到保护模式?

答:

通过对CPU中的控制寄存器CR0中的b0位置1,即保护允许位PE置1,于是系统进入保护模式。这是由操作系统程序来实现的。

3.实模式有哪些特征?

答:

实地址模式(Real-Address Mode)也称实模式,简单地说,是指80286以上的微处理器所采用的8086的工作模式。在实模式下,采用类似8086 CPU的体系结构,其寻址机制,尤

- - 4

其是存储器寻址,以及中断处理机制均和8086相同。在实模式下,关键是CPU寻址空间只有1MB(00000H~FFFFFH),也是采用分段管理存储器的方式,将存储器分成四种类型的段,每段存储空间最大为64KB。将1MB的存储空间保留两个区域:一个是中断向量表区(00000~003FFH),这是1KB的存储空间,用于存放256个中断服务程序的入口地址(中断向量),每个中断向量占4字节。

4.16位微处理器有哪些通用寄存器?

答:

AX、BX、CX、DX、SI、DI、SP和BP。

5.16位微处理器有哪4个段寄存器?每个段寄存器的作用是什么?

答:

4个段寄存器分别是代码段寄存器CS、数据段寄存器DS、附加段寄存器ES及堆栈段寄存器SS。

(1)代码段寄存器CS是一个随机存取存储区,用来保存微处理器使用的程序代码。在8086系统中,代码段寄存器CS定义了代码段的起始地址。代码段的最大存储空间为64KB。

(2)数据段寄存器DS也是一个随机存取存储区,用来保存程序执行过程中所使用的数据及存放程序运行后的结果。数据段寄存器DS定义了数据段的起始地址,其最大存储空间也是64KB。

(3)附加段寄存器ES是为某些串操作指令存放操作数而附加的一个数据段。与数据段类似,附加段寄存器ES定义了附加段的起始地址,其最大存储空间也为64KB。

(4)堆栈段寄存器SS是一个特殊的随机存取存储区,用来临时保存程序执行过程中有关寄存器的内容、程序的地址信息及传递参数等。堆栈段寄存器SS与堆栈指针SP共同确定堆栈段内的存取地址。其最大存储空间为64KB。

6.如何理解32位微处理器的通用寄存器与16位的通用寄存器兼容?

答:

虽然32位微处理器将8086原来的8个16位通用寄存器AX、BX、CX、DX、SI、DI、BP、SP均扩展成(Extended)32位的寄存器,即EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。但是,它保留了原来的8个16位寄存器和8个8位的寄存器,仍然可以使用它们编程,当然,所编写的程序仍然可以在32位机上运行。既可以用32位寄存器编程,还可以用16位及8位寄存器编程,这就实现了寄存器的兼容。

7.什么叫段基地址?什么叫偏移地址?

答:

编程人员在编程时,只能涉及到逻辑地址,而不能涉及到实际地址。逻辑地址在实模式下,它由段基地址与段内偏移地址组成,习惯上写为“段基地址:偏移地址”,实模式下,段基地址与段内偏移地址都是16位,段基地址是段起始地址的高16位,说明每个段在主存中的起始位置,段内偏移地址也称“偏移量”,是所要访问存储单元距离起始地址之

- -

5

《微机原理与接口技术》课后习题的参考答案

间的字节距离。

在32位段的情况下,偏移量是32位。

8.段寄存器与32位偏移地址寄存器的固定搭配如何?

答:

固定搭配如表2所示。

表2 段寄存器与32位偏移地址寄存器的固定搭配

9.8086 CPU由哪两部分组成?它们的主要功能各是什么?

答:

8086 CPU内部结构从功能上看,它由两大部件组成,分为总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。

(1)总线接口部件BIU的主要功能:它是8086 CPU与外部存储器和I/O端口的接口,提供了16位双向数据总线和20位地址总线,负责CPU与存储器及I/O端口之间的数据传送操作(包括物理地址的形成)。

(2)执行部件EU主要功能:从BIU中的指令队列获取指令,对指令进行译码分析并执行,执行指令所需要的操作数和运算结果的存储,是由EU向BIU传递偏移地址,BIU只要收到EU送来的偏移地址,于是将送来的偏移地址与相应的段地址组成20位的物理地址,根据现行的20位物理地址,通过执行存储器的读/写总线周期来完成读/写操作,或者是通过执行I/O端口的读/写总线周期来完成读/写I/O端口的操作。

10.8086 CPU中的标志寄存器FLAGS有哪些状态标志位?在什么情况下置位?

答:

状态标志有6位:CF、PF、AF、ZF、SF和OF。

①CF(Carry Flag),进位标志位。本次运算中最高位有进位或借位时,CF=1。

②PF(Parity Flag),奇偶校验标志位。本次运算结果的低8位中1的个数为偶数时,PF=1。

③AF(Auxiliary Carry Flag),辅助进位标志位。本次运算结果低4位向高4位有进位或借位时,AF=1。

④ZF(Zero Flag),零标志位。若运算结果为0时,ZF=1。

- - 6

⑤SF(Sign Flag),符号标志位。当运算结果的最高位为1,则SF=1。

⑥OF(Overflow Flag),溢出标志位。当运算结果有溢出时,OF=1。

11.什么是逻辑地址?什么是物理地址?如何将逻辑地址转换为物理地址?

答:从8088/8086开始,CPU内部就有了对存储器的分段机制,每个存储单元可以看成两种地址:逻辑地址与物理地址。

(1)逻辑地址

逻辑地址是编程时所使用的地址,在实模式下,它由段基地址与段内偏移地址组成,习惯上写为“段基地址:偏移地址”。

(2)物理地址

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

(3)在实地址方式下,由CPU中的总线接口单元将段基地址左移4位后与16位的偏移地址相加,生成20位的物理地址。可以访问1MB的存储空间。

12.设X=35H,Y=76H,进行X+Y和X-Y运算后,标志寄存器FLAGS的状态标志位各是什么?

答:

(1)X+Y=35+76后,CF=0、AF=0、SF=0、OF=0、ZF=0、PF=1。

(2)X-Y=35-76后,CF=1、AF=1、SF=1、OF=0、ZF=0、PF=1。

13.什么叫存储器地址交叉?微机的存储器为什么要用存储器地址交叉技术?

答:

(1)在一个物理存储芯片内部所有存储单元的地址编号都不是连续的,而在相邻存储芯片之间的物理地址是相连接的,例如,16位的微处理器8086/80286把内存地址分为偶地址的字节数据、奇地址的字节数据,因此,分为偶字库和奇字库,即在一个物理存储芯片内所有存储单元的地址编号都是奇地址,另一物理存储芯片内所有存储单元的地址编号都是偶地址,这就称为地址交叉。

(2)偶地址存储体与数据总线的低8位(D7~D0)相连,奇地址存储体与数据总线高8位(D15~D8)相连,可以由偶地址有效选中偶字库(例A0=0),由奇地址有效选中奇字库(例(BHE=0)。原因是:便于CPU可以只访问偶地址一个字节,也可以只访问奇地址一个字节,还可以访问一个字(2字节)。

在CPU的外部数据总线为32位的情况下,CPU不仅可能只访问一个字节、一个字,还可能访问一个双字,因此,把内存分成4个存储体,实现存储器地址的4体交叉。

14.请将实模式下逻辑地址转变成物理地址。

(1)FFFFH:0000H (2)0045H:0018H

(3)2000H:4600H (4)B821H:3456H

- -

7

《微机原理与接口技术》课后习题的参考答案

解:

(1)FFFFH:0000H,物理地址= FFFFH×16+0000H=FFFF0H

(2)0045H:0018H,物理地址= 0045H×16+0018H=00468H

(3)2000H:4600H,物理地址= 2000H×16+4600H=24600H

(4)B821H:3456H,物理地址= B821H×16+3456H=BB666H

15.在8086系统中,CPU执行访问存储器指令时,BHE=0,说明当前CPU要访问哪一个存储体?

答:

当BHE=0时,CPU要访问奇地址的存储体。

第3章(3.12 习题)

3.1 按照16位微处理器的寻址方式看,分别指出下列指令中源操作数和目的操作

数的寻址方式。

解:

(1) mov ax,0 ;源操作数:立即寻址,目的操作数:寄存器寻址

(2) mov [si],ax ;源操作数:寄存器寻址,目的操作数:变址寻址

(3) mov 2[di],bx ;源操作数:寄存器寻址,目的操作数:相对变址寻址

(4) mov 2[bx+si],dx ;源操作数:寄存器寻址,目的操作数:相对基址(加)变址

寻址

(5) mov ax,[1000h] ;源操作数:直接寻址,目的操作数:寄存器寻址

(6) mov dx,[bx][si] ;源操作数:基址(加)变址寻址,目的操作数:寄存器寻址

(7) mov ax,[bx] ;源操作数:基址寻址,目的操作数:寄存器寻址

(8) mov dx,[bp+8] ;源操作数:相对基址寻址,目的操作数:寄存器寻址

3.2 按照32位微处理器的寻址方式看,分别指出下列指令中源操作数和目的操作

数的寻址方式。

解:

(1) mov eax,01h ;源操作数:立即寻址,目的操作数:寄存器寻址

(2) mov [esi],ax ;源操作数:寄存器寻址,目的操作数:基址寻址

(3) mov [esi*2],bx ;源操作数:寄存器寻址,目的操作数:比例变址

寻址

- - 8

(4) mov [ebx+esi],dx ;源操作数:寄存器寻址,目的操作数: 基址加比例变址寻址

(5) mov eax,[1000h] ;源操作数:直接寻址,目的操作数:寄存器寻址

(6) mov dx,[ebx+esi*8] ;源操作数:基址加比例变址寻址,目的操作数:寄存器寻址

(7) mov edx,eax ;源操作数:寄存器寻址,目的操作数:寄存器寻址

(8) mov dx,[ebp*2+8] ;源操作数: 比例变址加位移寻址,目的操作数:寄存器寻址

(9) mov dx,[ebx+8] ;源操作数: 基址加位移寻址,目的操作数:寄存器寻址

(10) mov ax,[ebx+esi*2+78h] ;源操作数: 基址加比例变址加位移寻址,目的操作数:寄存器寻址

3.3 指出下列指令的错误原因

解:

(1) inc [si] ;目的操作数类型不明确

(2) mov eax,bx ;源操作数和目的操作数类型不匹配

(3) mov 2,ax ;立即数不能作目的操作数

(4) mov [ebx],[edi] ;源操作数和目的操作数不能同时为存储器操作数

(5) mov ax,[bx+bp] ;基址变址寻址方式不能同时为基址寄存器

(6) mov ax,[si+di] ;基址变址寻址方式不能同时为变址寄存器

(7) mov ah,300 ;300超出了ah可以容纳的数据范围

(8) mov cs,1000h ;cs不能由程序员赋值,它由系统自动赋值

(9) push al ;push要求操作数为16位或32位

(10) shl ax,8 ;当移位次数超过1时,先将移位次数送cl,再移位

(11) mov ax,bx+di ;基址变址寻址方式缺少一对方扩号

(12) mov ip,bx ;ip不能由程序员赋值,它由系统自动赋值

(13) mov es,ds ;源操作数和目的操作数不能同时为段寄存器

(14) mov [sp],ax ;入栈只能用push指令实现

3.4 比较下列两条指令,指出他们的区别。

解:

mov eax,[si] ;从内存读数据送eax

mov [si],eax ;把eax的值写入到内存

- -

9

《微机原理与接口技术》课后习题的参考答案

3.5 假设(EAX)=12345678H,写出下面每条指令单独执行后,(EAX)=?

解:

(1) and eax,0000ffffh ;(eax)=00005678h

(2) test eax,1 ;(eax)=12345678h

(3) xor eax,eax ;(eax)=0

(4) sub eax,eax ;(eax)=0

(5) add eax,1 ;(eax)=12345679h

(6) or eax,1 ;(eax)=12345679h

(7) cmp eax,0000ffffh ;(eax)=12345678h

(8) inc eax ;(eax)=12345679h

(9) dec eax ;(eax)=12345677h

(10) sub eax,8 ;(eax)=12345670h

3.6 假定(AX)=1234H,(BX)=00FFH,回答每条指令单独执行后,(AX)=?(BX)=?

解:

(1) and ax,bx ;(ax)=0034h (bx)=00ffh

(2) test ax,bx ;(ax)=1234h (bx)=00ffh

(3) xor ax,bx ;(ax)=12cbh (bx)=00ffh

(4) xchg ax,bx ;(ax)=00ffh (bx)=1234h

(5) add ax,bx ;(ax)=1333h (bx)=00ffh

(6) sub bx,ax ;(ax)=1234h (bx)=0eecbh

(7) or bx,ax ;(ax)=1234h (bx)=12ffh

(8) cmp ax,bx ;(ax)=1234h (bx)= 00ffh

3.7 假设(EAX)=11223344H,(EBX)=11225566H,写出下面程序段每条指令执行后

(EAX)=?(EBX)=?

解:

add eax,ebx ;(eax)=224488aaH,(ebx)=11225566H

add eax,00000088h ;(eax)=22448932H,(ebx)=11225566H sub eax,ebx ;(eax)=112233ccH,(ebx)=11225566H

inc ebx ;(eax)=112233ccH,(ebx)=11225567H

and ebx,0000ffffh ;(eax)=112233ccH,(ebx)=00005567H

- - 10

3.8 已知(DS)=1000H,(BX)=0100H,(SI)=0004H,存储单元[10100H]~[10107H]依次存放11H 22H 33H 44H 55H 66H 77H 88H,[10004H]~[10007H] 依次存放2AH 2BH 2CH 2DH,说明下列每条指令单独执行后AX中的内容。

解:

(1)MOV AX,[0100H] ;(AX)=2211H

(2)MOV AX,[BX] ;(AX)=2211H

(3)MOV AX,[0004H] ;(AX)=2B2AH

(4)MOV AX,[0102H] ;(AX)=4433H

(5)MOV AX,[SI] ;(AX)=2B2AH

(6)MOV AX,[SI+2] ;(AX)=2D2CH

(7)MOV AX,[BX+SI] ;(AX)=6655H

(8)MOV AX,[BX+SI+2] ;(AX)=8877H

3.9 已知(DS)=1000H,(EBX)=0100H,(ESI)=0004H,存储单元[10100H]~[10107H]依次存放11H 22H 33H 44H 88H 77H 66H 55H,[10004H]~[10007H] 依次存放8AH 8BH 8CH 8DH,说明下列每条指令执行后EAX中的内容。

解:

(1)MOV EAX,[0100H] ;(EAX)=44332211H

(2)MOV EAX,[EBX] ;(EAX)=44332211H

(3)MOV EAX,[EBX+4] ;(EAX)=55667788H

(4)MOV EAX,[0004H] ;(EAX)=8D8C8B8AH

(5)MOV EAX,[ESI] ;(EAX)=8D8C8B8AH

(6)MOV EAX,[EBX+ESI] ;(EAX)=55667788H

3.10 什么是堆栈?它的工作原理是什么?它的基本操作有哪两个?

答:

堆栈是在内存RAM中开辟的一段空间,利用“先进后出”或“后进先出”的原则存取数据。如果把数据压入堆栈,则堆栈指针的值是减少的,即所谓的向下生成堆栈。由SS:SP(16位)或SS:ESP(32位)指向栈底(栈空)或栈顶(栈不空)地址。它的基本操作有数据入栈指令PUSH和数据出栈指令POP。

3.11 设SS=1000H,SP=0100H,指出下列每条指令执行后,(AX)=?(BX)=?(SP)=?并且回答堆栈中的内容如何?

解:

MOV AX,2233H ;(AX)=2233H,(BX)不确定,(SP)=0100H

- -

11

《微机原理与接口技术》课后习题的参考答案

PUSH AX ;(AX)=2233H,(BX)不确定,(SP)=00FEH

MOV BX,4455H ;(AX)=2233H,(BX)=4455H,(SP)=00FEH

PUSH BX ;(AX)=2233H,(BX)=4455H,(SP)=00FCH

POP AX ;(AX)=4455H,(BX)=4455H,(SP)=00FEH

POP BX ;(AX)=4455H,(BX)=2233H,(SP)=0100H

这段指令执行后将AX和BX的值互换。

3.12 什么是16位段?它有何特点?

答:

32位微机在上电或复位后,微处理器首先工作在实地址模式,它与8086/80186的工作方式具有相同的基本结构,也只能寻址1MB物理存储空间,分段最大只能是64KB,但是,在实地址模式下,32位X86 CPU可以使用16位寄存器和16位寻址方式,这与8086 CPU兼容,32位X86 CPU还可以使用32位寄存器和32位寻址方式,处理32位数据及执行32位的新增指令,但是,段基地址和偏移量都只用16位,6个段寄存器仍然当作16位的段寄存器使用,对于偏移地址来说,如果是32位,则高16位应该为0,只有低16位偏移地址有效,相当于可以进行32位数处理的快速8086,所以称之为“16位段”。

3.13 什么是32位段?它与16位段的主要区别如何?

答:

32位X86 CPU由实地址模式可以进入保护工作模式,它是一个增强了80286保护模式功能的32位保护工作模式。在保护工作模式下,32位微处理器不仅具有段式存储器管理功能,而且还有页式存储器管理功能,支持虚拟存储器,段基地址和段内偏移量都是32位,称之为“32位段”,使用全部32条地址线,可以寻址的物理存储器达到4GB,只有在保护模式下,32位X86 CPU才能发挥全部功能。而32位段的程序只能在32位

Windows环境中执行。

3.14 16位存储器寻址中,分为哪几种寻址方式?

答:

(1)直接寻址

(2)基址寻址(包括相对基址寻址)

(3)变址寻址(包括相对变址寻址)

(4)基址(加)变址寻址

(5)相对基址(加)变址寻址

- - 12

3.15 32位存储器寻址中,分为哪几种寻址方式?

答:

(1)直接寻址

(2)基址寻址

(3)基址加位移寻址

(4)比例变址寻址

(5)比例变址加位移寻址

(6)基址加比例变址寻址

(7)基址加比例变址加位移寻址

3.16 对于立即寻址的指令,有8位、16位及32位的立即寻址的指令,各列举2条指令(一条是传送指令,另一条是加法指令)。

解:

8位立即寻址指令

(1) MOV AH,2

(2) ADD AL,3

16位立即寻址指令

(1) MOV AX,1234H

(2) ADD DX,3456H

32位立即寻址指令

(1) MOV EAX,12345678H

(2) ADD EDX,12345678H

3.17 用移位指令将ESI中内容移入EDI中,如何实现?

解:

.model small

.386

.code

.startup

mov esi,11223344h

mov edi,12345678h

- -

13

《微机原理与接口技术》课后习题的参考答案

shrd edi,esi,16

rol esi,16

shrd edi,esi,16

.exit

End

3.18 将EBX中存放的值清零,实现的方法有哪一些?

解:

(1) SUB EBX,EBX

(2) AND EBX,0

(3) XOR EBX,EBX

第4章(4.5 习题)1

- - 14

2.将下列程序段所定义字符串中的小写字母均改为大写字母,并放回原处,原大字母不变,最后,用DOS的9号功能显示这串大写字符,请完善下列程序。

.model small

.data

x db ‘Hello EVEryBODY !’,’$’

.code

.startup

解:

程序如下:

- -

15

《微机原理与接口技术》课后习题的参考答案

.model small

.386

.data

x db 'Hello EVEryBODY !','$'

.code

.startup

lea bx,x

.repeat

mov al,[bx]

.if al >= 'a' && al <= 'z'

sub al,20h

mov [bx],al

.endif

inc bx

.until al = = '$'

lea dx,x

mov ah,9

int 21h

.exit

end

3.设变量名VAL1、VAL2及SUM的数据类型属性都是双字属性,VAL1和VAL2中分别存放了一个32位的加数和被加数,SUM用于存放和数。

(1)选用简化段格式编程,实现两个32位数相加,结果存放到SUM变量所指的存储单元。

(2)选用完整段格式编程,实现上述相同的功能。提示:只能使用16数相加。

解:

程序一,简化段格式编程,实现两个32位数相加,结果存放到SUM变量所指的存储单元。

.model small

.386

.data

val1 dd 12345678h

val2 dd 87654329h

sum dd ?

.code

.startup

mov eax,val1

add eax,val2

- - 16

mov sum,eax

.exit

end

程序二,完整段格式编程,实现两个32位数相加,结果存放到SUM变量所指的存储单元。

data segment

val1 dd 12345678h

val2 dd 87654329h

sum dd ?

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov ax,word ptr val1

add ax,word ptr val2

mov word ptr sum,ax

mov ax,word ptr val1+2

add ax,word ptr val2+2

mov word ptr sum+2,ax

mov ah,4ch

int 21h

code ends

end start

4.将数据段内的一串字符传送到附加的数据段内,并将传送到附加数据段内的字符显示出来,要求用完整段和简化段两种格式分别编程实现。

解:

程序一,简化段格式编程,实现将数据段内的一串字符传送到附加的数据段内,并将传送到附加数据段内的字符显示出来。

.model small

.386

.data

x db 'Hello World !','$'

n equ $-x

y db 100 dup(?)

.code

.startup

- -

17

《微机原理与接口技术》课后习题的参考答案

mov ax,ds

mov es,ax

mov cx,n

lea si,x

lea di,y

rep movsb

mov ah,9

lea dx,y

int 21h

.exit

end

注意:在简化段模式编程时,数据段和附加数据段是同一段,在使用字符串指令时,用指令mov ax,ds、mov es,ax将DS和ES保持一致。

程序二,完整段格式编程,实现将数据段内的一串字符传送到附加的数据段内,并将传送到附加数据段内的字符显示出来。

data segment

x db 'Hello World !','$'

n equ $-x

data ends

edata segment

y db 100 dup(?)

edata ends

code segment

assume cs:code,ds:data,es:edata

start:

mov ax,data

mov ds,ax

mov ax,edata

mov es,ax

lea si,x

lea di,y

mov cx,n

rep movsb

mov ah,9

lea dx,y

int 21h

- - 18

mov ah,4ch

int 21h

code ends

end start

5.设有一个数组存放了40名学生的成绩(0~100分),设数组位于变量名为SCORS 的存储单元,编程统计0~59分、60~69分、70~79分、80~89分及90~100分的人数,并分别存放到SCOREE、SCORED、SCOREC、SCOREB、SCOREA存储单元中。

解:

程序一,简化段格式编程

.model small

.386

.data

score db 90,23,56,67,98,78,10,45,87,100

db 65,78,89,100,45,30,99,69,59,60

db 0,59,60,69,70,79,80,89,90,99

db 100,61,68,71,78,81,88,91,98,0

n=$-score

scoree db 0

scored db 0

scorec db 0

scoreb db 0

scorea db 0

.code

.startup

lea si,score

mov cx,n

mov dl,10

.while cx != 0

mov ah,0

mov al,[si]

div dl

sub al,5

.if sbyte ptr al <= 0

inc byte ptr scoree

.else

mov ah,0

.if al == 5

- -

19

《微机原理与接口技术》课后习题的参考答案

mov al,4

.endif

mov bx,ax

inc byte ptr scoree[bx]

.endif

inc si

dec cx

.endw

.exit

end

程序二,完整段格式编程

data segment

score db 90,23,56,67,98,78,10,45,87,100

db 65,78,89,100,45,30,99,69,59,60

db 0,59,60,69,70,79,80,89,90,99

db 100,61,68,71,78,81,88,91,98,0

n=$-score

scoree db 0

scored db 0

scorec db 0

scoreb db 0

scorea db 0

data ends

code segment 'code'

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

lea si,score

mov cx,n

mov dl,10

class: mov ah,0

mov al,[si]

div dl

sub al,5

jg great

inc byte ptr scoree

jmp next

- - 20

微机原理试题及答案

1 一、选择题(20分,在每小题的4个备选答案中选出一个正确的答案编号填写在该题空白处,每题2分) 1.指令MOV DX,[BX]的寻址方式是 D 。 (A)立即寻址(B)直接寻址(C)寄存器寻址(D)寄存器间接寻址2.若AL的内容为3FH,执行SHL AL,1指令后,AL的内容为 A 。 (A)7EH (B)1FH (C)9FH (D)7FH 解析:shl al ,1 即目的操作数各位左移一次,移动一次,相当于将目的操作数乘以2。3fh=63 63*2=126 126=7eh 故选A 3.属于在工作中需定时刷新的存储器的芯片是 B 。 (A)SRAM (B)DRAM (C)EEPROM (D)EPROM 4.某EPROM芯片上有19条地址线A 0~A 18 ,它的容量为 C 。 (A)128K (B)256K (C)512K (D)1024K 5.8086/8088CPU的SP寄存器是多少位的寄存器 B 。 (A)8位(B)16位(C)24位(D)32位 6.在STOSB指令执行的时候,隐含着寄存器的内容作为操作数的偏移地址, 该寄存器是 D 。 (A)SP (B)BX (C)SI (D)DI 解析:stos数据串存储指令功能:将累加器al或ah中的一个字或字节,传送到附加段中以di为目标指针的目的串中,同时修改di,以指向串中的下一个单元。 7.8255工作在方式0时,下面哪种说法不正确 C 。 (A)A口输入无锁存能力(B)A、B口输出有锁存能力 (C)C口输入有锁存能力(D)A、B、C三个口输出均有锁存能力 解析:对于方式0,规定输出信号可以被锁存,输入不能锁存 8.采用DMA方式来实现输入输出是因为它 A 。 (A)速度最快(B)CPU可不参与操作(C)实现起来比较容易(D)能对突发事件做出实时响应 9.工作在最小模式下,8086/8088CPU芯片中,将地址信号锁存的信号是 C 。 (A)DT/R (B)DEN (C)ALE (D)AEN 10.在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器是用寄存 器 C 。 (A)AX (B)BX (C)CX (D)DX 解析:loop:循环指令。指令执行前必须事先见重复次数放在cx寄存器中,每执行一次loop指令,cx自动减1。 二、填空题(每小题2分,共10分) 1.两个无符号数相等,该两数相减后ZF标志= 1 。解析:zf: 全零标志位。本次运算结果为0时,zf=1,否则zf=0。 2.执行LODSB后,SI的内容较该指令执行前增加1,说明DF= 0 。

微机原理课后作业答案第五版

第一章 6、[+42]原=00101010B=[+42]反=[+42]补 [-42]原 [-42]反 [-42]补 [+85]原=01010101B=[+85]反=[+85]补 [-85]原 [-85]反 [-85]补 10、微型计算机基本结构框图 微处理器通过一组总线(Bus)与存储器和I/O接口相连,根据指令的控制,选中并控制它们。微处理器的工作:控制它与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。 存储器用来存放数据和指令,其内容以二进制表示。每个单元可存8位(1字节)二进制信息。 输入——将原始数据和程序传送到计算机。 输出——将计算机处理好的数据以各种形式(数字、字母、文字、图形、图像和声音等)送到外部。 接口电路是主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。 总线:从CPU和各I/O接口芯片的内部各功能电路的连接,到计算机系统内部的各部件间的数据传送和通信,乃至计算机主板与适配器卡的连接,以及计算机与外部设备间的连接,都要通过总线(Bus)来实现。 13、8086有20根地址线A19~A0,最大可寻址220=1048576字节单元,即1MB;80386有32根地址线,可寻址232=4GB。8086有16根数据线,80386有32根数据线。

1、8086外部有16根数据总线,可并行传送16位数据; 具有20根地址总线,能直接寻址220=1MB的内存空间; 用低16位地址线访问I/O端口,可访问216=64K个I/O端口。 另外,8088只有8根数据总线 2、8086 CPU由两部分组成:总线接口单元(Bus Interface Unit,BIU) BIU负责CPU与内存和I/O端口间的数据交换: BIU先从指定内存单元中取出指令,送到指令队列中排队,等待执行。 执行指令时所需的操作数,也可由BIU从指定的内存单元或I/O端口中获取,再送到EU去执行。 执行完指令后,可通过BIU将数据传送到内存或I/O端口中。 指令执行单元(Execution Unit,EU) EU负责执行指令: 它先从BIU的指令队列中取出指令,送到EU控制器,经译码分析后执行指令。EU的算术逻辑单元(Arithmetic Logic Unit,ALU)完成各种运算。 6、见书P28-29。 7.(1) 1200:3500H=1200H×16+3500H=15500H (2) FF00:0458H=FF00H×16+0458H=FF458H (3) 3A60:0100H=3A80H×16+0100H=3A700H 8、(1)段起始地址 1200H×16=12000H,结束地址 1200H×16+FFFFH=21FFFH (2)段起始地址 3F05H×16=3F050H,结束地址 3F05H×16+FFFFH=4F04FH (3)段起始地址 0FFEH×16=0FFE0H,结束地址 0FFEH×16+FFFFH=1FFD0H 9、3456H×16+0210H=34770H 11、堆栈地址范围:2000:0000H~2000H(0300H-1),即20000H~202FFH。执行 两条PUSH指令后,SS:SP=2000:02FCH,再执行1条PUSH指令后,SS: SP=2000:02FAH。 12、(2000H)=3AH, (2001H)=28H, (2002H)=56H, (2003H)=4FH 从2000H单元取出一个字数据需要1次操作,数据是 283AH; 从2001H单元取出一个字数据需要2次操作,数据是 5628H; 17、CPU读写一次存储器或I/O端口的时间叫总线周期。1个总线周期需要4个系统时钟周期(T1~T4)。8086-2的时钟频率为8MHz,则一个T周期为125ns,一个总线周期为500ns,则CPU每秒最多可以执行200万条指令。

微机原理习题解答第四章-

第四章 1.在下列程序运行后,给相应的寄存器及存储单元填入运行的结果: MOV AL,10H MOV CX,1000H MOV BX,2000H MOV [CX],AL XCHG CX,BX MOV DH,[BX] MOV DL,01H XCHG CX,BX MOV [BX],DL HLT 解:寄存器及存储单元的内容如下: AL=10H BL=00H BH=20H CL=00H CH=10H DL=01H

DH=10H (1000H=10H (2000H=01H 2.要求同题4.1,程序如下: MOV AL,50H MOV BP,1000H MOV BX,2000H MOV [BP],AL MOV DH,20H MOV [BX],DH MOV DL,01H MOV DL,[BX] MOV CX,3000H HLT 解:寄存器及存储单元的内容如下: BL=00H BH=20H CL=00H CH=30H

DL=20H DH=20H BP=1000H (1000H=50H (2000H=20H 3.自1000H单元开始有一个100个数的数据块,若要把它传送到自2000H开始的存储区中去,可以采用以下三种方法实现,试分别编写程序以实现数据块的传送。 (1不用数据块传送指令。 (2用单个传送的数据块传送指令。 (3用数据块成组传送指令。 解:(1LEA SI,1000H LEA DI,2000H MOV CX,100 L1: MOV AX,[SI] MOV [DI],AX LOOP L1 HLT (2LEA SI,1000H LEA DI,2000H

微机原理与接口技术(第三版)课本习题答案

第二章 8086体系结构与80x86CPU 1.8086CPU由哪两部分构成它们的主要功能是什么 答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。 2.8086CPU预取指令队列有什么好处8086CPU内部的并行操作体现在哪里答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。8086CPU 内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。 5.简述8086系统中物理地址的形成过程。8086系统中的物理地址最多有多少个逻辑地址呢答:8086系统中的物理地址是由20根地址总线形成的。8086系统采用分段并附以地址偏移量办法形成20位的物理地址。采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。通过一个20位的地址加法器将这两个地址相加形成物理地址。具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。逻辑地址由段基址和偏移地址两部分构成,都是无符号的16位二进制数,程序设计时采用逻辑地址,也是1MB。 6.8086系统中的存储器为什么要采用分段结构有什么好处 答:8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址

微机原理与应用试题库(附答案)

《微机原理及应用》试题库 1. 8086 和 8088 的引脚信号中,D为地址锁存允许信号引脚。 A. CLK B. INTR C.NMI D.ALE 2.下面的哪项是有效标识符:B A . 4LOOP : B. DELAYIS : C. MAIN A/ B : D.GAMA$1 : 3.如图所示的三态输出电路,当 A 时, V B≈V DD。 A. E(ENABLE)=1, A=1 B.E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D.E(ENABLE)=0, A=0 4. 设 (SS)=2000H , (SP)=0100H , (AX)=2107H ,则执行指令PUSH AX后,存放数据21H 的物理地址是 D。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的A。 A.符号地址B.物理地址C.偏移地址 D .逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是A。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX ,0 MOV BX ,1 MOV CX , 100 AA : ADD AX ,BX INC BX LOOP AA HLT 执行后的结果:(AX)=,(BX)=。 A. 5050 , 99 B. 2500, 100 C. 5050 , 101 D. 2550 , 102 8. 假设 V1 和 V2 是用 DW 定义的变量,下列指令中正确的是A。 A . MOV V1, 20H B. MOV V1, V2 C . MOV AL, V1D. MOV2000H, V2 9. –49D 的二进制补码为A。

最新微机原理习题与答案

微机原理习题与答案

微机原理习题与答案 第一章微机基础 1-1微处理器、微机与微机系统三者之间有什么不同? 答: 微处理器一般也称为CPU,它本身具有运算能力和控制功能。微型计算机是由CPU、存储器、输入/输出接口电路和系统总线构成的裸机系统。微型计算机系统是以微型计算机为主机,配上系统软件和外设之后而构成的计算机系统。微处理器是微型计算机的一组成部分,而微型计算机又是微型计算机系统的一组成部分。 1-2 CPU在内部结构上由那几部分组成? 答:8位CPU在内部结构上由寄存器阵列、算术逻辑运算单元ALU、控制器和内部总线及缓冲器等部分组成。 1-3总线接口部件有哪些功能? 8086的执行部件有什么功能? 答:总线接口部件的功能是负责与存储器、I/O端口传送数据。 执行部件的功能是负责指令的执行。 1-4 8086/8088的状态标志和控制标志分别有哪些? 答:8086/8088的状态标志有6个:CF、AF、SF、PF、OF、ZF,控制标志有3个:TF、DF、IF。 1-5 8086/8088和传统的8位计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点? 答:8位饥是取一条指令,执行一条,再取,再执行; 8088执行时,取指与执行几乎是同时进行的。

1-6 8086/088微处理器中有哪些寄存器?通用寄存器中哪些可以作地址指针用? 答:8086/8088各有14个寄存器,它们可分为3组: (1)四个通用寄存器和四个变址和指针寄存器,即AX,BX,CX,DX,SP,BP,SI,DI。 (2)四个段寄存器,即CS,DS,SS,ES。 (3)两个控制寄存器,即IP,FR。 1-7 8086/8088 20位物理地址是怎么样形成的?当CS=2000H, IP=0100H,其指向的物理地址等于多少? 答:物理地址=段地址×16+段内偏移地址。 20100 2-1 试述8088微处理器的各种寻址方式,并写出各种寻址方式的传送指令1~~2条(源操作数寻址与目的操作数寻址) 答:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,变址寻址,基址加变址寻址。 第三章汇编语言程序设计 3-2指令AND AX,X AND Y中X和Y是两个已赋值的常量,问:两个AND操作分别在什么时间进行?功能上有何区别? 答:指令中的X AND Y操作在程序汇编时进行,该操作完成后得到一个数,即为指令中的第二操作数。由此得到“AND AX,立即数”这样形式的一条指令,由汇编器将其翻译为机器码。该指令中的AND操作由CPU在执行指令时完成,结果存于AX中,并影响F寄存器。 3-3指出以下三条指令的区别(NUM为数据段一个变量名)。

微机原理习题解答

第一章微型计算机的基础知识 1-1 将下列十进制数转换为二进制数、十六进制数。 (1)110 (2)1 039 (3)0.75 (4)0.156 25 1-2 将下列十进制数转换为BCD 码。 (1)129 (2)5 678 (3)0.984 (4)93.745 1-3 将下列二进制数转换为十进制数、十六进制数。 (1)10101010 (2)10000000 (3)11000011.01 (4)01111110 1-4 将下列十六进制数转换为二进制数、十进制数。 (1)8E6H (2)0A42H (3)7E.C5H (4) 0F19.1DH 1-5 将下列二进制数转换为BCD 码。 (1)1011011.101 (2)1010110.001 1-6 将下列BCD 码转换为二进制数。 (1)(0010 0111 0011) BCD (2)(1001 0111.0010 0101) BCD 1-7 完成下列二进制数的运算。 (1)1001.11+11.11 (2)1101.01-0110.11 (3)1000.011-1001.101 (4)1111+1101 1-8 完成下列十六进制数的运算。 (1)6AH+0A6H (2)0AB1FH+0EFCH (3)12ADH-1DEH (4)117H-0ABH 1-9 已知X=01H,Y=0FFH ,在下面的情况下比较两数的大小。 (1)无符号数 (2)符号数 (均为补码) 1-10 计算下列各表达式。 (1)101+‘A’+01101001B+0D5H+57Q (2)127.8125+10111101.101+375.63Q+1FC.8AH 1-11 写出下列字符串的ASCII 码。 (1)HELLO (2)A8=

微机原理习题及答案

一、选择 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.什么是汇编语言,汇编程序,和机器语言? 答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。 汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。 2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么? 答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。 这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。 3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。 答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。 “存储程序控制”的概念可简要地概括为以下几点: ①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。 ②在计算机内部采用二进制来表示程序和数据。 ③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 ④五大部件以运算器为中心进行组织。 4.请说明微型计算机系统的工作过程。 答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存

放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。 5.试说明微处理器字长的意义。 答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快。 6.微机系统中采用的总线结构有几种类型?各有什么特点? 答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型。 7.将下列十进制数转换成二进制数、八进制数、十六进制数。 ①(4.75)10=(0100.11)2=(4.6)8=(4.C)16 ②(2.25)10=(10.01)2=(2.2)8=(2.8)16 ③(1.875)10=(1.111)2=(1.7)8=(1.E)16 8.将下列二进制数转换成十进制数。 ①(1011.011)2=(11.375)10 ②(1101.01011)2=(13.58)10 ③(111.001)2=(7.2)10 9.将下列十进制数转换成8421BCD码。 ① 2006=(0010 0000 0000 0110)BCD ② 123.456=(0001 0010 0011.0100 0101 0110)BCD 10.求下列带符号十进制数的8位基2码补码。 ① [+127]补= 01111111

微机原理试题及答案

微机原理试题及答案 微机原理试题及答案 一、填空题(每空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答案

模拟试题4参考答案 一、填空题(20) 1、1100100 144 64H 2、181 B5 3、11011010 10100101 10100110 4、-46 5、10100101 6、ALU 16 BIU 地址产生器20 7、2 512K 奇地址BHE 8、16 64K 9、程序控制方式中断控制方式DMA方式 10、段地址、偏移量 11、高速缓冲存储器;存取速度快、容量小、由SRAM组成 12、CF 、OF 13、(1)7 (2)4 (3)10 (4)1 (5)3 (6)9 (7)2 (8)5 (9)6 (10)8 14、总线宽度、工作速度、最大数据传输率 二、简答题 1.8086CPU分为哪两个工作部件?每个部件主要由什么组成? 答:8086CPU分为执行部件EU和总线接口部件BIU。 EU主要包括:ALU、标志寄存器、数据暂存器、通用寄存器组、控制单元。 BIU主要包括:指令队列缓冲器、地址加法器和段寄存器、指令指针寄存器IP、总线控制电路与内部通信寄存器。 2.什么是段基址?什么是段基值?它们之间的关系是什么? 答:段基址是指一个逻辑段在内存中的起始单元的20位物理地址; 段基值是指段的起始地址放入相应的段地址寄存器中的内容。 两者关系为:段基值=段基址/16 3.虚拟存储器的含义是什么?虚拟存储器的3种方式分别是什么? 答:虚拟存储器(Virtual Memory)是以存储器访问的局部性为基础,建立在主存—辅存物理体系结构上的存储管理技术。在存储系统中,由于主存容量不能满足用户的需要,因而引入辅存作为后援。即辅存作主存用,扩大编程者的使用空间。 3种方式分别为:页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器。 三、寻址方式的有效地址计算(10) 正确答案的序号为:C A B E D 四、在每小题的括号中分别填入执行结果(15)

微机原理与接口技术学习心得

本学期微机原理课程已经结束,关于微机课程的心得体会甚多。微机原理与接口技术作为一门专业课,虽然要求没有专业课那么高,但是却对自己今后的工作总会有一定的帮助。记得老师第一节课说学微机原理是为以后的单片机打基础,这就让我下定决心学好微机原理这门课程。 初学《微机原理与接口技术》时,感觉摸不着头绪。面对着众多的术语、概念及原理性的问题不知道该如何下手。在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。 《微机原理与接口技术》课程有许多新名词、新专业术语。透彻理解这些名词、术语的意思,为今后深入学习打下基础。一个新的名词从首次接触到理解和应用,需要一个反复的过程。而在众多概念中,真正关键的并不是很多。比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。 学习过程中,我发现许多概念很相近,为了更好地掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。比如:微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。微处理器是微型计算机的重要组成部分,它与微型计算机、微型计算机系统是完全不同的概念在微机中,最基础的语言是汇编语言。汇编语言是一个最基础最古老的计算机语言。语言总是越基础越重要,在重大的编程项目中应用最广泛。就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。而在某些时候,这种方法是最有效,最可靠的。 然而,事物总有两面性。其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较烦琐的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。在一些讲求效率的场合,并不可取。 汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。学习事物总是从最简单基础的开始。那么学习高级语言也当然应当从汇编开始。学习汇

《微机原理》复习题及解答

微机原理》复习题解答 1、在8086/8088系统中,存储器是怎样组织的?整个存储空间有多大?最大逻辑长度为多大?至少可将存储器分为多少个段?段起始于什么位置?偏移地址是什么?怎样计算20位物理地址? ①分段组织②1兆字节③64K字节④至少分成16段⑤起始于最后四位二进制数都为0的位置⑥偏移地址是相当于段起始位置的偏移量⑦段地址×16+偏移地址 2、系统总线分为哪几组?各自传送的方向如何? ①分成3组:数据部线、地址总线、控制总线②数据总线和控制总线都是双向的,地址总线始终由CPU发出 3、8086微处理器分为哪几个部分?它们之间采用什么工作方式?其中状态寄存器由几类标志组成?与中断有关的是哪一位? ①分成2部分:总线接口部件、执行部件②并行工作方式③2类:状态标志、控制标志④IF 位,IF置1,响应外部可屏蔽中断 4、怎样将8086设置为最小或最大模式?分别应配置哪些外围器件?作用怎样?最大模式与最小模式的配置相比多了什么器件?作用是什么? ①引脚接高电平则设置为最小模式,如接低电平则设置为最大模式②最小模式下:1片8248A,作为时钟发生器;3片8282或74LS373,用来作为地址锁存器;2片8286/8287作为总线收发器。最大模式下:1片8284A,3片8282,2片8286,1片8288总线控制器,1片8259A及有关电路③8284A除了提供频率恒定的时钟信号外,还对准备发(READY)和(RESET)信号进行同步。8282:地址/数据总线是复用的,而和S7也是复用的,所以在总路线周期前一部分时间中输出地址信号和信号的引脚,在总线周期的后一部分时间中改变了含义。因为有了锁存器对地址和进行锁存,所以在总线周期的后半部分,地址和数据同时出现在系统的地址总线和数据总线上;同样,此时也在锁存器输出端呈现有效电平,于是确保了CPU对存储器和I/O端口的正常读/写操作。8286/8287:当系统中所连的存储器和外设较多时,需要增加数据总线的驱动能力。④多了1片8288。作用:对CPU 发出的S0,S1,S2控制信号进行变换和组合,以得到对存储器和I/O端口的读/写信号和对锁存器8282及对总线收发器8286的控制信号。 5、8086/8088系统中为什么将数据与地址总线复用? 因为数据线与地址线传送时间不一样,在总线周期T1传送地址,其他时刻传送数据,传送数据和地址时间是分离的,所以8086/8088系统中能将数据线与地址线复用。 6、CPU从奇地址或偶地址读写一个字(或字节)时,和A0是什么电平?分别用几个总线周期? A0 操作总线周期 0 0 从偶地址开始读/写一个字1个 1 0 从偶地址单元或端口读/写一个字节1 个 0 1 从奇地址单元或端口读/写一个字节1个 1 1 0 从奇地址开始读/写一个字2个(在第一总线周期,将低8位数据送到AD15—AD8,在第二个总线周期,将高8位数据送到AD7—AD0) 7、CPU的READY和RESET信号有什么作用?

《微机原理》习题参考答案4章

第4章 AT89C51单片机汇编语言程序设计 1.已知程序执行前有A = 02H,SP = 42H,(41H) = FFH,(42H) = FFH。下述程序执行后,A = ;SP = ;(41H) = ;(42H) = ;PC = 。 POP DPH POP DPL MOV DPTR,#3000H RL A MOV B,A MOVC A,@A+DPTR PUSH Acc MOV A,B INC A MOVC A,@A+DPTR PUSH Acc RET ORG 3000H DB 10H,80H,30H,80H,50H,80H 答:A=80H,SP=40H,(51H)=50H,(52H)=80H ,PC=8050H。 2.说明伪指令的作用。“伪”的含义是什么?常用伪指令的功能如何? 答:伪指令不属于指令系统中的汇编语言指令,它是程序员发给汇编程序的 控制命令。只有在汇编前的源程序中才有伪指令。所以“伪”体现在汇编后, 伪指令没有相应的机器代码产生。 3.解释手工汇编、机器汇编、交叉汇编、反汇编术语概念。 答:(1)手工汇编:手工编程,首先把程序用助记符指令写出,然后通过查 指令的机器代码表,逐个把助记符指令“翻译”成机器代码,这种人工查表 “翻译”指令的方法称为手工汇编。 (2)机器汇编:是借助于微型计算机上的软件(汇编程序)来代替手工汇编, 完成把助记符指令“翻译”成机器代码的工作。 (3)交叉汇编:使用微型计算机来完成汇编,而汇编后得到的机器代码却是 在另一台计算机(这里是单片机)上运行,称这种机器汇编为交叉汇编。 (4)反汇编:将二进制的机器代码语言程序翻译成汇编语言源程序的过程。4.下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么?ORG 1000H TAB1 EQU 1234H TAB2 EQU 3000H DB "MAIN" DW TAB1,TAB2,70H 答:4D 41 49 4E 12 34 30 00 00 70

微机原理试题及答案 (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单元中分别存放的是两个双

微机原理与接口技术习题答案4(1)

第4章汇编语言程序设计 1.已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字 符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。 解:BUF DB "BONJOUR_BELLE" BUFR DB 100 DUP(?) MOV CX, N LEA SI, BUF LEA DI, BUFR ADD DI,CX DEC DI L1: MOV AL,[SI] MOV [DI],AL INC SI DEC DI LOOP L1 2.利用移位、传送和相加指令实现AX的内容扩大10倍。 解:将扩大后的结果放在DX:AX中,注意到10×AX=8×AX+2×AX。 XOR DX,DX SHL AX, 1 RCL DX, 1 MOV BX,AX MOV CX,DX SHL AX, 1 RCL DX, 1 SHL AX, 1 RCL DX, 1

ADD AX, BX ADC DX, CX 3.在缓冲区V AR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列; 如果V AR中保存的为有符号数,则再编写程序实现将其按递减关系排列。 解:V AR DW 1236,-432,3900 XOR SI,,SI MOV AX,V AR[SI] CMP AX, V AR[SI+2] JAE L1 XCHG AX, V AR[SI+2] L1: CMP AX, V AR[SI+4] JAE L2 XCHG AX, V AR[SI+4] L2: MOV V AR[SI], AX MOV AX,V AR[SI+2] CMP AX, V AR[SI+4] JAE L3 XCHG AX, V AR[SI+4] L3: MOV V AR[SI+2], AX 4.编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例 如(AL)=01100101B,(BL)=11011010B,则得到的(DX)=10110110 10011001B。解:利用移位指令完成。 XOR DX,DX MOV CX,8 L1: SHR AL,1 RCR DX,1

微机原理习题集以及答案

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

微机原理(第三版)课后练习答案

1 思考与练习题 一、选择题 1.计算机硬件中最核心的部件是( )。C A.运算器 B.主存储器 C.CPU D.输入/输出设备 2.微机的性能主要取决于( )。 A (B——计算机数据处理能力的一个重要指标) A.CPU B.主存储器 C.硬盘 D.显示器 3.计算机中带符号数的表示通常采用( )。C A.原码 B.反码 C.补码 D.BCD码 4.采用补码表示的8位二进制数真值范围是( )。C A.-127~+127 B.-1 27~+128 C.-128~+127 D.-128~+128 5.大写字母“B”的ASCII码是( )。B A.41H B.42H C.61H D.62H 6.某数在计算机中用压缩BCD码表示为10010011,其真值为( )。C A.10010011B B.93H C.93 D.147 二、填空题 1.微处理器是指_CPU_;微型计算机以_CPU_为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强 (2)可靠性高 (3)价格低 (4)适应性强 (5)体积小 (6)维护方便_。P8 P5 2.主存容量是指_RAM和ROM总和_;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。P5 P9 3.系统总线是_CPU与其他部件之间传送数据、地址和控制信息_的公共通道;根据传送内容的不同可分成_数据、地址、控制_3种总线。P9 4.计算机中的数据可分为_数值型和非数值型_两类,前者的作用是_表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。P12 5.机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置_3个因素。P15 P16 6.ASCII码可以表示_128_种字符,其中起控制作用的称为_功能码_;供书写程序和描述命令使用的称为_信息码_。P18 P19 三、判断题 1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。( )√ 2.计算机中数据的表示范围不受计算机字长的限制。( )× 3.计算机地址总线的宽度决定了内存容量的大小。( )√ 4.计算机键盘输入的各类符号在计算机内部均表示为ASCII码。( )× (键盘与计算机通信采用ASCII码) 2 思考与练习题 一、选择题 1.在EU中起数据加工与处理作用的功能部件是( )。A A.ALU B.数据暂存器 C.数据寄存器 D.EU控制电路 2.以下不属于BIU中的功能部件是( )。 B A.地址加法器 B.地址寄存器 C.段寄存器 D.指令队列缓冲器

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