您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页(完整版)微型计算机原理与接口技术课后答案资料

(完整版)微型计算机原理与接口技术课后答案资料

来源:欧得旅游网
15. 已知:在内存BUF开始的单元中,存在一串数据:58,75,36,42,。编程找出其中的最小值存入MIN单元中,并将这个数显示在屏幕上。解:

STACK SEGMENT STACK

DB 100 DUP(?)STACK ENDSDATA SEGMENT BUF DB 58H, 75H, 36H, 42H, H

MIN DB 0DATA ENDSCODE SEGMENT

ASSUME CS:CODE,

DS:DATA, SS:STACKSTART: PUSH DS MOV AX, DATA MOV DS, AX MOV CX, 4 MOV BX, OFFSET

BUF MOV AL, [BX] ST1: INC BX

CMP AL, [BX] JBE NEXT MOV AL, [BX] NEXT:LOOP ST1

MOV MIN, AL AND AL, 0F0H MOV CL,4 ROR AL, CL ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AL, MIN AND AL, 0FH ADD AL, 30H MOV DL, AL MOV AH, 02H

INT 21H

POP DS MOV AH, 4CH INT 21H HLTCODEENDS

END START

18. 某班有20个同学的微机原理成绩存放在LIST开始的单元中,要求编程先从高到低的次序排列好,再求出总分和平均值,分别存放在SUM和AVER开始的单元中。解:

STACK ENDSDATA SEGMENT LIST DB

65H,76H,78H,H,90H,85H,68H,

66H,77H,88H

DB 99H, H, 79H,

69H,75H,85H,63H,73H,83H,93H SUM DW 0 AVER DB 0

BUF DB 100 DUP (?) DATA ENDSCODE SEGMENT

ASSUME

CS:CODE,DS:DATA,SS:STACKSTART: PUSH DS MOV AX,DATA MOV DS,AX MOV

DI, OFFSET

LIST MOV BX, 19 LP0: MOV SI, DI MOV CX, BX LP1: MOV AL, [SI]

INC SI CMP AL, [SI] JNC LP2 MOV DL, [SI] MOV [SI-1], DL MOV [SI], AL LP2: LOOP LP1

DEC BX

JNZ LP0 LP3: MOV CX, 20

MOV

BX, OFFSET

LIST MOV SUM, 0 XOR AX, AX LP4: ADD AL, [BX]

DAA ADC AH, 0 INC BX LOOP LP4 MOV SUM, AX MOV BL, 20H DIV BL

ADD AL,0 DAA

MOV AVER AL POP DS

HLTCODE ENDS

END START

20. 编程将存放在AL中的无符号二进制数,转化成十六进制数,再转换成ASII码并显示在屏幕上。解:程序如下:

STACK SEGMENT STACK

DB 100 DUP(?)STACK ENDSDATA SEGMENT

DB 100 DUP(?)DATA ENDSCODE SEGMENT

ASSUME CS:CODE,

DS:DATA, SS:STACKSTART: PUSH DS MOV AX, DATA MOV DS, AX MOV DH, AL MOV CH, 02HST1: MOV CL, 4

ROR DH, CL

MOV AL, DH AND AL, 0FH ADD AL, 30H CMP AL, 39H JBE DISP ADD AL, 07H

DISP: MOV DL, AL

MOV AH, 02H INT 21H DEC CH JNZ ST1 POP DS MOV AH, 4CH INT 21H HLT

CODE ENDS

END START

21. 编写程序,使用三种以上的方法,将存储器中2000H开始的地址单元中的100字节数据复制到3000H开始的存储器地址单元中。

解:

(1)利用通用传送指令MOV

MOV SI,2000H

注意这里如果是标号地址 ,则

必须用OFFSET

MOV DI,3000H

MOV CX,100

LP1: MOV AL,[SI]

MOV [DI],ALINC SI

INC DI

LOOP LP1 HLT

MOV CX,100MOV BX,0

LP0:MOV AL,2000[BX]

MOV 3000[BX],AL

INC BX

LOOP LP0HLT

