微机原理课后答案详解(朱红、刘景萍)——南理工的哦!

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章习题答案
一、选择题
1.十进制数66转换成二进制数为_______。

A. 11000010
B.01100110
C.11100110
D.01000010
答案:D
2.十进制数27.25转换成十六进制数为_______。

A. B1.4H
B.1B.19H
C.1B.4H
D.33.4H
答案:C
3.下列数中最小的是________。

A. (101001)2
B. (52)8
C. (2B)16
D. (50)10
答案:A
4.若一个数的BCD编码为00101001,则该数与______相等。

A. 41H
B.121D
C.29D
D. 29H
答案:C
5.十进制数9874转换成BCD数为________。

A. 9874H
B. 4326H
C. 2692H
D. 6341H
答案:A
6.BCD数64H代表的真值为_______。

A. 100
B.64
C.-100
D.+100
答案:B
7.十六进制数88H,可表示成下面几种形式,错误的表示为_______。

A. 无符号十进制数136
B.带符号十进制数-120
C.压缩型BCD码十进制数88
D.8位二进制数-8的补码表示
答案:D
8.若[A]原=1011 1101,[B]反=1011 1101,[C]补=1011 1101,以下结论正确的是______。

A. C最大
B. A最大
C.B最大
D.A=B=C
答案:B
9.8位二进制补码表示的带符号数1000 0000B和1111 1111B的十进制数分别是____。

A. 128和255
B. 128和-1
C. -128和255
D. -128和-1
答案:D
10.微机中地址总线的作用是___________。

A.用于选择存储器单元
B.用于选择进行信息传输的设备
C.用于指定存储器单元和I/O设备接口单元的选择地址
D.以上选择都不对
答案:C
11.计算机中表示地址使用____。

A.无符号数
B.原码
C.反码
D.补码
答案:A
二、填空题
1.计算机的主机由_______、控制器、主存储器组成。

答案:运算器
2._______确定了计算机的5个基本部件:输入器、______、运算器、_______和控制器,程序和数据存放在______中,并采用二进制数表示。

答案:冯.诺依曼、输出器存储器存储器
3.10110.10111B的十六进制数是_______,3
4.97H的十进制数是______,将114.25转换为二进制数为_______。

答案:16.B8H、52.6055、1110010.01
4.(640)10=(______)2=(________)16
答案:101000 0000 280
5. (25
6.375)10=(______)2=(________)16
答案:10000 0000. 011 100.6
6.(10111100.1101)2=(______)10=(________)16
答案:188.8125 BC.D
7.二进制数1000 0001B若为原码,其真值为_____;若为反码,其真值为_____;若为补码,其真值为_____。

答案:-1 -126 -127
8.一个8位的二进制整数,若采用补码表示,且由3个“1”和5个“0”组成,则最小的十进制数为______。

答案:-125 1000 0011
9.在微机中,一个浮点数由_____和_____两个部分构成。

答案:尾数和阶码
10.若[X]原=[Y]反=[Z]补=90H,试用十进制分别写出其大小,X=_____;Y=_____;Z=_____。

答案:-16 -111 -112
三、问答题
1. 在计算机中为什么都采用二进制数而不采用十进制数?二进制数有哪两种缩写形式?
答案:二进制数具有运算简单、电路简便可靠等多项优点。

计算机的逻辑器件均采用高低电平来表示。

二进制数的0和1正好和逻辑电平的高低相吻合,且二进制数使用很方便,还能节省元器件,4个元器件的不同组合就能表示16个数。

八进制和十六进制
2.什么是程序计数器PC?
答案:CPU内部都有一个程序计数器PC(或指令指针计数器IP),用来存放将要从存储器中取出执行的下一条指令所在存储空间的位置(指向下一条将要执行的指令)。

它具有自动加1的功能。

3.已知[X]补=1001 1101B,[Y]补=1100 1001B,[Z]补=0010 0110B,计算[X+Y]补=?,并指出是否溢出;计算[X-Z]补=?,并指出是否溢出。

答案:[X+Y]补=0110 0110 溢出
[X-Z]补=0111 0111 溢出
4.将下列十六进制数的ASCII码转换为十进制数。

(1) 313035H (2)374341H (3)32303030H (4)38413543H
答案:103H=259 7CAH=1994 2000H=8192 8A5CH=35420
第二章习题答案
一、选择题
1.8086/8088CPU内部有一个始终指示下条指令偏移地址的部件是_______。

A. SP
B.CS
C.IP
D.BP
答案:C
2. 指令队列的作用是_________。

A.暂存操作数地址
B.暂存操作数
C.暂存指令地址
D.暂存预取指令
答案:D
3. 8086/8088下列部件中与地址形成无关的是______。

A. ALU
B. 通用寄存器
C. 指针寄存器
D. 段寄存器
答案:A
4.对于8086,下列说法错误的是_______。

