西南交大电气复试微机原理习题整理

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

第一章习题
例:27=[00100111B]BCD=[27H]BCD 12.34=[00010010.00110100B]BCD=[12.34H]BCD [10000101B]BCD=85 [30.2H]BCD=30.2
例:a=20,则[a]补=00010100B
例:已知X=-30,则[X]补= 11100010 B
例:已知X=-64H,则[X]补= 9C H
例:[a]补= 4DH,则a = +1001101B = +77;
例:[b]补= 8CH,则b = -(1110011B+1) = -116。

例:已知[X]补=80H,则X= -128 。

例:用8位补码运算求X=20-30,Y=20+30
解:设a=20,b=30,则X=a-b,Y=a+b。

[a]补= 00010100 ,[b]补=00011110
则[X]补= [a]补- [b]补=11110110
[Y]补= [a]补+[b]补=00110010
所以X=-0001010B =-10,Y=+0110010B=+50
例:用8位补码运算求30-20
解:X=30,Y=20,-Y=-20
[X]补=00011110,[-Y]补=11101100,
则[X-Y]补=[X]补+[-Y]补=00001010
所以X-Y=+0001010B = +10
例:已知[X]补=80H,[Y]补=50H,用补码运算规则求X-Y。

解:Y=+80,-Y=-80,[-Y]补=1011000B=B0H
[X-Y]补=[X]补+[-Y]补=80H+B0H
=30H=00110000B
所以X-Y=+48
实际上,X=-128,Y=+80,因此X-Y=-208。

例:X=+80,Y=+50,采用8位运算。

用双进位法判断X+Y有无溢出。

解:[X]补=01010000B,[Y]补=00110010B,
[X+Y]补=[X]补+ [Y]补=01010000+00110010
例:X=+80,Y=+50,采用8位运算。

用双进位法判断X-Y有无溢出。

解:[X]补=01010000B ,
[Y]补=00110010B,[-Y]补=11001110B ,
[X-Y]补=[X]补+ [-Y]补=01010000+11001110
01010000
+)11001110
00011110 最高两位同时有进位,所以无溢出。

1-1 总结和比较AB、DB、CB的特点及作用。

1-2 简述以下操作的实现过程:
①将3AH写入5CH单元;②从F0H单元读出数据。

1-3 完成下列转换:
9AH= 10011010 B= 154 D
1111011.01B= 7B.4 H= 123.25 D
[0010.0111B]DBCD= 2.7 D= 2.B3…H
49.2= 0409.02 HABCD=
0000010000001000.00000010 BABCD
1-5 已知X=+7AH ,则[X]补= 01111010 B 。

1-6 已知[a]补=8000H ,则a= -32768 D 。

1-7 已知[X]反=11111000B ,则[X]补= F9 H ,X= -7 D 。

1-8 用补码运算规则进行下列8位数据的运算,并判断是否有溢出: ① -128+127 ② -128-127
③ 70H-40H ④ 70H+40H ① -128+127
令 X=-128, Y = +127,则 [X]补=80H , [Y]补=7FH [X+Y]补=FFH ,所以 X+Y=-1。

最高两位同时无进位,所以无溢出。

100110010
第二章习题
2-1分别分析执行完以下运算后各状态标识位的状态。

(1)84H+ACH
CF= 1 ,ZF= 0 ,OF= 1 ,SF= 0 ,PF= 1 ,AF= 1 。

(2)8000H-2DFFH
CF= 0 ,ZF= 0 , OF= 1 , SF= 0 ,PF= 0 ,AF= 1 。

2-3 已知CS=1230H ,求代码段中物理地址为13AC0H 的单元的逻辑地址。

10000000 01111111 11111111 + ② -128-127 令 X=-128, Y = -127,则 [X]补=80H , [Y]补=81H 10000000 10000001 00000001
+ [X+Y]补=01H ,所以 X+Y=+1。

最高两位不同时有进位,所以有溢出。

01110000
11000000 00110000 + ③ 70H-40H 令 [X]补=70H , [Y]补=40H , [-Y]补=C0H [X+Y]补=D0H ,所以 X+Y=48。

最高两位同时有进位,所以无溢出。

④ 70H+40H [X]补=70H , [Y]补=40H 01110000 01000000 10110000 + [X+Y]补=B0H ,所以 X+Y=-80。

