文档库 最新最全的文档下载
当前位置:文档库 › 《微机原理与接口技术》第四章习题集与解答

《微机原理与接口技术》第四章习题集与解答

《微机原理与接口技术》第四章习题集与解答
《微机原理与接口技术》第四章习题集与解答

习题集解答

第五章汇编语言程序设计

1.从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。

BUF SEGMENT

DAl DW 3456H

DA2 DB 2 DUP(7,8)

BUF ENDS

答:

存储器的分配图

2.对于习题1的定义,请说明下列每条指令执行后的结果。

1、MOV AX,SEG DAl

2、MOV AX,SEG DA2

3、MOV BX,OFFSET DAl

4、MOV BX,OFFSET DA2

5、MOV CX,TYPE DAl

6、MOV CX,TYPE DA2

7、MOV DX,LENGTH DAl

8、MOV DX,LENGTH DA2

9、MOV AX,SIZE DAl ‘

10、MOV AX,SIZE DA2

答:1、(AX)=(DS)

2、(AX)=(DS)+2

3、(BX)=4000H

4、(BX)=4002H

5、(CX)=2

6、(CX)=1

7、(DX)=2

8、(DX)=4

9、(AX)=2

10、(AX)=4

3.已知数据定义如下,请计算变量PL的值是多少?

DATA DB ‘AB’

DATAl DB 10 DUP(?)

PL EQU $-DATA

答:PL=DATA+12-DATA=12

4.已知A=25、B=15、C=4,请计算下列表达式的值。

(1) A × 50+B (2) A MOD C+B

(3)(A+4)×B-3 (4) B/3 MOD 4

(5)A LE B (6) A XOR 50

答:(1) A ×50+B= 25 ×50+15=1250+15=12515 (2) A MOD C+B=25 MOD 4+15=1+15=16

(3)(A+4)×B-3 =(25+4)×15-3 =1500-3=1497

(4) B/3 MOD 4 =15/3 MOD 4 =5 MOD 4 =1

(5)A LE B =25 LE 15 = 0

(6) A XOR 50 = 25 XOR 50 = 43

5.已知内存DATA单元存放一个字数据,请统计其中含有0的个数,并送人RESULT单元的程序。

答:程序如下:

DATA1 SEGMENT

DATA DW 1234h

COUNT DB 0

DATA1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA1

START: MOV AX,DATA1

MOV DS,AX

MOV AX,DATA

MOV CX,16

LOP: TEST AX,8000H

JNZ NEXT

INC RESULT

NEXT: ROL AX,1

LOOP LOP

INT 3

CODE ENDS

END START

6.已知从数据段TAB单元开始,顺序存放十六进制数0~F的ASCII码,寄存器AL中的高四位二进制数是0、低四位是1。请设计程序:用查表指令(XLAT)将寄存器AL中低四位的十六进制数转换为ASCII码。

答:DATA SEGMENT

TAB DB '0123456789ABCDEF'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LEA BX,TAB

XLAT

INT 3

CODE ENDS

END START

7.已知从数据段BUF单元开始存放一个三字节的带符号数,请设计对其求补的程序。

答:DATA SEGMENT

BUF DB 97H,87H,9AH

RES DB 3 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX

LEA BX,BUF

LEA SI,RES

MOV CX,3

LOP: MOV AL,[BX]

XOR AL,0FFH

MOV [SI],AL

LOOP LOP

CLC

LEA SI,RES

MOV CX,3

LOP1: MOV AL,[SI]

ADC AL,0

MOV [SI],AL

LOOP LOP1

INT 3

CODE ENDS

END START

8.已知从数据段BUF单元开始存放字节型的带符号数X和Y,请设计计算Y=6X+8的程序。

答:DATA SEGMENT

BUF DB 97H,87H ;X=97H和Y=87H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AH,0

MOV AL,BUF

SHL AX,1

MOV BX,AX

SHL AX,1

ADD AX,BX

ADD AX,8

MOV BUF+1,AL

MOV BUF+2,AH

INT 3

CODE ENDS

END START

9.已知X、Y是字节型的无符号数,请设计程序计算:X/4 (0≤x<10)

Y=

X-10 (10≤X<20)

答:程序如下:

DATA SEGMENT

X DB 84H

Y DB 0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX

MOV AL,X

CMP AL,10