(2)利用交换指令XCHG

MOV SI,2000H

MOV DI,3000H

MOV CX,100LP2: MOV AL,[SI]

XCHG [DI],ALINC SI

INC DI

LOOP LP2 HLT

(3)利用换码指令XLAT

MOV BX,2000HMOV DI,3000HMOV CX,100

LP3: XOR AL,AL

XLAT

MOV [DI], AL

INC BX

INC DILOOP LP3HLT

(4)利用堆栈实现数据传送MOV SI,2000HMOV DI,3000HMOV CX,50LP4: PUSH [SI]

POP [DI]INC SIINC SIINC DIINC DI

LOOP LP4 HLT

(5)利用串操作指令REP MOVSB

MOV SI,2000HMOV DI,3000HMOV CX,100CLD ;DF=0,SI、DI自动+1REP MOVSBHLT

5. 对于下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?

DA1 DB ? DA2 DW 10 DUP(?)

DA3 DB ‘ABCD’

MOV AX,TYPE DA1 MOV BX,SIZE

DA2 MOV CX,LENGTH DA3

解:各条MOV指令执行后,有关寄存器的内容如下:

MOV

AX,TYPE DA1 ;(AX)= 1

MOV

BX,SIZE DA2 ;(BX)= 20

MOV

CX,LENGTH DA3 ;(CX)=1

下段程序完成后,AH等于什么?

INAL,5FH

TEST AL,80H

JZL1

MOVAH,0 JMP STOP

L1:MOV

AH,0FFHSTOP:HLT

如果地址为5FH的外设输入到AL中的数据的最高位=1,则(AH)= 0,否则,(AH)=

0FFH。

设置8259的中断向量

MOV

AX,SEG

IRQ2 MOV DS,AX MOV DX, OFFSET IRQ2 MOV AL,42H MOV AH,25H

INT 21H

;8259初始化

MOV

AL,13H

;ICW1边沿触发,单片

8259,有ICW4 OUT 20H,AL MOV

AL,40H

;ICW2 中断类型号基值为

40H OUT 21H,AL MOV

AL,01H

;ICW4 8088系统,普通EOI,;完全嵌套式

OUT 21H,AL

MOV AL,0FDH OUT 21H ,AL

;OCW1,设置IMR,中断屏

微处理器CPU:控制微处理器与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。微处理器主要完成:

(1)指令控制:从存储器中取指令,指令译码;

(2)数据加工:简单的算术逻辑运算;

(3)操作控制:在微处理器和存储器或者I/O之间传送数据;

(4)时间控制:程序流向控制。

存储器:用来存放数据和指令。I/O接口:主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。

I/O设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。输出运算结果。

总线:连接计算机系统中各功能部件的信息通道。

13. 设CS=1200H, IP=0100H, SS=5000H, SP=0400H, DS=2000H, SI=3000H, BX=0300H, (20300H)=4800H,

(20302H)=00FFH,

TABLE=0500H, PROG_N标号的地址为1200:0278 H,PROG_F标号的地址为3400:0ABCH。说明下列每条指令执行完后,程序分别转移到何处执行?JMP指令(1)JMP PROG_N

段内直接近转移,目的地址为1200H:0278H(或12278H)

(2)JMP BX

段内寄存器间接转移,目的地址为1200H:0300H(或12300H) (3)JMP [BX]

物理地址

=DS×10H+BX=2000H×10H+0300H=20300H (20300H)=4800H→IP

段内存储器间接转移,目

的地址为1200H:4800H(或16800H)

(4)JMP FAR PROG_F

段间直接转移,目的地址为3400H:0ABCH(或34ABCH)(5)JMP DWORD PTR[BX]

物理地址

=DS×10H+BX=2000H×10H+0300H=20300H (20300H)=4800H→IP, (20302H)=00FFH→CS

段间存储器间接转移,目的地址为00FFH:4800H(或057F0H)

JMP改为CALL后,目的地址与JMP相同。 (1)CALL PROG_N

段内直接调用,3字节指

令,目的地址为