最高两位不同时有进位,所以有溢出。

例:10110011B+01111111B
最高位有进位,所以CF=1;
D3位有进位,所以AF=1;
最高两位同时有进位,所以OF=0;
结果的最高位为0,所以SF=0;
结果中有3个1,所以PF=0;
结果不等于0,所以ZF=0。

10110011 01111111 +)
所以逻辑地址为:1230H:17C0H
2-4 已知DS=21FAH,求数据段中偏移地址为0120H的单元的物理地址。

解:PA=21FAH*16+0120H=220C0H
2-5已知SS=31ABH,SP=0124H,则将AX和BX中的内容推入堆栈后,SP= 0120H 。

2-6已知SS=31ACH,SP=0120H,则从堆栈中弹出数据到SI后,栈顶单元的物理地址为31BE2H 。

2-7将数据2EH、AB1CH和逻辑地址1234H:0100H从数据段中偏移地址为0100H的单元开始依次存放。

已知DS=20CDH。

画出内存分配图,并标出各单元的逻辑地址和物理地址。

2EH 20CDH:0100H 20DD0H
1CH 20CDH:0101H 20DD1H
ABH 20CDH:0102H 20DD2H
00H 20CDH:0103H 20DD3H
01H 20CDH:0104H 20DD4H
34H 20CDH:0105H 20DD5H
12H 20CDH:0106H 20DD6H
例:某单元的段基值为2500H,偏移地址为0100H,则其物理地址为
2500H×16+0100H=25100H
例:某单元的逻辑地址为1234H:03FEH,则其物理地址为:
1234H×16+03FEH=1273EH
例:将字数据1E0DH、
逻辑地址135BH:002EH和字节数据2CH
依次放入从当前数据段中偏移地址为1000H
开始的单元,画出内存分配图。

例:已知SP=01ACH,AX=1234H,BX=23ABH,堆栈段中各单元内容如图1所示,则将AX和BX 中的内容依次推入堆栈后,堆栈段如图2所示,且
SP=01A8H
接着从堆栈中弹出数据依次放入CX和BX,则SP= 01ACH ,
BX= 1234H ,
CX= 23ABH 。

1006H
2CH
1005H
13H
1004H
5BH
1003H
00H
1002H
2EH
1001H
1EH
1000H
0DH
SP
01ACH
12H
34H
56H
78H
9AH
BCH
EFH
00H
图1
12H
34H
01ACH
56H
12H
34H
23H
SP
ABH
00H
图2
第三章练习
例:MOV AL,20H ;将立即数送到AL中
ADD AL,A2H ;将A2H和AL中的数据相加
注:所有目的操作数都不能采用立即寻址。

如:MOV 12H,AL
INC 2CH
例:MOV AL,[2000H]
;将数据段中偏移地址为2000H的单元中的内容取出送到AL 例:MOV [BP],AL;将AL中的内容放入堆栈段中BP指向的单元例:XCHG BX,AX
设执行前AX=1000H,BX=2000H,
则执行后AX=2000H,BX=1000H。

注:如下指令是错误:
XCHG BL,20H
XCHG [1000H],[2000H]
例:实现1000-240的运算,结果放入BX寄存器。

MOV BX,03E8H
SUB BX,00F0H;BX=02F8H,CF=0

MOV BX,03E8H
SUB BL,F0H;BL=F8H,BH=03H,CF=1 SBB BH,0;BL=F8H,BH=02H,CF=0
例:MOV AL,20H
INC AL ;AL=21H
例:MOV AL,20H
DEC AL ;AL=1FH
例:MOV AL,98H
ADD AL,25H;AL=BDH,CF=AF=0
DAA;AL=23H,CF=AF=1
98H
+25H
BDH
例:分析以下程序段实现的功能。

LEA SI,[1000H]
LEA DI,[2000H]
MOV CX,64H
LP: MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ LP
分析:
将数据段中从
1000H单元开始的
100个字节数据搬至
2000H开始的单元。

例:MOV AX,8000H MOV BX,2000H
CMP AX,BX
1000000000000000
0010000000000000
0110000000000000
-
)
;左侧程序段执行后,
ZF= 0 ,CF= 0 ,SF= 0 ,OF= 1 。

1)两数不相等,因此ZF=0;
2)无符号数,8000H=32768>2000H=8192,则CF=0;
3)有符号数,则8000H=-32768<2000H=+8192,则
SF OF=1。