JAE NEXT

SHR AL,1

SHR AL,1

JMP EN

NEXT: SUB AL,10

EN:MOV Y,AL

INT 3

CODE ENDS

10.已知从数据段BUF单元开始存放15个字节型数据,请设计程序将其中负数和零分别送往MINUS和ZERO开始的存储器单元。

答:程序如下:

DATA SEGMENT

BUF DB 15DUP(?)

MINUS DB 15 DUP(?) ;存放负数

ZERO DB 15 DUP(?) ;存放0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

ORG 100H

START: MOV AX,DATA

MOV DS,AX

LEA BX,BUF

MOV CX,15

LEA SI,MINUS

LEA DI,ZERO

LOP: MOV AL,[BX]

CMP AL,0

JGE PZ

MOV [SI],AL

INC SI

JMP NEXT

PZ: JG NEXT

MOV [DI],AL

INC DI

JMP NEXT

NEXT: INC BX

LOOP LOP

INT 3

CODE ENDS

END START

12.编一程序将字符串STR(长度20字节)中所有"&"用"$"代替。答:程序如下:

DATA SEGMENT

STR DB 'G674GH&6TR677&74Y&98'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LEA BX,STR

MOV CX,20

LOP: MOV AL,[BX]

CMP AL,'&'

JNZ NEXT

MOV AL,'$'

MOV [BX],AL

NEXT: INC BX

LOOP LOP

INT 3

CODE ENDS

END START

13.请设计程序,将存储器单元2200~2210H清0、2250H~2260H置1、22AOH~22BOH置55H。要求写出主程序和子程序。

解:程序如下:

DATA SEGMENT

BUF1 EQU 2200H

BUF2 EQU 2200H

BUF3 EQU 2200H

DATA ENDS

STACK SEGMENT

DB 20 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK BEG PROC FAR

START: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

LEA BX,BUF1

MOV AL,0

CALL FMOV

LEA BX,BUF2

MOV AL,1

CALL FMOV

LEA BX,BUF3

MOV AL,55H

CALL FMOV

RET

START ENDP

FMOV PROC NEAR

MOV CX,16

LOP: MOV [BX],AL

INC BX

LOOP LOP

RET

FMOV ENDP

CODE ENDS

END BEG

14.编写程序,要求:

(1)键盘键入两个字符串STRING1和STRING2

(2)比较两串所含字符是否完全相同,若相同则显示‘MATCH’,若不相同则显示‘NOMATCH’。

解:程序如下:

DATA SEGMENT

STRING1 DB 10

DB ?

DB 10 DUP(?)

STRING2 DB 10

DB ?

DB 10 DUP(?)

XT DB 'MATCH',13,10,'$' BXT DB 'NO MATCH',13,10,'$' DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX

LEA DX,STRING1

MOV AH,10

INT 21H

LEA DX,STRING2

MOV AH,10

INT 21H

MOV AL,STRING1+1

CMP AL,STRING2+1

JNZ BD

LEA SI,STRING1+2

LEA DI,STRING2+2

MOV CH,0

MOV CL,AL

LOP: MOV AL,[SI]

CMP AL,[DI]

JNZ BD

INC SI

INC DI

LOOP LOP

LEA DX,XT

JMP DO1

BD: LEA DX,BXT

DO1: MOV AH,9

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

第六章存储器

1.计算机的内存和外存有什么区别?

答:内存储器(主存储器)用来存放当前机器运行的程序和数据,它是计算机主机的一部分,一般把具有一定容量且速度较高的存储器作为内存储器,CPU可直接用指令对内存储器进行读写。在微机中通常用半导体存储器作为内存储器。

外存储器用来存放当前暂时不用的程序和数据。外存储器是存储容量大、速度较低、位于主机之外的存储器。CPU不能直接用指令对外存储器进行读写。要使用外存储器中的信息,

必须先将它调入内存储器。

2.计算机的三级存储系统是什么?解决了什么实际问题?

答:在现代微机中同时采用这两种存储层次,构成cache—内存—外存三级存储系统。这三级存储系统的形成,满足了现代微型计算机对存储系统的速度快、容量大且价格低廉的要求。

cache—内存存储系统解决了速度与成本的矛盾。

cache—内存—外存三级存储系统解决了存储器的大容量和低成本之间的矛盾。3.半导体存储器有哪些优点?SRAM、DRAM各有何特点?SRAM的某一单元中