A.段寄存器位于BIU中
B.20位的物理地址是在EU部件中形成的
C.复位后CS的初值为FFFFH
D.指令队列的长度为6个字节
答案:B
5.8086/8088中ES、DI分别属于_______。

A. EU、BIU
B. EU、EU
C. BIU、BIU
D. BIU、EU
答案:D
6.BIU与EU工作方式的正确说法是_______。

A. 并行但不同步工作
B.同步工作
C. 各自独立工作
D. 指令队列满时异步工作,空时同步工作
答案:A
7.在执行转移、调用和返回指令时,指令队列中原有的内容_______。

A.自动清除
B.用软件清除
C.不改变
D.自动清除或用软件清除
答案:A
8.下列说法中,正确的一条是______
A. 8086/8088标志寄存器共有16位,每一位都有含义。

B. 8088/8086的数据总线都是16位。

C. 8086/8088的逻辑段不允许段的重叠和交叉
D. 8086/8088的逻辑段空间最大为64KB,实际应用中可能小于64KB。

答案:D
9.8086/8088工作于最大模式,是因为_____。

A.可以扩展存储容量
B.可以扩大I/O空间
C.可以构成多处理器系统
D.可以提高CPU主频
答案:C
10.8088/8086最大模式比最小模式在结构上至少应增加_____。

A.中断优先级控制器
B.总线控制器
C.数据驱动器
D.地址锁存器
答案:B
11.组成最大模式下的最小系统,除CPU、时钟电路,ROM,RAM及I/O接口外,至少需增加的芯片类型为______。

a. 总线控制器
b. 总线裁决器
c. 地址锁存器
d. 总线驱动器
A.b,d
B.a,b,c
C. a,d
D.a,c,d
答案C
12.工作在最小模式时,对CPU而言,下列信号皆为输入信号的是______。

A. HOLD 、、READY
B. 、、READY
C. 、HOLD、
D. 、HOLD、READY
答案:A
13.在最小工作模式下,8088/8086CPU在每个时钟脉冲的______处,对HOLD引脚上的信号进行进行检测。

A) 上升沿B) 下降沿C) 结束位置D) 中间位置
答案:A
14.LOCK引脚的功能是____。

A.总线锁定
B.地址锁定
C.数据输入锁定
D.数据输出锁定
答案:A
15.与存储器(或外设)同步以及与协处理器同步的引脚信号依次为_______。

A.READY、
B.READY、HOLD
C. 、RESET
D. 、
答案:A
16.工作在最大模式时,下列信号皆为输出信号的是_______。

A.QS0、QS1、
B.QS0、、
C.QS1、、S0
D. 、QS1、
答案:A
17. 8086/8088最大模式时,引脚有效时的正确含义是_____。

A.能中断CPU的工作
B.能进行DMA操作
C.其它总线部件不能占有总线
D.暂停CPU的工作
答案:C
18.工作在最大模式时,经总线控制器8288将对应CPU最小模式时的三个引脚状态进行组合,产生控制和命令信号,这三个引脚应为________。

答案:C
19.8088/8086中,关于总线周期叙述不正确的是_______。

A.总线周期通常由连续的T1~T4组成
B.在读写操作数时才执行总线周期
C.总线周期允许插入等待状态
D.总线周期允许存在空闲状态
答案:B
20.在8086读总线周期中,进入T3后发现READY=0,需要插入等待状态,则在插入等待状态时其引脚的高地址A19~A16_______。

A.表示读数据对应的高4位的地址
B.表示CPU当前工作状态
C.处于高阻状态
D.处于不定状态
答案:B
21.设8086/8088工作于最小模式,在存储器读、写周期中,总线AD15~AD0上数据开始有效的时刻(不插入Tw)分别是______。

A. T2、T2
B.T2、T3
C.T3、T4
D.T3、T2
答案:D
二、填空题
1.8086/8088CPU在结构上由两个独立的处理单元_______和_______构成,这两个单元可以_____工作,从而加快了程序的运行速度。

答案:EU BIU 并行
2.8086是Intel系列的16位处理器,从功能上,它分为两个部分:即总线接口单元和执行单元。

总线接口单元由_______、_______、_______、_______、_______等寄存器和20位地址加法器和6字节指令队列构成。

执行单元有4个通用寄存器,即______;4个专用寄存器,即____、_____、_____、______等寄存器和算术逻辑单元组成。

答案:AX、BX、CX、DX SP、BP、DI、SI
3.任何CPU都有一个寄存器存放程序运行状态的标志信息,在8086中,该寄存器是_____。

其中,根据运算结果是否为零,决定程序分支走向的标志位是____。

答案:FR ZF
4.8086/8088CPU中标志寄存器的3个控制位是_____、_____、______。

答案:DF IF TF
5.逻辑地址9B50H:2C00H对应的物理地址是______。

答案:9E100H
6.在任何一个总线周期的T1状态,ALE输出_____。

答案:高电平
7.8086有两种工作模式,即最小模式和最大模式,它由______决定。

