微机原理与接口技术牟琦主编习题答案_第1页
微机原理与接口技术牟琦主编习题答案_第2页
微机原理与接口技术牟琦主编习题答案_第3页
微机原理与接口技术牟琦主编习题答案_第4页
微机原理与接口技术牟琦主编习题答案_第5页
已阅读5页,还剩52页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题1

1.什么是汇编语言,汇编程序,和机器语言?

答:机器语言是用二进制代码表达时计算机能直接识别和执行的一种机器指令

的集合。

汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符替代操作

码,用地址符号或标号替代地址码。这种用符号替代机器语言时二进制码,就

把机器语言编程了汇编语言。

使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言

翻译成机器语言,这种起翻译作用的程序叫汇编程序。

2.微型计算机系统有哪些特点?具有这些特点的主线原因是什么?

答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计

灵活,周期短、见效快,体积小、重量轻、耗电省,维护以便。

这些特点是由于微型计算机广泛采用了集成度相称高的器件和部件,建立在微

细加工工艺基础之上。

3.微型计算机系统由哪些功能部件构成?试阐明“存储程序控制”的概念。

答:微型计算机系统的硬件重要由运算器、控制器、存储器、输入设备和输出

设备构成。

“存储程序控制”H勺概念可简要地概括为如卜.几点:

①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基

本部件构成。

②在计算机内部采用二进制来表达程序和数据。

③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,

使计算机在不需要人工干预艮I状况下,自动、高速时从存储器中取出指令加以

执行,这就是存储程序H勺基本含义。

④五大部件以运算器为中心进行组织。

4.请阐明微型计算机系统的工作过程。

答:微型计算机H勺基本工作过程是执行程序的过程,也就是CPU自动从程序寄

存的第1个存储单元起,逐渐取出指令、分析指令,并根据指令规定口勺操作类

型和操作对象,执行指令规定的有关操作。如此反复,周而复始,直至执行完

程序的所有指令,从而实现程序的基本功能。

5.试阐明微处理器字长的意义。

答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。

它决定着计算机内部寄存器、ALU和数据总线的位数,反应了一台计算机的计

算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优

越。在完毕同样精度的运算时,字长较长口勺微处理器比字长较短的微处理器运

算速度快。

6.微机系统中采用的总线构造有几种类型?各有什么特点?

答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总

线、IEEEI394总线、USB总线等类型。

7.将下列十进制数转换成二进制数、八进制数、十六进制数。

①(4.75)io=(0100.11)2=(4.6)s=(4.016

②(2.25)io=(10.01)2=(2.2)8=(2.8)16

③(1.875)io=(1.111)2=(1.7)8=(1.E)16

8.将下列二进制数转换成十进制数。

①(1011.011)2=(11.6)io

②(1101.01011)2=(13.58)io

③(111.001)2=(7.2)io

9.将下列十进制数转换成8421BCD码。

①2023=(0010000000000110)BCD

@123.456=(0001(X)1()()()11.()1(X)()101()110)BCD

10.求下列带符号十进制数的8位基2码补码。

①[+127]补=01111111

②E产11111111

③[-128]产10000000

®[+l]4=00000001

11.求下列带符号十进制数的16位基2码补码.

①[+655]产1111

②[-1]补=1110

③卜3212]补=1100

④

[+100]补=0100

习题2

1.8086CPU在内部构造上由哪几部分构成?各部分的功能是什么?

答:8086CPU内部由两大独立功能部件构成,分别是执行部件和总线接口

部件。执行部件负责进行所有指令的解释和执行,同步管理有关H勺寄存器。

总线接口部件是CPU在存储器和I/O设备之间口勺接口部件,负责对所有引

脚时操作。

2.简述8086CPU的寄存器组织。

答:8086CPU内部共有14个16位寄存器,按用途可分为数据寄存器,段

寄存器,地址指针与变址寄存器和控制寄存器。数据寄存器包括累加器,基

址寄存器,计数器,和数据寄存器。段寄存器用来寄存各分段H勺逻辑段基

值,并指示目前正在使用口勺4个逻辑段。地址指针与变址寄存器一般用来寄

存主存地址H勺段内偏移地址,用于参与地址运算。

控制寄存器包括指令寄存器和标识寄存器。

3.试述8086CPU标志寄存器各位的含义与作用。

答:标志寄存器是16位的寄存器,但实际上8086只用到9位,其中的6位

是状态标识位,3位是控制标识位。状态标志位分别是CF,PF,AF,ZF,

SF,和OF;控制标志位包括DF,IF,TFo

CF:进位标志位。算数运算指令执行后,若运算成果的最高位产生进位或

借位,则CF=1,否则CF=00