此外,-32768-8192<-32768,有溢出,则OF=1。

从而SF=0。

+66H
23H
92H -28H 6AH -06H 64H
例:MOV
AL ,92H SUB
AL ,28H
DAS
;AL=6AH ,CF=0,AF=1 ;AL=64H ,CF=0,AF=1 3-2已知各寄存器的内容如下:CS=1200H ,DS=21CAH ,SS=2210H ,BX=0100H ,BP=0010H ,SI=1010H ,DI=0100H ,SP=0020H, 求以下指令中各存储器操作数的物理地址: ADD -10H[BP][SI],AX
;PA=16*SS+BP+SI-10H=23110H MOV AL ,[0100H] ;PA=16*DS+0100H=21DA0H XOR CS:[BX],01FFH ;PA=16*CS+BX=12100H SUB -10[SI],CL
;PA=16*DS+SI-10=22CA6H 注意进制 PUSH SI ;PA=16*SS+(SP-2)=2211EH
3-4分析各程序段执行后的结果(AX、BX、CF、AF)
1)MOV AX,0909H
ADD AX,0303H
DAA ;AX=0C12H,CF=0,AF=1;DAA只影响AL,不改变AH。

2)MOV AX,0909H
SUB AX,0303H
AAS ;AX=0606H,CF=AF=0;AAS影响AX,但SUB指令执行后CF=AF=0,所以
AAS不执行任何调整。

3)MOV AX,0303H
MOV BX,0909H
SUB BX,AX
DAS ;AX=0303H,BX=0606H,CF=AF=0
;DAS只影响AL,不改变BX;
;由于SUB执行后CF=AF=0,所以AX没有调整4)MOV AX,0303H
MOV BX,0909H
ADD BX,AX
AAA ;AX=0303H,BX=0C0CH,CF=AF=0
;AAA只影响AX,所以BX中内容没有调整;
;由于ADD执行后CF=AF=0,所以AX保持不变。

第四章练习
4-9 已知数据段定义如下。

DATA SEGMENT AT 1AB0H ORG 0100H
VAR1 DW -1, ‘A ’ CONT EQU $-VAR1 VAR2 DW VAR1 VAR3 DD VAR2
VAR4 DB 2 DUP(?,’AB ’) 画出内存分配情况。

4-10 下列程序段实现若干数据累加,找出错误,说明原因或改正。

BUF DB 100,200,300,400 RESULT: DB 2 DUP(?) ┆
MOV DI,BUF XOR AX,AX
MOV CX,LENGTH BUF LP ADD AX,[DI] INC DI DEC CX JNC LP
MOV RESULT,AX ┆ 4-11 编制完整的程序求满足 的N 的最小值。