最小模式的特点是_______,最大模式的特点是________。

答案:CPU提供全部的控制信号需要总线控制器8288
8.8086CPU可访问的存储器的空间为1MB,实际上分奇数存储体和偶数存储体两部分,对于奇数存储体的选择信号是________,对于偶数存储体的选择信号是_______,对于每个存储体内的存储单元的选择信号是___________。

答案:A0 A19~A1
9.在8086的最小系统,当,,时,CPU完成的操作是_______。

答案:I/O读
10.在最小模式下,执行“OUT DX, AL”指令时,、、、的状态分别是___。

答案:0, 0, 1, 1
11.8086CPU从偶地址读写两个字节时,需要_____个总线周期,从奇地址读取两个字节时,需要_____个总线周期。

答案:1 2
12.8086在存取存储器中以偶地址为起始地址的字时,,,A0的状态分别是____。

答案:1 0 0
13.8086向内存地址1200BH写一个字节数据时,需要一个总线周期,在该总线周期的T1状态,为______,A0为_____。

答案:0,1
14.假设某个总线周期需插入两个Tw等待状态,则该总线周期内对READY信号检测的次数是_______。

答案:3
15.8086CPU上电复位后,CS=_____,IP=_____,DS=_____,标志寄存器FR=_____。

答案:0FFFFH,0,0,0
16.8088/8086的复位信号至少要维持______个时钟周期。

答案:4
17.8086CPU工作在最小模式下,控制数据流方向的信号是____、____、____、____、____。

答案:、、、、
18.当存储器的读出时间大于CPU所要求的时间时,为了保证CPU与存储器的周期配合,就要利用______信号,使CPU插入一个_____状态。

答案:准备好(READY)等待(Tw)状态
19.当8086/8088工作于最大模式时,QS1=1,QS0=0,其表示指令队列的状态为______。

答案:队列为空。

20.在T2、T3、Tw、T4状态时,S6为_____,表示8086/8088当前连在总线上。

答案:低电平
21.8086/8088提供的能接受外中断请求信号的引脚是_____和_____。

两种请求信号的主要不同处在于是否可______。

答案:INTR NMI 屏蔽
22.一台微机的CPU,其晶振的主振频率为8MHz,二分频后作为CPU的时钟频率。

如果该CPU的一个总线周期含有四个时钟周期,那么此总线周期是_____us。

答案:0.125
23.某微处理器的主频为20MHz,由2个时钟周期组成一个机器周期,设平均3个机器周期可完成一条指令,其时钟周期和平均运算速度分别为_____。

答案:50ns,3.33MHz
三、问答题
1. 8086/8088CPU在结构上由哪两个独立的处理单元构成?这样的结构最主要的优点是什么?
答案:在微机中,一条机器指令由操作数和操作码构成,再由若干指令构成程序。

微处理器执行一条指令的完整步骤需要两个阶段:取指和执行。

取指是从内存中取出指令,执行是分析指令要求实现的功能,读取所需的操作数,执行指令规定的操作。

传统的8位处理器采用顺序执行的方式,各条指令的执行按以上两个阶段交替执行。

也就是说,首先取一条指令,然后执行该指令,之后再取下一条指令,再执行,如此重复,直到整个程序执行完毕。

在8086中,为了加快程序的执行速度,采用了重叠执行的方式,各条指令的执行过程是重叠进行的。

每条指令的执行过程也包括取指和执行两个阶段,但是相邻两条指令的执行过程有一部分是同时进行的。

在执行一条指令时,可以同时取出下一条指令。

在当前指令执行完毕后,就可以立即执行下一条指令。

显然,这种重叠执行的方式大大加快了程序的执行速度。

为了实现指令的重叠执行方式,8086/8088微处理器内部分为两个独立的功能部件:执行单元EU和总线接口单元BIU,执行单元EU专门负责指令的执行,总线接口单元BIU是从内存指定区域取出指令送到指令队列缓冲器的。

EU和BIU两个功能部件并行工作,EU执行的BIU 在前一时刻取出的指令,与此同时,BIU又取出下一时刻要执行的指令,由此能使大部分取指令和执行指令的操作重叠进行,大大缩短了等待指令所需的时间,提高了微处理器的利用率和整个系统的执行速度。

2.完成下列补码运算,并根据结果设置标志SF、ZF、CF和OF,指出运算结果是否溢出。

(1) 00101101B+10011100B (2)01011101B-10111010B
(3) 876AH-0F32BH (4)10000000B+11111111B
答案:(1) C9H SF=1 ZF=0 CF=0 OF=0 未溢出
(2) 01011101B-10111010B =01011101B+01000110B A3H SF=1 ZF=0 CF=1 OF=1 有溢出求-Y的补码,即正数-Y的真值
(3) 876AH-0F32BH =876AH+0CD5H 943FH SF=1 ZF=0 CF=1 OF=0 未溢出
(4) 7FH SF=0 ZF=0 CF=1 OF=1 有溢出
3.存储器采用分段方法进行组织有哪些好处?
答案:8086微处理器CPU中寄存器都是16位,16位的地址只能访问大小为64KB以内的内存。

