微机原理与接口技术周何琴课后习题答案 - 图文 下载本文

RCR BX,1 JNC LP2 INC AL LP2:LOOP LP1 MOV COUNT,AL POP DS MOV AH,4CH INT 21H HLT CODE ENDS

END START

1. 下列变量各占多少字节?

A1 DW 23H,5876H 4字节 A2 DB 3 DUP(?),0AH,0DH,‘$’ 6字节

A3 DD 5 DUP(1234H,567890H) 4×2×5=40字节 A4 DB 4 DUP(3 DUP(1,2,‘ABC’)) 5×3×4=60字节 调试程序:

STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS DATA SEGMENT

DA1 DW 23H,5876H

DA2 DB 3 DUP(?) ,0AH,0DH,'$' DA3 DD 5 DUP(1234H,567890H) DA4 DB 4 DUP(3 DUP(1,2,'ABC')) DA5 DB 10 DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START:PUSH DS

MOV AX,DATA

MOV DS,AX

MOV AX,OFFSET DA1 MOV BX,OFFSET DA2 MOV CX,OFFSET DA3 MOV DX,OFFSET DA4 MOV DI,OFFSET DA5 POP DS HLT CODE ENDS END START

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

DA1 DB ?

DA2 DW 10 DUP(?) DA3 DB ‘ABCD’ MOV MOV MOV

AX,TYPE DA1 BX,SIZE DA2 CX,LENGTH DA3

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

MOV AX,TYPE DA1 ;(AX)= 1

MOV BX,SIZE DA2 ;(BX)= 20

MOV CX,LENGTH DA3 ;(CX)=1 调试程序

STACK SEGMENT STACK

DB 100 DUP(?)

STACK ENDS DATA SEGMENT DA1 DB ?

DA2 DW 10 DUP(?) DA3 DB 'ABCD' DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START:PUSH DS

MOV AX,DATA

MOV DS,AX

MOV AX,TYPE DA1 MOV BX,SIZE DA2 MOVCX,LENGTH DA3 POP DS HLT CODE ENDS END START

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

INAL,5FH TESTAL,80H JZL1

MOV

AH,0

JMP STOP L1:MOV STOP:HLT 解:

如果地址为5FH的外设输入到AL中的数据的最高位=1,则(AH)= 0,否则,(AH)= 0FFH。 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 LP2 LP1: ADD AL, 37H LP2: MOV BL, AL MOV AL, DL SHR AL, CL AND AL, 0FH CMP AL, 0AH JNC LP3 ADD AL, 30H

AH,0FFH

JMP LP4 LP3: ADD AL, 37H LP4: 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, 07H

LP2: 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 21H

MOV DL, BH

INT 21H POP AX

RET DISP ENDP 调试程序

STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS DATA SEGMENT

DA1 DB 5FH, 0A4H, 0C7H DA2 DB 100 DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DS

MOV AX,DATA MOV DS,AX MOV DL,DA1 CALL CON CALL DISP POP DS HLT CON:

PUSH AX PUSH CX MOV CL,4 MOV AL,DL AND AL,0FH CMP AL,0AH JNC LP1 ADD AL,30H JMP LP2 LP1: 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,37H LP4: MOV BH,AL POP CX POP AX RET DISP:

PUSH AX MOV DL,BL MOV AH,2 INT 21H MOV DL,BH INT 21H POP AX RET