PF:奇偶标志位。反应计算成果中1的个数是偶数还是奇数。若运算成果口勺

低8位中具有偶数个1,则PF=1;否则PF=O.

AF:辅助进位标志。算数运算指令执行后,若运算成果的I低4位向高4位

产生进位或借位,则AF=1;否则AF=O.

ZF:零标志位。若指令运算成果为0,则ZF=1;否则ZF=0。

SF:符号标志位。它与运算成果最高位相似。

OF:溢出标志位。当补码运算有溢出时,OF=1;否则OF=0。

DF:方向标志位。用于串操作指令,指令字符串处理时H勺方向。

IF:中断容许标志位。用来控制8086与否容许接受外部中断祈求。

TF:单步标志位。它是为调试程序而设定时陷阱控制位。

4.8086CPU状态标志和控制标志有何不一样?程序中是怎样运用这两类标识

的?8086的J状态标志和控制标识分别有哪些?

答:状态标志位反应了目前运算和操作成果的状态条件,可作为程序控制转

移与否的根据。它们分别是CF,PF,AF,ZF,SF,和OF。控制标志位用

来控制CPU的操作,由指令进行置位和复位,控制标志位包括DF,IF,

TFo

5.将10011100和11100101相加后,标识寄存器中CF,PF,AF,ZF,SF,OF各

为何值?

答:CF=1,PF=1,AF=1,ZF=0,SF=1,OF=0

6.什么是存储器的物理地址和逻辑地址?在8086系统中,怎样由逻辑地址计

算物理地址?

答:逻辑地址是思维性的表达,由段地址和偏移地址联合表达的地址类型叫

逻辑地址。物理地址是真实存在的唯一地址,指的是存储器中各个单元的单

元号。

在8086系统中,物理地址二段地址XI0H+偏移地址

7.段寄存器CS=1200H,指令指针寄存器IP=4000H,此时,指令的物理地址

为多少?指向这一地址的CS指和IP值是唯一的吗?

答:此指令H勺物理地址=1200Hxl0H+4000H=1600DH并且指向这一物理地

址的CS值和IP值并不是唯一H勺。

8.在8086系统中,逻辑地址FFFF:000b00A2:37F和B800:173F的物理

地址分别是多少?

答:

逻辑地址FFFF:000100A2:3TFB800:173F

物理地址FFFF1H00D9FHB973FH

9.在8086系统中,从物理地址388H开始次序寄存下列3个双字节的数据

651AH,D761H和007BH,请问物理地址388H,389H,38AH,38BH,

38CH和38DH6个单元中分别是什么数据?

答:(388H)=1AH,(389H)=65H,(38AH)=6IH,(38BH)=DTH,

(38CH)=7BH,(38DH)=00H

10.8086微处理器有哪几种工作模式?各有什么特点?

答:8086微处理器有最大和最小工作模式。