8086系统的物理地址由20根地址线形成,怎样用16位数据处理能力实现20位地址的寻址呢?要做到对20位地址空间进行访问,就需要两部分地址,在8086系统中,就是由段地址和偏移地址组成的。

而这两个地址都是16位,将这两个地址采用相加的方式组成20位地址去访问存储器。

在8086系统的地址形成中,当段地址确定后,该段的寻址范围就已经确定,其容量不大于64KB。

同时,通过修改段寄存器的内容,可达到逻辑段在整个1MB空间中浮动。

各个逻辑段之间可以紧密相连,可以中间有间隔,也可以相互重叠。

采用段基址和偏移地址方式组成物理地址的优点是:满足对8086系统的1MB存储空间的访问,同时在大部分指令中只要提供16位的偏移地址即可。

4.Intel 8086/8088处理器芯片功能强大,但引脚数有限,为了建立其与外围丰富的信息联系,Intel8086/8088处理器引脚采用了复用方式,说明其采用了何种复用方式?
答案:8086CPU采用双列直插式的封装形式,具有40条引脚。

由于受到引脚数量的限制,8086引脚安排采用了复用技术。

它的复用方式有两种:一是采用分时复用技术,在不同的时刻通过相同的引脚传送不同的信息,从而减少了引脚的数量;二是采用了两种工作方式,在不同的工作方式下,部分引脚具有两种不同的引脚功能。

5.8086CPU是怎样解决地址线和数据线的复用问题的?ALE信号何时处于有效电平?
答案:为解决引脚少的问题,8086CPU内部采用一个多路开关,使低16位地址线和16位数据线共用引脚。

因为当CPU访问存储器或外设时,先要给出访问单元的地址,然后才是读写数据,因此在时间上是可以区分的。

在总线周期的第一个时钟周期(T1状态),输出低16位地址(记为A15~A0),而在总线周期的其他时钟周期内传送数据。

当CPU处于“保持响应”状态时,这些引脚处于高阻隔离状态(即悬浮状态)。

ALE信号是地址锁存信号。

8086在总线周期开始通过地址总线输出地址的同时,通过该引脚输出一个正脉冲,其下降沿用于将地址信息写入外部的地址锁存器中。

在任何一个总线周期的第一个时钟周期时,ALE输出有效电平以表示在当前地址/数据复用总线上输出的是地址信息,ALE作为锁存信号,对地址进行锁存。

ALE端不能被浮空。

6.8086/8088系统用的时钟发生器会产生哪些信号?
答案:8284A是一个专用的时钟发生器,产生4.77MHz的标准时钟信号CLK。

此时钟信号作为系统时钟,并经CLK引脚直接送到8086,作为微处理器的时钟信号。

同时8284A还对复位和就绪信号实现内部的时钟同步,然后再输出,实施对8086的控制。

所以,8086/8088系统用的时钟发生器产生恒定的时钟信号CLK,复位信号RESET,准备就绪信号READY。

7.说明8086CPU的READY输入信号和信号的作用是什么?
答案:READY输入信号实际上是由访问的存储器或外设发出的响应信号,高电平有效。

READY 信号有效时,表示内存或外设准备就绪,马上就可以进行一次数据传输。

CPU在每个总线周期的T3状态开始对READY信号开始进行采样。

如果检测到READY信号为低电平,则在T3状态后插入等待状态Tw,在Tw状态CPU也对READY信号进行采用,若READY信号仍为低电平,则会继续插入等待状态Tw,所以Tw状态可以插入一个或多个,直到READY变为高电平,才进入T4状态,完成数据传输过程,从而结束当前总线周期。

测试信号,低电平有效,信号是和指令WAIT结合起来使用的,在CPU执行WAIT指令时,CPU处于等待状态,当信号低电平时,等待状态结束,CPU继续往下执行被暂停的指令。

第四章习题答案
一、选择题
1.下列描述正确的是_______。

A.汇编语言源程序可直接运行
B.汇编语言属于低级语言
C.汇编程序是用汇编语言编写的程序,运行速度高,阅读方便,属于面向用户的程序语言。

D.汇编语言可以移植
答案:B
2. 分析下面的程序,变量VAR2的偏移地址是______。

DATA SEGMENT
ORG 2
VAR1 DB 2,3,4
ORG $+3
VAR2 DW 1234H
DATA ENDS
A.02H
B.04H
C.05H
D.08H
答案:D
3.为了使MOV AX, VAR指令执行后,AX寄存器中的内容为4142H,下面哪一种数据定义会产生不正确的结果?
A.VAR DW 4142H
B.VAR DW 16706
C.VAR DB 42H, 41H
D.VAR DW ‘AB’
答案:C
4.下列伪指令中______是正确的。

