微机强化训练大题 联系客服

发布时间 : 星期四 文章微机强化训练大题更新完毕开始阅读647d129402d276a200292e66

三、读程序题

1 下面的程序是将10个8位的无符号数按递减顺序排序,请将程序补充完整。 .MODEL SMALL .DATA

ARRAY

DB

05H,78H,0FFH,7BH,00H,8CH,20H,0A0H,0F

COUNT=$-BUF MAX MIN

DB ? DB ?

MOV INT 21H ENDS

AH,4CH INT 21H ENDS

START

CODE

CODE END

SUM DW ?

ENDS SEGMENT END START 3. 若X,Y,Z是连续存放在内存BLOCK开始的3个带符号字节数,试编写出计算:X*Y-Z的汇编语言源程序,结果存入RESULT单元中。 .MODEL SMALL DATA CODE 2. 编制一个查表程序将十六进制数2A49H转换成ASCII码,结果依次存入MEM数组的4个字节中,即程序执行后MEM中4个字节内ASSUME CS:CODE,DS:DATA

0H,60H .CODE .STARTUP MOV SI,OFFSET ARRAY MOV BX,9 AB1: MOV CX,BX DEC CX AGAIN:

MOV AL,[SI] INC

SI

CMP AL,[SI] JAE CD1 MOV AH,[SI] MOV [SI],AL DEC SI MOV [SI],AH INC SI

CD1:

LOOP AGAIN

DEC BX

JNZ… AB1

.EXIT END 四、编程题

1. 编程序将数据串(-10,0,23,12,-8,9)中最大数和最小数找出来,存入MAX和MIN中,并计算数据串中各数据项绝对值之和。 DATA SEGMENT

BUF DB -10,0,23,12,-8,9 START:

A1: CYCLE: NEXT1: NEXT2: A2:

MOV AX,DATA MOV DS,AX LEA

SI,BUF MOV CX,COUNT-1 MOV BL,[SI] MOV MAX,BL MOV MIN,BL

CMP BL,0 JGE A1 NEG BL MOV AL,BL MOV AH,0 INC SI MOV BL,[SI] CMP BL,MAX

JLE NEXT1 MOV MAX,BL CMP BL,MIN JGE NEXT2 MOV MIN,BL CMP BL,0

JGE A2

NEG BL MOV BH,0 ADD AX,BX

LOOP CYCLE MOV

SUM,AX

容成为:39H、34H、41H、32H。 2. DATA SEGMENT

NUM DW 2A49H MEM DB 4 DUP(?)

ARRAY

DB

30H,31H,32H,33H,34H,35H,36H,37H,38

H,39H

DB

41H,42H,43H,44H,45H,46H

DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA MOV DS,AX LEA BX,ARRAY

LEA

SI,MEM MOV DX,2A49H CYCLE: MOV AX,DX

AND AX,000FH

XLAT MOV [SI],AL INC SI MOV CL,4 SHR DX,CL

JNZ CYCLE

MOV

AH,4CH

.DATA

BLOCK

DB

15H,20H,30H

RESULT

DW

?

.CODE .STARTUP MOV BX,OFFSET BLOCK MOV AX,0 MOV AL,[BX]

IMUL BYTE PTR [BX+01H] MOV CX,AX MOV AL,[BX+02H]

CBW SUB CX,AX MOV

RESULT,CX .EXIT

END

4. 键盘每输入一个字符,若小于’A’,屏幕上显示字符’N’,否则显示字符’C’,直至输入回车结束。试编写程序。 CODE

SEGMENT ASSUME CS:CODE START:

AGAIN: MOV

AH,1 INT 21H CMP AL,0DH

JE

DOWN

CMP AL,41H JB

NEXT1 DL,'C' DL,'N' A19 1 G1 G2A74LSY0 输入,此时可从数据输入端口中测出纸币品种,1角纸币代码为01,2角纸币代码为02,5角纸币代码为03.状态端口D3=1后,把兑换的5分硬币数(十六进制)从数据输出端口输出,RAM 设数据输入端口地址为FCH,数据输出端口 CS MOV INC DEC CX MOV IN [DI],AL DI DX,0024H AL,DX MOV

JMP NEXT2

NEXT1: MOV MEMR & MEMW A Y1NEXT2: CALL DISPLAY JMP AGAIN

DISPLAY PROC

MOV AH,2 INT 21H

RET

DISPLAY ENDP DOWN: MOV AH,4CH

INT 21H CODE ENDS END START

三、问答题

1. 设有一个具有14位地址和8位字长的存储器,问该存储器容量有多大?如果存储器由1K*1静态存储器组成,需多少芯片?多少位地址作芯片选择?

2. 一台8位微机的地址总线为16条,其RAM存储器容量为32KB,首地址为4000H,且地址是连续的,问可用的最高地址是多少? 3. 分析下图所示的电路,片选方法为全部译码法,回答以下问题: (1)74LS138的作用是什么? (2)74LS138在什么条件下才工作? (3)RAM的地址范围是多少

A18A17 & G2B 16 A15 C AY7 14 B A13 A 1. 该存储器的容量为16KB,需128个芯片,4位地址作芯片选择。 2. 可用的最高地址是BFFFFH。 3. (1)74LS138的作用是作为地址译码器,产生片选控制信号。 (2)当A19 A18 A17 A17为0111,并且对内存储器的读或写信号有效时,74LS138才工作。 (3)RAM的地址范围:72000H~73FFFH