DATA SEGMENT N DB ? DATA ENDS
STACK SEGMENT PARA STACK'STACK' DW 20 DUP(?) STACK ENDS
CODE SEGMENT ;代码段框架 ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR PUSH DS MOV AX,0 PUSH AX
MOV AX,DATA MOV DS,AX
MOV DL,1 ;累加和放在DL 中,设初值为20
=1
MOV CH,0 ;i -> CH LP: INC CH
MOV CL,CH ;i+1 -> CL
MOV AH,1
100)12(0≤+∑
=N
i i
SHL AH,CL ;2i ->AH
ADD DL,AH ;累加
CMP DL,200 ;累加结果是否超过200?
JE DONE ;刚好等于200,则跳转
JA ADJUST ;超过200,需要修正AL
JMP LP ;否则,继续累加
ADJUST: DEC CH ;i-1
DONE: MOV N,CH ;存结果
RET
MAIN ENDP
CODE ENDS
END MAIN
4-12 求两个多倍精度数据的和
DATA SEGMENT
DATA1 DB 1,2,3,4,5 ;第一个数据,共5字节(40位),假设从低位到高位存放DATA2 DB 12H,23H,34H,45H,56H ;第二个数据,
CUNT EQU $-DATA2 ;数据字节数
RESULT DB CUNT+1 DUP(?) ;定义结果单元,考虑到可能的进位,位数比原数据多一
;个字节
DATA ENDS
STACK SEGMENT PARA STACK'STACK'
DW 20 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
MAIN PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,DATA1
MOV CX,CUNT
LEA BX,DATA2
LEA DI,RESULT
CLD
CLC
LP: LODSB
ADC AL,[BX]
STOSB
INC BX
LOOP LP
MOV BYTE PTR[DI],0
JNC DONE
INC BYTE PTR[DI]
DONE: RET
MAIN ENDP
CODE ENDS
END MAIN
4-13 求一串有符号字节数据的绝对值累加和。

DATA SEGMENT
BUF DB 1,-2,3,-4
CUNT EQU $-BUF
RESULT DW ?
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DW 20 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV CX,CUNT
LEA SI,BUF ;设数据地址指针
XOR DX,DX ;累加和寄存器设初值为0 CLD
LP: LODSB ;取一个数
TEST AL,80H ;测试正负
JZ PP ;正数则跳转
NEG AL ;负数则取负
PP: ADD DL,AL ;绝对值累加
ADC DH,0 ;并得到16位和
LOOP LP ;未完循环
MOV SUM,DX ;保存结果
RET
MAIN ENDP
CODE ENDS
END MAIN
4-14从头到尾统计一串有符号字数据中相邻两数间符号变化的次数。

DATA SEGMENT
BUF DW -1,2,3,-4,5,-6,-7
CUNT EQU ($-BUF)/2
NUM DB 0
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DW 20 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA SI,BUF
MOV CX,CUNT-1
CLD
LODSB
XOR AL,[SI+1]
JNS NEXT
INC NUM
NEXT: LOOP LP
RET
MAIN ENDP
CODE ENDS
END MAIN
4-15编程实现将一个字符串插入到另一个字符串的指定位置。

DATA SEGMENT
STR1 DB ‘ABCDEFG’
CUNT1 EQU $-STR1
STR2 DB ‘1234567’
CUNT2 EQU $-STR2
POS EQU 5
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DW 20 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
MAIN PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,STR2+POS
MOV DI,SI
ADD DI,CUNT1
CLD
MOV CX,CUNT2-POS
REP MOVSB ;将STR2中第POS个字符以后的字符后移CUNT1个单元LEA SI,STR1
LEA DI,STR2+POS
MOV CX,CUNT1
REP MOVSB ;将STR1插入到STR2中第POS个字符后面RET
MAIN ENDP
CODE ENDS
END MAIN
;程序运行结果:STR2字符串变为 12345ABCDEFG67
第五章习题
1)74LS373:地址锁存器
74LS245:数据缓冲器、总线收发器
2)要求无地址重叠,则应采用全译码方式。

ROM从20000H开始,RAM从F0000H开始。

图中,一片ROM需要一个片选信号;
两片SRAM,需两个片选信号。

由下表确定三个片选信号及译码电路。

第六章练习
例:从键盘上接收一串字符,将其中的所有大写字母转换为小写字母,然后在屏幕上显示该字符串。

DA TA SEGMENT
DA TA1 DB 14,?,14 DUP(?);定义第一个数据的缓冲区
DA TA2 DB 14,?,14 DUP(?);定义第二个数据的缓冲区
RESULT DB 14 DUP(?);定义和存放的单元
DA TA ENDS
STACK SEGMENT PARA STACK 'STACK'
code segment
assume cs:code,DS:DA TA,ES:DA TA,SS:STACK
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV DX,OFFSET DA TA1
MOV AH,10
INT 21H;输入第一个数据
MOV DX,OFFSET DA TA2
INT 21H;输入第二个数据
LEA SI,DATA1+1
LEA BX,DA TA2+1
LEA DI,RESULT
MOV CL,[SI];取实际输入数据的位数
MOV CH,0
ADD SI,CX
ADD DI,CX
ADD BX,CX;设置指针指向两个数据和和的最后一个单元
STD
CLC
LP: LODSB;加一位(从低位到高位相加)
ADC AL,[BX]
AAA;BCD码调整
STOSB;存结果
DEC BX;修改地址指针
LOOP LP;未完循环
JNC CC;处理最高位可能的进位
MOV BYTE PTR [DI],1
第七章练习题
7-4 从80H端口读入一字节数据,将其放大一倍后再输出到280H号端口。

编制程序段实现上述功能。

IN AL,80H
SHL AL,1
MOV DX,0280H
OUT DX,AL
7-5 上题中假设采用无条件方式从外部锁存器中输入数据,采用查询方式将数据输出到外设。