A.ERR1:DW 99
B.ERR2 DB 25*60
C.COUNT EQU 20
D.ONE DB ONE
答案:C
5.执行下列指令后,寄存器CL的值是_______。

STR1 D W ‘AB’
STR2 D B 16 DUP(?)
CNT EQU $-STR1
MOV CX, CNT
MOV AX, STR1
HLT
A.10H
B.12H
C.0EH
D.0FH
答案:B
二、填空题
1.汇编语言的调试过程如下:建立以______为扩展名的源文件;生成以______为扩展名的目标文件;生成以______为扩展名的可执行文件;使用DEBUG调试程序,调试可执行目标程序。

答案:.asm .obj .exe
2.执行下列指令后,(AX)=______,(BL)=_______。

A DW ‘EF’
B DB ‘ABCDEF’
MOV AX, A
MOV BL, B[3]
HLT
答案:4546H 44H
3.执行下面程序段后,AL中的内容是______。

BUF DW 1234H, 5678H, 0001H
MOV BX, OFFSET BUF
MOV AL, 2
XLAT
答案:78H
4.若符号定义语句如下,则L=_______。

BUF1 DB 1, 2, ‘12’
BUF2 DB 0
L EQU BUF2-BUF1
答案:4
5.执行下列程序段后,BX寄存器间址单元的内容是______。

ORG 1FFFH
DB 4FH, 50H, 51H
MOV BX, 1FFFH
INC [BX]
INC BX
DEC [BX]
答案:4FH
6.对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容:TABLE1 DB ?
TABLE2 DW 20 DUP(?)
TABLE3 DB ‘ABCD’
......
MOV AX, TYPE TABLE1; (AX)=___
MOV BX, TYPE T ABLE2; (BX)=____
MOV CX, LENGTH TABLE2; (CX)=_____
MOV DX, SIZE TABLE2 ; (DX)=_____
MOV SI, LENGTH TABLE3; (SI)=_______
答案:1 2 20 40 1
7.下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。

请填写出正确结果。

DATA SEGNEBT
FIRST DB _____, _____, 0H
SECOND DB _____,______
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX, _____
MOV SI, 0
_________
NEXT: MOV AL, SECOND[SI]
ADC FIRST[SI], AL
INC SI
LOOP NEXT
MOV AL, 0
ADC AL, ______
MOV FIRST[SI], AL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
答案:0BH 8AH 05H D7H 2 CLC 0
8.下面程序的功能是求有符号数中绝对值最小的数,并将最小绝对值存放在DAT2字节中,填空使程序正确实现此功能。

程序执行后,DAT2单元中的内容是______。

DATA SEGMENT
DAT1 DB 65H, 88H, 20H, 0F6H
N EQU $-DAT1
DAT2 DB ?
DATA ENDS
CODE SEGMENT
_________________
START: MOV AX, DATA
__________
LEA SI, DAT1
MOV CX, N-1
MOV AL, [SI]
TEST AL, 80H
JZ LP0
NEG AL
LP0: MOV DAT2, AL
LP1: _________
MOV BL, [SI]
TEST BL, 80H
JZ LP2
NEG BL
LP2: ________
JB LP3
MOV DAT2, BL
MOV AL, BL
LP3: ________
MOV AH, 4CH
INT 21H
CODE ENDS
END START
答案:
ASSUME DS:DATA, SS:STACK, CS:CODE
MOV DS, AX
INC SI
CMP DAT2, BL
LOOP LP1
DAT2单元中的内容:0AH
9.填空说明在下列程序段执行过程中相应寄存器中的值。

假设程序执行前DS=3000H,SS=2000H,SP=3000H,AX=4567H,BX=1234H,CX=6789H。

AND BX, 00FFH
CALL MYSUB
NOP ;SP=________
;AX=_______
;BX=_______
HLT
MYSUB PROC
PUSH AX
PUSH BX
PUSH CX
SUB AX, BX ;SP=______
POP CX
POP AX
POP BX
NOP ;SP=______
RET
MYSUB ENDP
答案:3000H 0034H 4567H 2FF8H 2FFEH
10.完善程序。

BUFFER单元开始放置一个数据块,BUFFER单元存放预计数据块的长度为20H,BUFFER+1单元存放的是实际从键盘输入的字符串的长度,从BUFFER+2开始存放的是从键盘接收的字符,请将这些从键盘接收的字符再在屏幕上显示出来。

MOV DX, OFFSET BUFFER
MOV AH, _______
INT 21H ;读入字符串
LEA DX, ______
MOV AL, ______ ;实际读入的字符串的字符个数
MOV AH, 0
ADD BX, AX
MOV AL, ____
MOV [BX+1], AL
MOV AH, _____
INC DX ;确定显示字符串的首址
INT 21H
MOV AH, _____ ;系统返回DOS
INT 21H
答案:0AH BUFFER+1 [BX] '$'或24H 9 4CH
三、问答题
1.变量和标号有哪些属性?它们的区别是什么?
答案:变量、标号还有常量是汇编语言中使用的操作数,是3种基本的数据项。