存放一个数据,如05H,CPU将其取走后,该单元的内容是什么?

答:半导体存储器有易读易写、体积小、集成度高、速度快的优点。

DRAM的特点是必须定时刷新、集成度高、功耗低、价格便宜。

该单元的内容是05H(不变)

4.ROM、PROM、EPROM、E2PROM各有何特点?各用于何种场合?

答:①掩膜式ROM

用定作掩膜对存储器进行编程,一旦制造完毕,内容固定不能改变。适合批量生产,但不适用于科研工作。

②可编程式的ROM(PROM)

PROM允许用户一次性写入,再也不可更改。因此,不适用于科研。

③可擦除式的ROM(EPROM)

EPROM允许用户多次写入信息,写入操作由专用的写入设备完成。写入之前应先擦除原来写人的信息。一种擦除方式为紫外光擦除,用紫外光照射15分钟左右,芯片中的信息被擦除,成为一块“干净”的EPROM,可再次写入信息。

④电擦除式的ROM(E2PROM),即用特定的电信号对其进行擦除,可在线操作,因此很方便。它的特点是写入时电压要求较高(一般为20V~25V),写入速度较慢而不能像RAM 那样作随机存取存储器使用。

5.EPROM存储器芯片还没有写入信息时,各单元的内容是什么?使用EPROM时

应注意什么?

答:FFH

对EPROM的擦除和写入都有专用设备,写入之前应确保芯片是“干净”的,即为全1状态。EPROM写入器(或称编程器)一般可对多种型号的EPROM芯片进行写入。通过读写芯片的识别码来确认该使用什么样的编程脉冲和编程电压。写入器由软件和硬件两部分组成,常与计算机配套工作。

6.若用4K×l位的RAM芯片组成16K×8位的存储器,需要多少芯片?A19~A0地址线中哪些参与片内寻址?哪些作为芯片组的片选信号?

答:16K×8/4K×l=4×8=22×8=32片

需要32片

4K=22 ×210=212 12根地址线A11~A0

22 2根地址线A13A12

7.下列RAM各需要多少条地址线进行寻址?各需要多少条数据I/O线?

(1)512K×4 (2)1K×8

(3)16K×4 (4)64K×l

答:(1)512K×4 512K=29×210=219 19根地址线 4 4根数据线

(2)1K×8 1K=20×210=210 10根地址线8 8根数据线

(3)16K×4 16K=24×210=214 14根地址线 4 4根数据线

(4)64K×l 64K=26×210=216 16根地址线 1 1根数据线

8.已知某微机控制系统中的RAM容量为4K×8位,首地址为4800H,求其最后一个单元的地址。

答:最后一个单元的地址-首地址+1=4KB=212=1000H

∴最后一个单元的地址=4800H+1000H-1=57FFH

9.设有一个具有14位地址和8位数据的存储器,问

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

(2)如果存储器由8K×4位RAM芯片组成,需要多少片?

(3)需要多少位地址用于芯片选择?

答:(1)存储器的容量=214×8=16K×8=16KB ∴214个字节(16384个)

(2) 16K×8/8K×4=2×2=21×2=4片

(3) 21 1根地址线A13

10.若用2114芯片组成2KBRAM,地址范围为3000H~37FFH,问地址线应如何

连接?(假设CPU只有16条地址线、8条数据线,可用线选法和全译码法。)

答:2114芯片1K×4

2KB =2K×8/1K×4=2×8=21×8=16片

需要16片

1K=20 ×210=210 10根地址线A9~A0

线选法:

21 1根地址线A10

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 3000H

0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 33FFH

0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 3400H

0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 37FFH

全译码法:

16-10=6 A15~A10

G2B C B A

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 3000H

0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 33FFH

0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 3400H

0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 37FFH

11.选用6116存储芯片和74LS138译码芯片,构成其起始地址为C000H的一个2KB的RAM存储子系统(假设CPU只有16条地址线、8条数据线,用全译码法。) 答:6116 2K×8

2KB =2K×8/2K×8=1×1=20×1=1片需要1片

2K=21 ×210=211 11根地址线A10~A0

全译码法:

16-11=5 A15~A11

G2A G2B C B A

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C000H

1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 C7FFH

相关文档