设计一种接口电路,并重新编制实现上述功能的控制程序。

接口电路如图所示。

这里假设输出设备的状态端口与数据端口地址相同。

1位外设状态由DB的D0读入,且该位为0表示输出设备准备好接收数据。

控制程序如下:
7-6 假设82C55的端口地址为0A2H,将82C55的PA口设为方式0的输出方式,B组设为方式1输入方式,PC7-4设为输入方式。

确定方式控制字并编制相应的初始化程序。

7-7 如图所示,依次轮流从PC口的各位输出高电平脉冲。

编制程序实现上述功能。

假设82C55的端口地址为0B8H。

解:设PC口各位都为方式0的输出方式,则控制字为:
7-9 某外设与8086的并行接口电路如图所示。

L1和L0分别用于指示外设每次输入有符号字节数据的正负。

编制程序实现
上述功能。

7-10 如图所示外设,每当其准备好一个数据,则RDY变为高电平,同时8位有符号数据从D7-0输出。

8086分别采用以下两种方式从该外设读入数据。

(1)采用查询方式从PA口读入数据;(2)采用中断方式从PA口读入数据。

分别画出相应的原理接口电路,并编制程序实现习题7-9的功能。

7-13 用8253产生方波FSK信号,FSK信号的上下边频分别为1kHz和2kHz。

上下边频每隔1ms切换一次。

设8253的定时脉冲频率为2MHz,端口地址为8CH。

画出电路图并编制相应的控制程序。

分析:
1)地址译码电路根据给定地址设计。

2)两个上下边频用通道1方式3产生。

由于外接定时脉冲频率为2MHz,因此为产生1kHz和2kHz的信号,计数初值应分别设为2000和1000。

3)用8253通道0方式2定时1ms,计数初值设为2000。

4)OUT0作为CPU的中断请求信号。

CPU每响应一次中断,改变通道1的计数初值。

5)方式控制字:
通道0:00110100B;通道1:01110110B。

7-14 8086最小系统外接82C55和8253,如图所示。

(1)分别写出各芯片的端口地址;(2)用8253对外接脉冲个数进行统计。

每计满500个脉冲,由82C55控制发光二极管的状态(亮/灭)切换一次。

试写出82C55和8253的初始化程序以及系统的控制程序。

一、填 空(每题2分,共20分) 1.-80用16位补码表示为 H 。

2.75的压缩BCD 码表示为 B 。

3.已知10#中断源的中断向量为1CA0H :0030H ,则其中断服务程序从物理地址为 的单元开始存放。

4.8086从12340H 字单元读入一个字数据时,A 0= ,BHE= 。

5.已知BP=0010H ,则指令ADD -10H[BP],AL 中,目的操作数的偏移地址为 H 。

6.已知AX=1234H ,则顺序执行完ADD AL ,58H 和AAA 两条指令以后,AX= 。

7.指令MOV BX ,-2 LE 0F0H 执行后,BX= H 。

8.某存储器芯片的容量为64K 8,则该芯片上的地址线共有 位。

9.地址/数据分时复用的CPU ,形成地址总线时必须加 。

10.采用查询式数据传送的接口电路中,除了数据端口外,还必须要有 端口。

二、简答题(每题5分,共10分)
1.总结和比较变量和标号在概念及用法上的区别。

2.简述采用10#DOS 功能调用时,键盘输入缓冲区中各单元的作用。

三、分析题(共40分)
1.某宏汇编语言源程序数据段和代码段中分别有如下语句:
1)画出程序执行前数据段的内存分配图,图中要标出单元的偏移地址。

(8分) 2)分析程序中带下划线的指令的寻址方式。

(10分)
3)分析程序执行后SI ,AL 寄存器和NUM 和NUM+1字节单元中的内容。

(8分) 2.为8086 CPU 设计的主存系统如下图所示。

;数据段
ORG 0100H ARR DB ‘ETC_swjtu$’ CUNT EQU $-ARR RESULT DB 2 DUP(?)
;代码段
LEA SI ,ARR MOV CX ,CUNT CLD L0: LODSB CMP AL ,39H JA L1 INC RESULT LOOP L0 L1: INC RESULT+1
LOOP L0
1)指出图中各存储器芯片的容量;(2分)
2)求总的存储器容量(ROM 和RAM 分别说明);(4分)
3)分析各芯片地址范围。