变量和标号都有段属性、偏移属性和类型属性3种属性,但含义不同。

变量通常指存放在存储单元中的值,在程序的运行中是可以修改的。

所有的变量都具有3个属性。

(1)段属性:指变量所在段的段基址,此值必须在一个段寄存器中。

(2)偏移属性:指变量所在地址与所在段的段首地址之间的地址偏移字节数。

(3)类型属性:指变量中每个元素所包含的字节数。

标号是可执行指令语句的地址的符号表示,它可作为转移指令和调用指令CALL的目标操作
数,以确定程序转向的目标地址,它也具有3个属性:
(1)段属性:指标号所在段的段基址。

标号的段是它所出现的那个代码段,由CS指示。

(2)偏移属性:指标号所在地址与所在段的段首地址之间的地址偏移字节数。

(3)类型属性:标号的类型属性指在转移指令中标号可转移的距离,也称距离属性。

NEAR和FAR
2.指出下列伪指令语句中的错误:
(1) DATA DB 395
(2)PRGM SEG
……
PRGM ENDS
(3)ALPHA EQU BETA
(4) COUNT EQU 100
COUNT EQU 65
(5) GOON DW 10DUP(?)
……
JMP GOON
答案:
(1)字节变量,范围在0~255
(2)定义段的伪指令为SEGMENT
(3)BETA必须先定义
(4)EQU不能重复定义,在下一次定义前必须用PURGE撤消
(5)转移指令必须转移到指令上,不允许转移到数据变量上。

3.一数据段如下:
DATA SEGMENT PARA 'DATA' AT 46H
QA EQU 255
QA1=QA GT 3000
QA2=0FFFH
QA3 EQU QA2 XOR 255
QA4=88 MOD 5
QA5=88H SHR 2
QA6 EQU QA3/16+15
ORG 1060H
G1 DB 32, QA, 98/2, NOT 25
G2 DW 0FF6H, OFFSET G2
G3 DW 3DUP(5)
G4 DW SEG G1
SA EQU LENGTH G3
SB EQU SIZE G3
SC=TYPE G3
ORG 1200H
F1 EQU THIS WORD
F2 DB 11H, 22H, 33H, 44H
FF DD 12345H
DATA ENDS
(1)写出每个符号所对应的值
(2)画出内存分配图
(3)执行下列指令后,对应的寄存器的值为多少
MOV AX, WORE PTR FF
AND AX, 0FFH
MOV BX, WORD PTR G1
MOV BX, 255 AND 0FH
ADD AX, OFFSET F2
MOV BX, F1
答案:
(1)
DATA SEGMENT PARA 'DATA' AT 46H
QA EQU 255 ;QA=255
QA1=QA GT 3000 ;255大于3000,命题假,QA1=0 QA2=0FFFH ;QA2=0FFFH
QA3 EQU QA2 XOR 255 ;QA3=0FFFH⊕0FFH=0F00H
QA4=88 MOD 5 ;QA4=3
QA5=88H SHR 2 ;QA5=22H
QA6 EQU QA3/16+15 ;QA6=10FH
ORG 1060H
G1 DB 32, QA, 98/2, NOT 25
G2 DW 0FF6H, OFFSET G2
G3 DW 3DUP(5)
G4 DW SEG G1
SA EQU LENGTH G3 ;SA=3
SB EQU SIZE G3 ;SB=3×2=6
SC=TYPE G3 ;SC=2
ORG 1200H
F1 EQU THIS WORD ;F1的偏移地址为1200H,类型为字F2 DB 11H, 22H, 33H, 44H
FF DD 12345H
DATA ENDS
(2)内存分配:
DS:1060H G1 20H
FFH
31H
E6H
DS:1064H G2 F6H
0FH
64H
10H
DS:1068H G3 05H
00H
05H
00H
05H
00H
DS:106EH G4 46H
00H
…………
DS:1200H F2 11H
22H
33H
44H
DS:1204H F F 45H
23H
01H
00H
(3)存储器的值:
MOV AX, WORE PTR FF ;AX=2345H
AND AX, 0FFH ;AX=0045H
MOV BX, WORD PTR G1 ;BX=0FF20H
MOV BX, 255 AND 0FH ;BX=000FH
ADD AX, OFFSET F2 ;AX=1245H
MOV BX, F1 ;BX=2211H
4.以下程序的执行结果是_______。

A D
B ‘1234’
B DW 5 DUP(2,3 DUP(0))
C DW ‘AB’,’C’,’D’
L1: MOV AL, TYPE B
MOV BL, LENGTH B
MOV AH, SIZE A
MOV BH, SIZE C
MOV CL, TYPE L1
MOV CH, SIZE B
答案:AX=0102H, BX=0205H CX=0AFFH
5.有下列数据段,写出数据段中MAX、VAL1、VAL2、LEND符号所对应的值。