1200H:0278H(或12278H),0103H入栈,SP=03FEH (2)CALL BX

段内寄存器间接调用,2字节指令,目的地址为1200H:0300H(或12300H) ,0102H入栈,SP=03FEH (3)CALL [BX]

段内存储器间接调用,2字节指令,目的地址为1200H:4800H(或16800H),0102H入栈,SP=03FEH (4)CALL FAR PROG_F

段间直接调用,5字节指

令,目的地址为

3400H:0ABCH(或34ABCH),1200H和0105H分别入栈,SP=03FCH

(5)CALL DWORD PTR[BX]

段间间接调用,2字节指令,目的地址为

00FFH:4800H(或057F0H),1200H和0102H分别入栈,SP=03FCH

12. 编程实现,从键盘输入一个十进制数0~9,查表求键入数字的七段代码(共阳极LED显示器的段码),存入DL中,并在键入数字之前,显示提示信息“Please input a number(0~9):”。STACK SEGMENT STACK

DB 100 DUP(?)STACK ENDSDATA SEGMENT

TABLE DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H

BUF DB 'Please input one number(0~9):',0DH,0AH,'$'

DATA ENDSCODE

SEGMENT ASSUME

CS:CODE,DS:DATA,SS:STACK,E

S:DATA

START: PUSH DS MOV AX,DATA MOV DS,AX MOV DX,OFFSET BUF

MOV AH,09H INT 21H MOV AH,1 INT 21H AND AL,0FH

MOV BX,OFFSET TABLE XLAT MOV DL,AL POP DS HLTCODE

ENDS

END START

数字5的共阳极LED七段码为92H。

22. 在DATA开始的4个单元中存放着一个32位数,求出其中的“1”的个数,并存入COUNT单元中。

解:

DATASEGMENT DATA1DB

0FEH,86H,7CH,35H

COUNTDB 00H

DATAENDS

STACK SEGMENTDB 100

DUP(?)

STACK ENDSCODESEGMENT

ASSUME

CS:CODE,DS:DATA,SS

:STACKSTART:PUSH DS

MOV

AX,DATAMOVDS,AX

MOV

AX,STACK

MOVSS,AXMOV

SI,OFFSET DATA1

MOVBX,[SI]MOV

DX,[SI+2]

MOVCX,32 XOR AL,AL LP1:RCR DX,1

RCR BX,1

JNC LP2

INC AL

LP2:LOOP LP1 MOV COUNT,AL

POP DS MOV AH,4CH INT 21H HLTCODE ENDS

END START

10. 编制两个通用过程,完成两位十六进制数转换成ASCII码,并将ASCII码字符显示。

(1)两位十六进制数转换成ASCII码

设两位十六进制数存放在DL中,输出的ASCII码存放在BX中。

CON PROC PUSH AX PUSH CX MOV CL, 4

MOV AL, DL

AND AL, 0FH CMP AL, 0AH JNC LP1 ADD AL, 30H JMP LP2LP1: ADD AL, 37H

LP2: MOV BL, AL MOV AL, DL SHR AL, CL

AND AL, 0FH CMP AL, 0AH

JNC LP3 ADD AL, 30H

JMP LP4

LP3: ADD AL, 37HLP4: MOV BH, AL

POP CX POP AX RET

CON ENDP四位十六进制数转换成ASCII码,

设四位十六进制数存放在存储器BUF1单元中,输出的ASCII码存放在存储器BUF2

开始的单元中。

CON PROC PUSH AX PUSH CX PUSH DX

MOV DI, OFFSET

BUF2

MOV SI, OFFSET

BUF1

MOV CL, 4 MOV DH, 4 MOV DX, [SI]LP1: ROL DX, CL

MOV AL, DL AND AL, 0F ADD AL, 30H CMP AL, 3AH JC LP2 ADD AL, 07HLP2: MOV [DI], AL

INC DI DEC CH JNZ LP1 POP DX POP CX POP AX

RET

CON ENDP

(2)ASCII码字符显示设2个ASCII码字符在BX中。