若有地址重叠,将重叠部分的地址也写出来。

(8分)
四、编程和设计(30分)
某8088应用系统部分线路如下图所示,其中用82C55连接了一个输入设备。

当输入设备准备好数据时,STB 信号变为低电平。

已知82C55的端口地址为03E8H 。

8088采用查询方式从输入设备读入数据。

1. 用3/8译码器实现82C55的地址译码电路。

(10分) 2. 将线路补充完整(可以直接在原图上画)。

(5分)
3. 设82C55的PA 端口工作方式1,确定82C55的工作方式控制字,并编制初始化程
序段。

(5分)
4. 8088从输入设备依次读入100个数据,并顺序放入内存从地址为1C30H :1000H 开
始的单元。

编制程序段实现上述功能。

(10分)
M/IO RD WR &
≥1
BHE
D 15-8 D 7-0 A 0 A 15 A 17 A 16 A 19 1#
2732 A 11-0 D 7-0 OE CE
1#
6232 A 11-0 D 7-0 OE WE CE
2#
6232 A 11-0 D 7-0 OE WE CE
2#
2732 A 11-0 D 7-0 OE CE
A 12-1
A 14 ≥1
≥1
≥1
A 13 IO/M
RD WR
译码电路
A 19-0 D 7-0
82C55
CS D 7-0 A 1 A 0 WR
RD PA 7-0
PC 4 D 7-0 STB
输入设备
标准答案及评分标准
一、填 空(每题2分,共20分)
1.FFB0 2.01110101 3.1CA30 4.0 0 5.0000 6.1302 7.0FFFF 8.16 9.地址锁存器 10.状态 二、简答题(每题5分,共10分)
1.变量是用数据定义伪指令定义的名字,标号是可执行语句的名字。

标量代表数据所在单元,标号
代表指令存放的单元。

(3分)
变量可作为指令性语句或伪指令语句的操作数,标号只能作为转移指令的操作数。

(2分) 2.第一个单元用于存放程序中规定的允许接收的最多字符个数;
第二个单元存放执行后实际接收的字符个数;
第三个单元开始存放实际接收到的字符。

每项1分,图2分。

三、分析题(共40分)
1.1)图见右。

(每个单元0.5分,地址2分。


2)直接寻址;寄存器寻址
立即寻址;寄存器寻址
隐含寻址 (每项2分)
3)SI=010AH ,AL=’$’,(NUM)=1,(NUM+1)=9
(每项2分) 2.1)4KB; 4KB; 4KB; 4KB (每项0.5分)
2)ROM :4K ⨯16;RAM :4K ⨯16(每项2分)
3)1#2732:B2000H~B3FFFH 或F2000H~F3FFFH 中的奇地址; 2#2732:B2000H~B3FFFH 或F2000H~F3FFFH 中的偶地址; 1#6232:B0000H~B1FFFH 或F0000H~F1FFFH 中的奇地址; 2#2732:B0000H~B1FFFH 或F0000H~F1FFFH 中的偶地址。

(每项2分)
四、编程和设计(30分)
1.地址译码电路见下图。

(共10分,根据正确连线情况酌情给分) 2. 三条线分别1分,标注A1和A0各1分。

共5分。

3. MOV DX ,03E8H
MOV AL ,10110000B OUT DX ,AL
4.
MOV AX ,1C30H MOV ES ,AX
LEA
DI ,[0100H]
BUF 11
??
??
??
0100H ‘E ’ ‘T ’ ‘C ’ ‘_’ ‘s ’ ‘w ’ ‘j ’ ‘t ’ ‘u ’ ‘$’ ?? ??
74138 C
B
A G 1 G 2A G 2B
Y 2 A 4
A 3 A 2
A 15 IO/M ≥1 A 10 A 9 &
A 5
CS
IO/M
RD WR
译码电路
A 19-0
D 7-0
82C55
CS D 7-0 A 1 A 0 WR
RD PA 7-0
PC 4 D 7-0 STB
输入设备 A 1 A 0
CLD
MOV CX,100 NEXT: MOV DX,03EAH
IN AL,DX
TEST AL,0010000B
JZ NEXT
MOV DX,03E8H
IN AL,DX
STOSB
LOOP NEXT
31。

相关文档
最新文档