DATA SEGMENT
MAX EQU 0FFFH
VAL1 EQU MAX MOD 10H
VAL2 EQU VAL1*2
BUFF DB 1,2,3,'123'
EBUFF DB ?
LEND EQU EBUFF-BUFF
DATA ENDS
答案:
MAX=0FFFH VAL1=000FH VAL2=001EH LEND 6
6.现有程序如下:
DATA SEGMENT
A D
B 23
B DB 0F0H
C DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV AL, A
CMP AL, B
JZ L
JG M
MOV C, -1
JMP EXIT
L: MOV C, 0
JMP EXIT
M: MOV C, 1
EXIT: M OV AH, 4CH
INT 21H
CODE ENDS
END START
请回答:(1)该程序完成什么功能?(2)程序运行完后,C中的内容是什么?
答案:判断两个有符号数,若A=B,则C=0;若A>B,则C=1;若A<B,则C=-1。

C=1。

7.设有无符号数X,Y,编写求的程序。

已知X为1234H,Y为5678H,X、Y、Z均为存放于数据段的字变量。

答案:
DATA SEGMENT
X DW 1234H
Y DW 5678H
Z DW 0
DATA ENDS
STACK SEGMENT STACK
ST1 DW 64 DUP(?)
TOP EQU $-ST1
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
START: MOV AX, DATA
MOV DS,AX
MOV AX, STACK
MOV SS, AX
MOV SP, TOP
MOV AX, X
SUB AX, Y
JNC NEXT
NEG AX
NEXT: MOV Z, AX
MOV AH, 4CH
INT 21H
CODE ENDS
END START
8.阅读下列程序,回答下列问题:
(1)程序执行后,RESULT单元的内容为多少?
(2)程序完成的功能是什么?
(3)该程序所占的数据区为多少个字节?
DATA SEGMENT
FEN DB 85, -90, 64, -120, 95, 77, 88, 120, 60, 83 COUNT EQU $-FEN
RESULT DB ?
DATA ENDS
STACK SEGMENT PARA STACK
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DATA:DATA, SS:STACK START: MOV AX,DATA
MOV DS, AX
MOV SI, OFFSET FEN
MOV CX, COUNT
DEC CX
MOV AL, [SI]
MOV RESULT ,AL
TEST AL, 80H
JZ LOP
NEG AL
LOP: INC SI
MOV BL, [SI]
TEST BL, 80H
JZ NEXT
NEG BL
NEXT: CMP AL, BL
JAE NEXT1
MOV AL, BL
MOV BL, [SI]
MOV RESULT , BL
NEXT1: LOOP LOP
NOP
MOV AH, 4CH
INT 21H
CODE ENDS
END START
答案:(1) -120
(2)将绝对值最大的数放入RESULT单元中
(3)11字节
9.定理:从1开始的连续n个奇数之和等于n2,如1+3+5=32=9。

设:在数据区有字节变量N(0≤N≤255)。

试按此定理编写程序求N2并将结果存放于字变量RESULT中。

答案:
STACK SEGMENT PARA STACK
DW 100 DUP(?)
STACK ENDS
DATA SEGMENT
N DB 5
RESULT DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DATA, SS:STACK
START: MOV AX, DATA
MOV DS, AX
MOV AH, 0
MOV AL, N
MOV CX, AX
MOV BX, 0
MOV DX, 1
LOOP1: ADD BX, DX
ADD DX, 2
LOOP LOOP1
MOV RESULT, BX
MOV AH, 4CH
INT 21H
CODE ENDS
END START
第六章习题
一、选择题
1.I/O单独编址方式下,从端口读入数据可使用_____。

A. MOV
B.OUT
C.IN
D.XCHG
答案:C
2.可用作简单输入接口电路的是______。

A.译码器
B.锁存器
C.方向器
D.三态缓冲器
答案:D
3.CPU与I/O设备之间传送的信号有______。

A.控制信息
B.状态信息
C.数据信息
D.以上三种都有
答案:D
4.从硬件角度而言,采用硬件最少的数据传送方式是______。

A.DMA控制
B.无条件传送
C.查询传送
D.中断传送
答案:B
5.从输入设备向内存输入数据时,若数据不需经过CPU,其I/O数据传送方式是____。

A.程序查询方式
B.中断方式
C.DMA方式
D.直接传送方式
答案:C
6.主机与外设信息传送的方式分别为查询方式、中断方式、DMA方式。

相比之下,中断方式的主要优点是_______。

A.接口电路简单、经济,只需少量的硬件
B.数据传输的速度最快
C.CPU的时间利用率高
D.能实时响应I/O设备的设备的输入输出请求
答案:D
7.在微机系统中,为了提高CPU系统数据总线的驱动能力,可采用_____。