在最小模式下:8086CPU直接产生所有总线控制信号(DT/R,DEN,

ALE,M/IO)和命令输出信号(RD,WR,INTA:并提出祈求访问总线的

逻辑信号HOLD,HLDAo

在最大工作模式下,必须配置8288总线控制器,并且根据8086提供的

状态信号S2,SI,S0,输出读写控制命令,可以提供灵活多变的系统配

置,以实现最佳的系统性能。

11.简述8086引脚信号中M/IO,DT/R,RD,WR,ALE,DEN和BHE的作

用。

答:M/IO:输出信号,高电平时,表达CPU与存储器之间数据传播;低

电平时,表达CPU与I/O设备之间数据传播。

DT/R:控制其数据传播方向的信号。DT/R=1时,进行数据发送;

DT/R=0时,进行数据接受。

RD:CPU的读信号,RD=0时,表达8086为存储口或I/O端口读操作。

WR:CPU的写信号,WR=0时,表达8086为存储口或I/O端口写操作。

ALE:地址存锁信号,在T1能时刻有效。

DEN:数据选通信号,当DEN有效时,表达容许传播。

BHE:数据总线容许信号,与A0组合使用,表达与否访问奇地址字节。

12.简述8086读总线周期和写总线周期和引脚上的信号动尖态变化过程。8086

的读周期时序和写周期时序的区别有哪些?

答:在8086读周期内,有关总线信号的变化如下:

①M/记:在整个读周期保持有效,当进行存储器读操作时,M/七为高电

平;当进行1/0端口读操作时,M/75为低电平。

②AI9/S6〜A16/S3:在T1期间,输出CPU要读取的存储单元或I/O端口口勺地

址高4位。T2〜T4期间输出状态信息S6-S?o

③瓦向$7:在》期间,输出BHE有效信号(旗为低电平),表达高8位数

据总线上的信息可以使用,标信号一般作为奇地址存储体的体选信号(偶地址

存储体时体选信号是最低地址位Ao)oT2—T4期间输出高电平。

④AD&〜ADo:在Ti期间,输出CPU要读取H勺存储单元或I/O端口的地址

A15〜Ao。T2期间为高阻态,T3〜T4期间,存储单元或I/O端口将数据送上数据

总线。CPU从ADi5〜ADo上接受数据。

⑤ALE:在Ti期间地址锁存有效信号,为一正脉冲,系统中H勺地址锁存器

正是运用该脉冲的下降沿来锁存Ai9/S6-Ai6/S3,AM〜ADo中的I20位地址信

息以及丽

@RD:T2期间输出低电平送到被选中R勺存储器或I/O接口,注意,只有被

地址信号选中的存储单元或I/O端口,才会被RD信号从中读出数据(数据送上

数据总线ADI5~ADO)°

⑦DT/斤:在整个总线周期内保持低电平,表达本总线周期为读周期,在接

有数据总线收发器H勺系统中,用来控制数据传播方向。

⑧而口在T2〜T3期间输出有效低电平,表达数据有效,在接有数据总线

收发器的系统中,用来实现数据的选通。

总线写操作H勺时序与读操作时序相似,具不•样处在于:

①ADis〜AD。:在T2〜T4期间送上欲输出时的数据,而无高阻态。

②而:从T2〜T4,砺引脚输出有效低电平,该信号送到所有於J存储器和

I/O接口。注意,只有被地址信号选中的存储单元或LO端口才会被丽信号写

入数据。

③D17斤:在整个总线周期内保持高电平,表达本总线周期为写周期,在接

有数据总线收发器H勺系统中,用来控制数据传播方向。

习题3

1.假定(DS)=2023H,(ES)=2100H,(SS)=1500H,(SI)=OOAOH,

(BX)=0100H,(BP)=0010H,数据变量VAL时偏移地址为0050H,请

指出下列指令原操作数是什么寻址方式,其物理地址是多少?

(1)MOVAX,OABH(2)MOVAX,[1OOH]

⑶MOVAX,VAL(4)MOVBX,[SI]

(5)MOVAL,VAL|BX](6)MOVCL,[BX][SI]

(7)MOVVAL[SI],BX(8)MOV[BP][SI],100

答:(1)立即数寻址,物理地址:无

(2)直接寻址,物理地址=2023Hxl0H+100H=20230H

⑶直接寻址,物理地址二2023Hxi0H+0050H=20230H

⑷寄存器间接寻址,PA=2023HX10H+00A0=200A0H

(5)相对寄存器寻址,PA=2O23HxlOH+(0050+01OOH)=20230H

(6)基址加变寻址,PA=2023Hxl0H+(0100H+00A0H)=201A0H

(7)寄存器寻址,无PA

(8)立即数寻址,无PA

2.已知(SS)=0FFA0H,(SP)=00B0H,先执行两条把8057H和0F79H分

别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变

化的过程示意图。

答:

“8057H”进栈,则SP自动从00B0H指向00B2H,“0F79H”进栈,则SP

自动从00B2H指向00B4H;执行一条POP指令,“0F79H”被弹出栈,SP从

00B4H指向00B2H。图略。

3.设有关寄存器及存储单元的内容如下:

(DS)=2023H,(BX)=0100H,(AX)=1200H,(SI)=0002H,(20230H)=12H,

(20231H)=34H,(20232H)=56H,(20233H)=78H,(21200H)=2AH,

(21201H)=4CH,(21202H)=0B7H,(21203H)=65H.

试阐明下列各条指令单独执行后有关寄存器或存储单元的内容。

(1)MOVAX,1800H(2)MOVAX,BX