DISP PROC PUSH AX MOV DL, BL MOV AH, 2 INT 21HMOV DL, BH INT 21H POP AX

RET

DISP ENDP

13. 将键盘上输入的一位为十六进制数转换成十进制数,在屏幕上显示。

DATASEGMENT DATA1DB 10 DUP(?)

DATA2DB 10 DUP(?)

DATAENDS

STACK SEGMENT STACK

DB 100

DUP(?)STACK ENDSCODESEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACKSTART:PUSH DSMOV AX,DATA MOV DS,AXKEY: MOV AH,1 INT 21HZH: CMP AL,3AH

JAE ZH1

SUB AL,30H

JMP ZH2

ZH1: SUB AL,37H

ADD AL,0 DAAZH2: MOV BL,AL AND AL,0F0H

MOV CL,4

SHR AL,CL

ADD AL,30H

MOV BH,AL MOV AL,BL AND AL,0FH ADD AL,30H

MOV BL,AL

DISP: MOV DL,BH

MOV AH,2

INT 21H

MOV DL,BLMOV AH,2INT 21H

POP DS

MOVAH,4CH

INT21H

HLT

CODE ENDS

END START

22. 编程序统计学生的数学成绩,分别归类90~99分,80~分,70~79分,60~69分及60分

以下,并将各段的人数送入内

存单元中。解:

STACK SEGMENT

DB 100

DUP(?)

STACK ENDS

DATASEGMENT

DATA1DB 200

DUP(?)

DATA2DB 100

DUP(?)

DATA3DB 10

DUP(?)

DATAENDS

CODESEGMENT

ASSUME

CS:CODE,DS:DATA,SS

:STACKSTART:PUSH DS MOV AX,DATA

MOV DS,AX

XOR CX,CX

KEY:MOV SI,OFFSET DATA1KEY1:MOVAH,1 INT 21H

CMP AL,‘$’ JZ ZH INC CX MOV [SI],ALINC SIJMP KEY1ZH:MOV

SI,OFFSET DATA1 MOV DI,OFFSET DATA2 SHR CX,1 PUSH CXZH1:MOV AL,[SI]

AND AL,0FHSHL AL,1SHL AL,1SHL AL,1SHL AL,1MOV BL,AL

INC SI

MOV AL,[SI]

AND AL,0FH

OR AL,BL

MOV [DI],AL

INC SI

INC DILOOP ZH1

TJ: POP CX MOV

DI,OFFSET DATA2

TJ0: MOV AL,[DI]

CMP AL,90H JNB TJ1CMP AL,80H JNB TJ2CMP AL,70H JNB TJ3CMP AL,60H JNB TJ4 INC 4[DATA3] JMP TJ5TJ1: INC [DATA3] JMP TJ5TJ2: INC 1[DATA3] JMP TJ5

TJ3: INC 2[DATA3]

JMP TJ5

TJ4: INC 3[DATA3]TJ5: INC DI LOOP TJ0 POP DS

MOV

AH,4CH

INT21HHLT

CODE ENDS END START某班有七个同学的英语成绩低于80分,分数存在ARRAY数组中,试编程完成以下工作:(1)给每人加5分,结果存到NEW数组中

(2)把总分存到SUM单元中(3)把平均分存到AVERAGE单元中解:

STACK SEGMENT STACK

DB 100 DUP(?)STACK ENDSDATA SEGMENT

ARRAY DB 7 DUP(?)NEW DB 7 DUP(?)SUM DW 0AVG DB 0

DATA ENDSCODE SEGMENT

ASSUME

CS:CODE,DS:DATA,SS:STACKSTART: MOV CX, 7 MOV SI, 0 MOV SUM, 0 MOV AH, 0

LP1: MOV AL, ARRAY[SI] ADD AL, 05H DAA

MOV NEW[SI], AL ADD AL ,SUM DAA

MOV SUM,AL ADC AH, 0

DAA

MOV SUM+1, AHINC SILOOP LP1MOV AX, SUMMOV BL,07HDIV BL

MOV AVG, ALHLT

CODE ENDS

END START

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务