太原理工大学微机原理教材第五章习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题五
一、1. BAACA DAD
二、程序练习题
1.根据题目,写出相关伪指令:
(1) 定义数据段DATA,并在数据段中定义两个字单元X、Y,初始值都是0
答案:
DATA SEGMENT
X DW 0
Y DW 0
DATA ENDS
(2) 定义一个字符串SRING,保存’Computer’答案:
SRING DB ’Computer’
(3) 定义有100个字节单元的COUNT数组,初始值均为空
答案:
COUNT DB 100 DUP(?)
(4) 用赋值伪指令定义PI为3.14
答案:
PI EQU 3.14
(5) 用类型操作符LABEL将VALUE单元定义为字节型
答案:VALUE LABEL BYTE
2.下列伪指令有错吗?如果有错,请指出错误原因。
答案:
(1) X1 DB 35H,0,-80 对。
(2)X2 DB 35,260,-1 错。
260超出了字节范围。
(3)X3 DB 1234H错。
X3是字节型,1234H是字型,不匹配。
(4) X4 DW 100 对。
(5) X5 DW 100(?) 错。缺少DUP。
(6) X6 DD ‘AB’对。
3.分析下列程序段执行情况,给出结果:
(1)答案:
Z= (5+22-15)*14= 168
(2)答案:
累加和TOTAL=83
(3)答案:
功能:将X单元中的十六进制3AH变为十进制入栈保存,AH中为余数。先将0008H入栈,再将0 005H入栈,结果为58。
三、简答题
1 1-4(略)
5.DOS功能AH=1和AH=8都是从键盘输入一个字符,它们有什么不同?
答:INT 21H 功能08的输入操作与功能01H相
似,不同的是输入字符不回显。使用功能08功
能不回显字符,但与01H一样,支持Ctrl_C或
Ctrl_Break的中断处理。
四、编程题:
1.求两个数的平均值。这两个数分别存放在X单元
和Y单元中,而平均值放在Z单元中。(略)
2.将字节变量VARY中两位十六进制数输出。
用分支结构实现:
MOV DL, VARY
MOV CL, 4
ROL DL, CL
AND DL, 0FH
CMP DL, 0AH
JB NUM
ADD DL, 7
NUM: ADD DL, 30H
MOV AH, 2
INT 21H
MOV DL, VARY
AND DL, 0FH
CMP DL, 0AH
JB NUB
ADD DL, 7
NUB: ADD DL, 30H
MOV AH, 2
INT 21H
MOV DL, ‘H’
MOV AH, 2
INT 21H
用循环结构实现:
MOV BL,2
MOV DH, VARY
LOP: MOV CL, 4
ROR DH, CL
MOV DL, DH
AND DL, 0FH
CMP DL, 0AH
JB NUM
ADD DL, 7
NUM: ADD DL, 30H
MOV AH, 2
INT 21H
DEC BL
JNZ LOP
MOV DL, ‘H’
MOV AH, 2
INT 21H
3.利用逐次求大数的方法对内存单元ARRAY开始的一字节为单位的无符号数进行从大到小排序。DATA SEGMENT
ARRAY DB 49,38,65,12,97,13,55,27,28,85 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV DX, 9
LEA BX, ARRAY
LOOP0: MOV AL, [BX]
MOV SI, BX
INC SI
MOV CX, DX
LOOP1: CMP AL, [SI]
JAE NEXT
XCHG AL, [SI]
NEXT: INC SI
LOOP LOOP1
MOV [BX], AL
INC BX
DEC DX
JNZ LOOP0
4.AX寄存器中存放着4位十六进制数,试编写程序将这4位十六进制数分别转换为相应的ASCII 码,并依次存放到RESULT数组的4个字节中去,要求用子程序的方法实现。
DATA SEGMENT
HEXDATA DW 4D7EH
RESULT DB 4 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX, 4
LEA SI, HEXDATA
LEA DI, RESULT
MOV BX, [SI]
NEXT: MOV AX, BX
AND AL, 0FH
CALL HEXASC
MOV [DI], AL
INC DI
PUSH CX
MOV CX, 4
SHR BX, CL
POP CX
LOOP NEXT
LEA SI, RESULT+3
MOV CX, 4
STD
MOV AH, 4CH