(3)MOVBX,[1200H|(4)MOVDX,1100[BX]

(5)MOV[BX][SI],AL(6)MOVAX,1100[BX][SI]

答:(l)(AX)=1800H(2)(AX)=0100H(3)(BX)=4C2AH

(4)(DX)=4C2AH(5)(20232H)=00H(6)(AX)=65B7H

4.写出实现下列计算的指令序列。

(1)Z=W+(X+Z)(2)Z=VV-(X+6)-(R+9)

答:⑴MOVAX,Z

ADDAX,X

ADDAX,W

MOVZ,AX

(2)MOVAX,W

ADDX,6

SUBAX,X

ADDR,9

SUBAX,R

MOVZ,AX

5.若在数据段中从字节变量TABLE对应的单元开始寄存了0〜15的平方值,

试写出包括XLAT指令的指令序列查找N(0-15)中的某个平方数。

答:LEABX,TABLE

MOVAL,CL

XLAT

6.写出实现下列计算的指令序列。

(1)Z=(VV*X)/(R+6)(2)Z=((VV-X)/5*Y)*2

答:(l)MOVAX,W

IMULX

ADDR,6

IDIVR

MOVZ,AX

(2)MOVAX,W

SUBAX,X

MOVBL,5

IDIVBL

CBW

IMULY

MOVBX,2

IMULBX

MOVZ,AX

7.假定(DX)=1001B,CL=3,CF=1,试确定下列各条指令单独执行后DX的值。

(1)SHRDX,1(2)SHLDL,1(3)SALDH,1(4)SARDX,CL

(5)RORDX,CL(6)ROLDL,CL(7)RCRDL,1(8)RCLDX,

CL

答:(l)(DX)=0110010011011100B(2)(DX)=1100100101110010B

(3)(DX)=1001001010111001B(4)(DX)=11111001001101IIB

(5)(DX)=0011100100110I11B(6)(DX)=0100110111001110B

(7)(DX)=1110010011011100B(8)(DX)=1001001101110011B

8.已知程序段如下:

MOVAX,1234H

MOVCL,4

ROLAX,CL

DECAX

MOVCX,4

MULCX

INT20H

试问:(D每条指令执行后,AX寄存器的内容是什么?(2)每条指令

执行后,CF,SF及ZF时值分别是什么?(3)程序运行结束后,AX及

DX寄存器的J值为多少?

答:MOVAX,1234H(AX)=1234H,CF=O,SF=O,ZF=O

MOVCL,4

ROLAX,CL(AX)=2341H,CF=1,SF=O,ZF=0

DECAX(AX)=2340H,CF=1,SF=O,ZF=0

MOVCX,4

MULLCX(AX)=8D00H,CF=0,SF=i,ZF=0

INT20H

结束后,(DX)=0D00H,(AX)=8000H

9.试分析下列程序段:

ADDAX,BX

JNCL2

SUBAX,BX

JNCL3

.IMPSHORTL5

假如AX,BX的内容给定如下:

AXBX

(1)14C6H80DCH

(2)B568H54B7H

问该程序在上述状况下执行后,程序转向何处。

答:(1)转至UL2处

(2)转到L3处

习题4

i.下列语句在存储器中分别为变量分派多少字节空间?并画出存储空间的分

派图。

VARIDB10,2

VAR2DW5DUP(?),0

VAR3DB'HOWAREYOU?',3DUP(1,2)

VAR4DD-1,1,0

答:字节空间:

VARI:2;

VAR2:12;

VAR3:13:

VAR4:8。

存储空间的分派图:

-dl3d3:0

1303:0000舶0200期0000期00-00N0000N00484F..................HO

13D3:0010572041524520594F-553F24FFFFFFFF01UAREYOU?$…・.

[3D3:00200000000000000000-0000000000000000

13D3:0030B8D3138ED8B44CCD-21C07503E9?BFF5E

2.假定VARI和VAR2为字变量,LAB为标号,试指出下列指令的错误之

处。

(1)ADDVARI,VAR2(2)SUBAL,VARI

(3)JMPLAB[CX](4)JNZVARI

(5)MOV[1000H],100(6)SHLAL,4

答:(1)在算术运算指令中,两个操作数不能同步为存储器寻址方式

(2)AL为字节,VAR1为字变量,字长不相等;

(3)寄存器相对寻址方式,只能使用基址或变址寄存器,不能使用CX寄存

器。

(4)转向地址应为标号,不能是变量;

(5)目的操作数H勺类型不确定;

(6)SHL指令中,当所移位数超过1时,必须用CL取代所移位数。

3.对于下面的符号定义,指出下列指令的错误。

AlDB?

A2DB10

KIEQU1024

(I)MOVK1,AX(2)MOVA1,AX

(3)CMPA1,A2(4)KIEQU2048

答:(1)K1为常量,不能用MOV指令赋值;

(2)A1为字节,AX为字变量,不匹配;

(3)A1未定义,无法做比较指令;

(4)KI重新赋值前,必须用PURGE释放。

4.数据定义语句如下所示:

FIRSTDB90H,5FH,6EH,69H

SECONDDB5DUP(?)

THIRDDB5DUP(?)

自FIRST单元开始寄存的是一种四字节的十六进制数(低位字节在前),规定:

编一段程序将这个数左移两位后寄存到自SECOND开始的单元,右移两位后寄

存到自THIRD开始的单元。(注意保留移出部分)

答:

DATASEGMENT

FIRSTDB90H,5FH,6EH,69H

SECONDDB5DUP⑺

THIRDDB5DUP(?)

FORTHDB4DUP(?)

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

LEASI,FIRST

LEADI,SECOND

MOVCX,2

CLC

:左移2位

MOVAX,WORDPTR[SIJ:AX=5F90H为低十六位数据

INCSI

INCSI

MOVDX,WORDPTR[SI];DX=696EH为高十六位数据

PUSHDX:保留原有H勺高十六位数据

PUSHAX;保留原有的低十六位数据

ROLDX,CL

:将高位数据不带进位循环左移两位,即高2位数据在DL的

低2位

ANDDL,03H:让DL中仅保留移出的高2位数据

MOV[DI+4],DL:将移出的高2位数据放入SECOND中的最高单元中

ROLAX,CL

:将低位数据不带进位循环左移两位,即AX日勺高2位在AL的

低2位

ANDAL,03H;让AL中仅保留移出的AX高2位数据

MOVBL,AL:将AL中H勺数据放入BL中保理

POPAX:弹出原有的低十六位数据

POPDX:弹出原有的高十六位数据

SHLDX,CL:将高位数据算术逻辑左移2位

SHLAX,CL;将低位数据兜术逻辑左移2位

ORDL,BL;将AX中移出内岛2位数据放入DXH勺低2位

MOVWORDPTR[DI],AX

MOVWORDPTR|DI+2],DX

;右移2位

LEASI,FIRST

LEADLTHIRD

MOVCX,2

CLC

MOVAX,WORDPTR[SI]:AX=5F90H为低十六位数据

INCSI

INCSI

MOVDX,WORDPTR[SI]:DX=696EH为高十六位数据

PUSHDX;保留原有日勺高十六位数据

PUSHAX;保留京有H勺低十六位数据

RORAX.CL;将低位数据不带进位循环右移两位,即低2位数据在AH的

高2位

ANDAH,0C0H;让AH中仅保留移出的低2位数据

PUSHCX

MOVCX,6

SHRAH,CL

POPCX

MOV[DI|,AH:将移出的低2位数据放入THIRD中H勺最低单元中

RORDX,CL

:将低位数据不带进位循环左移两位,即AX口勺高2位在AL的

低2位

ANDDH,OCOH:让DH中仅保留移出H勺DX低2位数据

MOVBL,DH:将DH中的数据放入BL中保留

POPAX;弹出原有的低十六位数据

POPDX:弹出原有的高十六位数据

SHRDX,CL:将高位数据算术逻辑左移2位

SHRAX,CL:将低位数据算术逻辑左移2位

ORAH,BL;将DX中移出的低2位数据放入AX的高2位

MOVWORDPTR|DI+I],AX

MOVWORDPTR[DI+3],DX

:求补

LEASI,FIRST

LEADI,FORTH

MOVAX,WORDPTR[SI]:AX=5F90H为低十六位数据

INCSI

INCSI

MOVDX,WORDPTR[SI]:DX=696EH为高十六位数据

XORAX,OFFFFH;将低十六位取反

XORDX,OFFFFH:将高十六位按位取反

CLC

ADDAX,OIH:低位加I,即可为原数的求补

ADCDX,0:高位加低位加法时口勺进位

MOVWORDPTR[DI],AX

MOVWORDPTR[DI+2],DX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

5.试编程序将内存从40000H到4BFFFH的每个单元中均写入55H,并再逐一

单元读出比较,看写入的与读出的与否一致。若全对,则将AL置7EH;只

要有错,则将AL置81H。

答:

DATASEGMENT

DAIDB55H

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,4000H

MOVDS,AX

MOVCX,0C000H

MOVBX,OOOOH

MOVAH,55H

NEXT1:MOVbyteptrfBXLAH

INCBX

LOOPNEXT1

MOVBX,0000H

MOVCX,0C000H

MOVAL,81H

NEXT2:MOVAH,[BX]

CMPAH,55H

JNZEXIT

INCBX

LOOPNEXT2

MOVAL,7EH

EXIT:MOVAH,4CH

INT21H

CODEENDS

ENDSTART

6.在目前数据段4000H开始的128个单元中寄存一组数据,试编程序将它们

次序搬移到A000H开始的次序128个单元中,并洛两个数据块逐一单元进

行比较;若有错将BL置00H;全对则将BL置FFH,试编程序。

答:

DATASEGMENT

ORG400H

DAIDB128DUP(?)

ORG0A00H

DA2DB128DUP(?)

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,ES:DATA

START:MOVAX,DATA

MOVDS,AX

LEASLDA1

LEADI,DA2

MOVCX,128

AGAIN:MOVAL,[SI]

INCSI

INCDI

LOOPAGAIN

LEASI,DAI

LEADLDA2

MOVCX,128

NEXT:MOVAL,[SI]

MOVBL,[DIJ

CMPAL,BL

JNZERROK

INCSI

INCDI

MOVBL0FFH

LOOPNEXT

JMPEXIT

ERROR:MOVBL,OOH

EXIT:MOVAH,4CH

INT2IH

CODEENDS

ENDSTART

7.设变量单元A、B、C寄存有3个数,若3个数都不为零,则求3个数附和,

寄存在D中;若有一种为零,则将其他两个也清零,试编写程序。

答:

DATASEGMENT

ADB?

BDB?

CDB?

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

CMPA,OOH

JNZLP1

MOVB,0

MOVC,0

JMPLP4

LPI:CMPB,00H

JNZLP2

MOVA,0

MOVC,0

JMPLP4

LP2:CMPC,00H

JNZLP3

MOVA,0

MOVB,0

JMPLP4

LP3:MOVAL,A

ADDAL,B

ADDAL,C

MOVAH.4CH

LP4:INT21H

CODEENDS

ENDSTART

8.有一种100个字节的数据表,表内元素己按从大到小的次序排列好,现给定

一元素,试编程序在表内查找,若表内已经有此元素,则结束;否则,按次序

将此元素插入表中合适的位置,并修改表长。

答:

DATASEGMENT

BUFFDB100DUP(?)

DAIDB(?)

LENGTHDB0

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

MOVSI,0

MOVAL,DAI

MOVCX,100

FIND0:CMPBUFF[SI],AL

JZEXIT

INCSI

LOOPUNDO

MOVDI,99

MOVSLO

COMPARE:CMPBUFF[DI],AL

JGINSERT

MOVBL,BUFF[DI]

MOVBUFF[DI+1],BL

DECDI

CMPDI,SI

JNLCOMPARE

JMPEXIT

INSERT:MOVBUFFIDI+1],AL

MOVLENGTH,101

EXIT:MOVAH,4CH

INT21H

CODEENDS

ENDSTART

9.内存中以FIRST和SECOND开始的单元中分别寄存着两个16位组合的十进

制(BCD码)数,低位在前。编程序求这两个数的组合的十进制和,并存到以

THIRD开始的单元。

答:

DATASEGMENT

FIRSTDD34341212H

SECONDDD78785656H

THIRDDB?,?,?,?

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

LEASI,FIRST

LEADLSECOND

LEABX,THIRD

MOVCX,4

CLC

AGAIN:MOVAL.BYTEPTR[SI]

MOVDL.BYTEPTR[DI]

ADCAL,DL

DAA

MOVBYTEPTR[BX],AL

INCSI

INCDI

INCBX

LOOPAGAIN

JCAA

MOVBYTEPTR[BX],0

JMPEXIT

AA:MOVBYTEPTR[BX]J

EXIT:MOVAH,4CH

INT21H

CODEENDS

ENDSTART

10.编写一段程序,接受从键盘输入的10个数,输入回车符表达结束,然后将

这些数加密后存于BUFF缓冲区中。加密表如下:

输入数字:0,1,2,3,4,5,6,7,8,9;密码数字:7,5,9,1,3,6,8,

0,2,4o

答:

DATASEGMENT

MITABDB”

CONTEQUS-MITAB

BUFFDB10DUP⑺,'$'

YUANWENDB10DUP(?),'$'

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DAIA

START:MOVAX,DATA

MOVDS,AX

MOVSI,0

MOVCX,CONT

INPUT:MOVAH,1

INT21H

CMPAL,13

JZEXIT

ANDAL,OFH

MOVYUANWEN[SI],AL

INCSI

LOOPINPUT

EXIT:LEABX,MITAB

MOVCX,SI

MOVSI,0

JIAMI:MOVAL,YUANWEN[SI]

XLATMITAB

MOVBUFF[SI],AL

INCSI

LOOPJIAMI

MOVAH,4CH

INI21H

CODEENDS

ENDSTART

11.试编程序,记录由40000H开始的J16K个单元中所寄存的字符“A”的个

数,并将成果寄存在DX中。

答:

DATASEGMENT

DAIDB'A'

BUFFDB4000HDUP(?)

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,4000H

MOVDS,AX

MOVBX,0

MOVCX,4000H

FIND:MOVAL,[BX]

MOVBL,DAI

CMPAL,BL

JNZNEXT

INCDX

NEXT:INCSI

LOOPFIND

MOVAH.4CH

INT21H

CODEENDS

ENDSTART

12.在目前数据段(DS),偏移地址为DATAB开始的次序80个单元中,寄存着

某班80个同学某门考试成绩。按如下规定编写程序:

(1)编写程序记录290分;80分〜89分;70分〜79分;60分〜69分,V60分时

人数各为多少,并将成果放在同一数据段、偏移地址为BTRX开始的次序单元

中。

(2)试编程序,求该班这门课的平均成绩为多少,并放在该数据段的AVER单

元中。

答:

DATASEGMENT

BUFFDW80DUP(?)

DA9DB0

DA8DB0

DA7DB0

DA6DB0

DA5DB0

AVERDB0

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

MOVCX,80

COMPARE:MOVBX,0

CMPBUFF[BX],90

JBLP8

INCDA9

JMPNEXT

LP8:CMPBUFF[BX],80

JBLP7

INCDA8

JMPNEXT

LP7:CMPBUFF[BX],7O

JBLP6

INCDA7

JMPNEXT

LP6:CMPBUFFIBX],6O

JBLP5

INCDA6

JMPNEXT

LP5:INCDA5

JMPNEXT

NEXT:INCBX

LOOPCOMPARE

MOVCX.80

XORAX,AX

MOVBXQO

SUM:ADDAX,BUFF[BX]

INCBX

LOOPLP1

MOVCL,80

DIVCL

MOVAVER,AL

MOVAH.4CH

INT21H

CODEENDS

ENDSTART

13.编写一种子程序,对AL中的数据进行偶校验,并将通过校验的成果放回

AL中。

答:

JIOUPROC

PUSHCX

PUSHBX

XORAH,AH

PUSHAX

MOVCL,7

LOOP1:SARAL,1

ADCAH,0

LOOPLOOP1

MOVAL,AH

XORAH,AH

MOVBL,2

DIVBL

MOVBL,AH

POPAX

RORBL,1

ORAL.BL

POPBX

POPCX

RET

JIOUENDP

14.运用上题的子程序,对80000H开始的256个单元的数据加上偶校验,试编

程序。

CODESEGMENT

ASSUMECS:CODE

START:MOVAX,8000H

MOVDS,AX

MOVSI,0

MOVCX,256

LP:MOVAL,|SIJ

CALLJIOU

MOV[SI],AL

INCSI

LOOPLP

MOVAH,4CH

INT21H

JIOUPROC

PUSHCX

PUSHBX

XORAH,AH

PUSHAX

MOVCL,7

LOOP1:SARAL,1

ADCAH,0

LOOPLOOP1

MOVAL,AH

XORAH,AH

MOVBL,2

DIVBL

MOVBL,AH

POPAX

RORBL,I

ORAL,BL

POPBX

POPCX

RET

JIOUENDP

CODEENDS

ENDSTART

习题5

1.试述DRAM的工作特点;与SRAM相比有什么长处和局限性之处;阐明它

的使用场所。

答:DRAM,动态随机存取存储器,需要不停口勺刷新,才能保留数据。并

且是行列地址复用口勺,许多均有页模式。SRAM,静态口勺随机存取存储器,加

电状况下,不需要刷新,数据不会丢失,并且一般不是行列地址复用日勺。

与SRAM相比,DRAM价格廉价、速度慢、容量大,重要用来做主存储

器,存储程序和数据;而SRAM重要用在Cache等对速度规定高的状况。

2.试述DRAM刷新过程和正常读/写过程的区别。

答:刷新是以行为单位进行,且刷新过程中不能进行读写操作。

3.设有一种具有20位地址和32位字长的存储器,问:

(1)该存储器能存储多少个字节的信息?

(2)假如存储器由512K*8位SRAM芯片构成,需要多少片?

(3)需要多少位作芯片选择?

答:(1)该存储器能存储4MB的信息。

(2)需要8片512K*8位的芯片。

(3)需要1位做芯片选择。

4.对于8Kx8位RAM构成的存储器系统,若某组的起始地址为08000H,则

其末地址为多少?

答:末地址为9FFF.

5.在8088最大方式系统总线上扩充设计4K字节的SRAM存储器电路。

SRAM芯片选用Intel2114,起始地址从OOOOHo试画出此存储器电路与系

统总线的连接图。

答:系统容量为4K*8为,芯片容量为1K*4为,因此一共需要8片芯片

连接图如下:

1•O

•»

Z------------------------------------------------------------

2--------------------------------------------------------------

S:----------->汇\(EMWR

A.V)_A..A_A.A

尔2U4.小

_2114-_2114_2114^

M-DJD;

6.在8088系统总线上扩充设计8K的字节的SRAM存储器电路。SRAM芯片

选用Intel6264,起始地址从04000H开始,译码器电路74LS138.

(1)计算此RAM存储区的最高地址是多少。

(2)画出此存储器电路与系统总线的连接图。

(3)编写程序实现对此存储区域进行自检。

答:(1)最高地址是O5FFFH。

(2)

(3)MOVDX.0FFE2H

LI:INAL,DX

TESTAL,01H

JZLI

MOVAX,1OODH

MOVDS,AX

MOVDX,2023H

MOVCX,100

MOVDX,OFFEOH

L2:INAL,DX

MOV[DX],AL

INCBX

LOOPNL2

7.在8086最小方式系统总线上扩充设计16K字节的SRAM存储器电路,

SRAM芯片选用Intel6264,起始地址从04000H开始,译码器电路采用

74LS138.

(1)计算此RAM存储区域的最高地址是多少

(2)画出此存储器与总线的连接图。

答:(D07FFFH

(2)

习题6

i.什么是接口?接口的功能是什么?

答:位于主机与外设之间,用来协助完毕数据传送和控制任务的逻辑电路称

为接口电路,接口电路对输入/输出过程起缓冲和联络作用。接口的功能是

有,数据缓冲功能,联络功能,寻址功能,预处理功能,中断管理功能。

2.计算机对I/O端口编址时一般采用哪两种措施?在8086系统中,用哪种措

施进行编址?

答:I/O端口和存储器统一编址;I/O端口单独编址。8086系统采用I/O端口

单独编址方式。

3.CPU和输入/输出设备之间传送的信息有哪几类?

答:数据信息,控制信息,与状态信息。

4.简述CPU与外设进行数据互换的几种常用方式.

答:程序控制方式:特点是依托程序的控制来实现主机和外设H勺数据传送,可

分为无条件传送方式和查询方式.

中断控制方式:每次输入和输出一种数据,CPU都要检查外设H勺状态。

直接存储器存取控制方式:cpu不参与数据传送,而是由DMA控制器来

实现内存与外设,外设弓外设之间的直接传递.

通道方式:可以实现对外围设备的统一管理和外围设备与内存之间的数据

传送。

外围处理机方式:由PPU独立于主机工作,减少了CPU控制外设的承

担。

5.无条件传送方式合用哪些场所?查询方式原理怎样?重要用在什么场所?

答:无条件传送合用于简朴H勺输入/输出设备,CPU可以随时读取或接受状态。

这些信号变化缓慢,当需要采集数据时,无需检查端口,就可以立即采集数

据,直接用输入/输出指令完毕。无条件传送方式重要用于控制CPU与低俗I/O

接口之间H勺信息互换。

7.查询式传送方式有什么优缺陷?中断方式为何能弥补查询方式的缺陷?

答:查询传送方式CPU通过程序不停查询对应设备R勺状态,状态不符合规定,

则CPU需要等待;只有当状态信号符合规定期,CPU才能进行对应H勺操作。中

断方式提高了计算机系统中信息处理时并行和处理器效率,中断可以实现同步

操作,实时处理等功能。

8.8088/8086中断向量表的作用是什么?

答:中断向量表建立了不一样口勺中断源与其对应口勺中断服务程序首地址之间的

联络,它是CPU在响应中断时可以根据中断类型码自动转向中断服务程序。

9.什么叫中断向量?它放在哪里?对于1CH的中断向量在哪里?假如1CH的

中断程序从5U0H开始,2030H开始,则中断向量应当怎样寄存?

答:中断向量即用来提供中断入口地址H勺一种指针。

10.8259中IRR,IMR,ISR三个寄存器的作用是什么?

答:⑴中断祈求寄存器IRR

8259A有8条外部中断祈求输入信号线IR0-IR7,每一条祈求线上有一种对应

时触发器来保留祈求信号,它们形成了中断祈求寄存器IRR(InterruptR^uest

Register)。

⑵中断屏蔽寄存器IMR

IMR(InterruplMaskRegisler)用来寄存屏蔽位信息,1MR时每一位可以严禁

IRR中对应位的中断祈求输入信号进入。

⑶中断服务寄存器ISR

ISR(InterruptServiceRegisler)寄存目前正在进行服务时所有中断。ISR中

对应位的置位是在中断响应H勺而X脉冲期间,由优先权判决电路根据IRR中各

祈求位的优先权级别和IMR中屏蔽位的状态,将中断的最高优先级祈求位选通

到ISR中。

11.类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的

装入程序片段。

答:MOVAX,0

MOVDS,AX

MOVSF,20H*4

LEAAX,IMS

MOVRS],AX

MOVAX,SEQ,INTS

MOVISI+2],AX

12.简述DMA控制器同一般接口芯片的区别。

答:DMA控制器能给出访问内存所需要H勺地址信息,弁能自动修改地址指

针,也能设定和修改传送口勺字节数,还能向存储器和外设发出对应口勺读/写

控制信号。在DMA传送结束后,它能释放总线,把对总线H勺控制权又交还

给CPU。用DMA方式传播数据时,不需要进行保护和恢复断点及现场之类

的I额外操作。

13.简述8237A3种基本传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论