三、接口设计题 1. 现有两个输入设备,使用程序查询方式与CPU通信。当状态位D0=1时,为第1号设备输入字符;当状态位D1=1时,为第2号设备输入字符;当状态位D3=1时,两个设备中任意一个结束输入过程。设状态端口地址为0024H,1号设备数据端口地址为0026H,2号设备数据端口地址为0028H,输入字符缓冲区首地址分别为BUFF1和BUFF2,试编一程序完成从输入设备输入100个字符。 2. 现有一台硬币兑换器,平时等待纸币输入,只有从状态端口FAH查到D2=1时,才有纸币地址为FEH。编程完成以上要求。 解: .MODEL SMALL .DATA BUFF1

DB 100 DUP(?)

BUFF2 DB 100 DUP(?)

.CODE .STARTUP LEA SI,BUFF1 LEA DI,BUFF2 MOV CX,100 TEST0:MOV DX,0024H

IN AL,DX TEST AL,01H JZ TEST1 IN1:

MOV DX,0026H IN

AL,DX MOV [SI],AL INC SI DEC CX MOV DX,0024H IN AL,DX TEST

AL,08H JZ

IN1

JMP NEXT TEST1:TEST AL,02H JZ NEXT IN2:

MOV

DX,0028H

IN

AL,DX

TEST

AL,08H JZ

IN2 NEXT: CMP CX,0

JNZ

TEST0

.EXIT END 2.

TEST1:IN AL,0FAH TEST

AL,04H JZ TEST1 IN AL,0FCH CMP AL,01 JZ P1 CMP AL,02 JZ P2 CMP AL,03 JZ

P3

JMP DOWN

P1: MOV BL,02H JMP TEST2 P2: MOV BL,04H

JMP TEST2

P3: MOV BL,0AH TEST2:IN AL,0FAH TEST AL,08H JZ

TEST2 MOV

AL,BL

OUT 0FEH,AL

JMP TEST1

DOWN:

.EXIT MOV MOV MOV DX,00C6H AL,00001101B AL,00001000B 中。

(4)写出中断服务程序。 解:

1.8255A的口地址为:10010000B、10010100B、10011000B、10011100B,即90H、94H、98H、 OUT 91H,AL MOV

AL,00000011B

OUT 91H,AL PUSH DS OUT DX,AL OUT DX,AL 三、简单编程题

1. 某系统中8253芯片的端口地址为FFF0H~FFF6H,定义通道0工作在方式2,(3)向量地址=5BH*4=16CH

CLK0=2MHZ,要求输出OUT0为1KHZ的速率波;定义通道1工作在方式0,其CLK1输入外部计数事件,每计满1000个向CPU发出中断请求。试写出8253通道0和通道1的初始化程序。

2. 设8255A的4个端口地址为00C0H、00C2H、00C4H、00C6H,要求端口A工作在方式1输入,端口B工作在方式0输出,端口C的普通I/O线为输出,并且要求置PC6为1,PC4为0。 解:

1. ;通道0的初始化程序 MOV AL,00100101B MOV DX,0FFF6H OUT DX,AL

MOV AL,20H MOV

DX,0FFF0H

OUT DX,AL ;通道1的初始化程序

MOV AL,01110000B MOV DX,0FFF6H OUT DX,AL

MOV AX,999 MOV DX,0FFF2H OUT DX,AL MOV

AL,AH

OUT DX,AL

2.

MOV

AL,10110000B

OUT DX,AL 9CH。

8255A的工作方式控制字为10001000B 四、接口设计题 其接口程序为: 1. 接口连接图如下图所示,写出向打印机输 MOV AL,10001000B 出字符’A’的接口程序。(提示:当CPU得A0 OUT 9CH,AL MOV

AL,00000011B 和A1均为0时,BE0=0)。 OUT 9CH,AL CYCLE: IN

AL,98H 74LS

TEST AL,00100000B BEDB0~0G2BB

JNZ CYCLE M/G2A825IOAG打 MOV AL,’A’ Ycs OUT 94H,AL 1AC STB P MOV AL,00000010B

AB AA OUT 9CH,AL

AA AAPBU NOP NOP 2. 设8255A的A口工作在方式1,作为中端 NOP 方式下的字符打印机的接口,此时,若CPU MOV

AL,00000011B

发出控制信号通过8255A的C口向打印机发

OUT 9CH,AL

出数据锁存信号,则CPU送来打印的数据被2. (1)假设8255A的端口地址为80H~

锁存到打印机打印。打印机收到打印数据后向83H 8255A发出应答信号,此时8255A就发出中 MOV AL,10100000B 断请求,中端信号从8259A的IR3引入,中 OUT 83H,AL 端类型号为5BH。设中断服务程序必须装配在 MOV

AL,00001101B

2000H:2340H处,I/O端口地址任选。 OUT 83H,AL (1)试写出8255A的初始化程序。 (2)假设8259A的端口地址为90H、91H

(2)设8259A以固定优先权、完全嵌套、自 MOV AL,00010011B 动结束方式工作,试写出8259A的预置命令。 OUT 90H,AL

(3)将中端服务程序的地址填入中断向量表

MOV

AL,01011000B

MOV AX,0 MOV DS,AX MOV WORD PTR

[016CH],2340H

MOV WORD

[016EH],2000H

POP DS (4)

PUSH AX STI MOV AL,BL

OUT 80H,AL

CLI POP AX

IRET

PTR