A.译码器
B.多路转换器
C.双向三态缓冲器
D.采样保持器
答案:C
8.执行“IN AL, DX”指令后,进入AL寄存器的数据来自_____。

A.立即数
B.存储器
C.寄存器
D.外设端口
答案:D
二、问答题
1.CPU与外设进行数据传送时,为什么需要I/O接口电路?I/O接口电路的功能有哪些?
答案:CPU与外部设备进行信息交换,是在控制信号的作用下通过数据总线来完成的。

外部设备的种类不同,对信息传送的要求也不同,这就给计算机和外设之间的信息交换带来以下一些问题:
(1)速度不匹配:CPU速度高,外设的速度低。

不同的外设速度差异大,如硬盘速度高,每秒能传送兆位数量级,串行打印机每秒钟只能打印百位字符,而键盘的速度则更慢。

(2)信号不匹配:CPU的信号为数字信号,数据采集输入的是模拟信号,需要对外部信号进行模/数转换,才能被计算机处理;同样,计算机输出的是数字信号,需要输出模拟信号时,必须要通过数/模转换。

(3)信号格式不匹配:计算机接收和处理的是并行数据,而有些外部设备的信号为串行数据,这就需要使用接口电路进行串行数据和并行数据转换。

(4)另外为了提高CPU的传输效率,需要利用接口电路对外设进行控制。

作为连接CPU和外设的接口电路,它具有以下功能:
(1)数据的寄存和缓冲功能
为了解决CPU和外部设备速度不匹配的问题,接口电路内部设置有数据寄存器或具有RAM 功能的数据缓冲区,使之成为CPU和外设进行数据交换的中转站。

无论输入还是输出数据,传输的数据首先进入缓冲区,输入数据时等待CPU发出接收指令,输出数据时等待外设发出的输出信号。

(2)信号转换功能
为了解决CPU和外设之间信号电平不一致的问题,可以通过设置电平转换接口电路来解决,如采用MAX232等芯片实现电平转换。

为了解决CPU和外设之间串并行数据不匹配的问题,CPU输出数据时,设置并变串接口电路;CPU输入数据时,设置串变并接口电路。

为了解决外设模拟量传输的问题,设置模/数转换(A/D)电路或数/模转换(D/A)电路。

(3)端口选择功能
CPU通过接口电路对外部设备进行控制,具体和哪一个外设进行数据交换,首先要选通相应的接口电路,而这一过程是通过地址选通来实现的,即接口电路有其独有的地址空间。

不同的接口电路占用的地址是不同的,占有的地址个数也是不同的。

有的占有两个地址,有的占有4个地址等,以对应不同的外设。

一般来说,接口电路的片选信号由高位地址信号来产生,接口电路内部的选择由低位地址来决定。

CPU的地址信号是一组单向的信号线,它们总是由CPU发出,因此CPU发出不同的地址信号就选择了相应的接口电路,也就选通了相应的外部设备。

(4)接收和执行CPU的指令
CPU的地址信号发出后,被选通的接口电路,根据CPU的读、写等指令输入输出数据信号或输出控制信号。

(5)中断管理功能
为了提高CPU的效率,使得外设工作时,不影响CPU的执行,需要利用中断控制芯片来连接多个外设。

只有当外设需要CPU进行处理,才会通过中断控制器,给CPU发送中断请求信号,CPU接到该信号后,在满足相应中断允许的条件下,停止执行当前程序,转而去执行中断服务程序,即处理外设事物。

在这里接口电路就是中断控制器,用来管理这些需要CPU 中断的外部设备。

2.计算机对I/O接口电路的编址有哪些方法?8086/8088 CPU采用哪种编址方法?
答案:当接口电路的地址和存储单元的地址相同时,称为独立编址,也称I/O映射方式;当接口电路的地址和存储单元的地址不同时,称为统一编址,也称存储器映射方式。

独立编址
3.CPU与外设间进行数据传送有哪几种方式?简述各种方式的工作原理。

无条件传送方式是最简单的传送方式,该方式应用于始终处于准备好状态的外设,即CPU 输入或输出数据时不需要查询外设的工作状态,任何时候都可以输入输出。

查询传送方式在传送数据前,CPU需要查询当前外设的状态,当查询到当前外设准备好,即处于空闲状态时,CPU就可以通过数据线和外设进行输入输出的操作;当查询到外设当前的状态为忙时,则等待,并继续查询,直到外设准备好,再传送数据。

4.假设一接口电路的地址信号为A0,片选端为,占用两个地址,分别是20H和21H,试利用74LS138译码器设计译码电路,并画出硬件电路设计图。

片选地址片内地址接口电路地址
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 1 0 0 0 0 0 20H
1 21H
5.若要求74LS138输出的译码地址为0200H~0207H,0208H~020FH,……,0238H~023FH等8组,可用于选通8个I/O芯片,试画出74LS138与8086最小系统连接图。

片外地址内部地址
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0。

相关文档
最新文档