部分习题参考答案★★★
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《微型计算机技术及接口》试验指导手册部分习题解答
2.26 8086/8088的中断向量表中可以看到,如果一个用户想定义某个中断,应该
选择在什么范围?
答:应该选择在中断类型码为32(20H)~255(FFH)范围。
3.7 下面那些正确,那些错误?
XCHG CS, AX
MOV [BX], [1000]
XCHG BX, IP
PUSH CS
POP CS
IN BX, DX
MOV BYTE [BX], 1000
MOV CS, [1000]
3.16 方法一: 串操作指令
注意操作方向3.16 方法二:常规比较法
注意指针DI-1才是要操作的数
AA: MOV SI, 2170H
MOV DI, 100H
MOV CX, 100H
MOV DX, CX
CLD
REP MOVSB
STD
MOV CX, DX
REPNZ SCASB
JNZ AA
MOV [DI], ‘ ’
…..
L0:
L2:
L3:
AA:
MOV SI, 2170H
MOV DI, 100H
MOV CX, 100H
MOV DX, CX
MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
LOOP L0
MOV CX, DX
CMP AL, [DI-1]
JZ L3
DEC DI
LOOP L2
JMP AA
MOV [DI-1], ‘ ’
…….
3.19 找最大值并放在AL中 3.25
题找第一个非零元素,并清零
用串操作方法
最后一条指令,对连续的两个单
元写0
L1: L0: MOV CX, 60H
MOV AL, 0
MOV SI, OFFSET BUF
CMP AL, [SI]
JA L0
MOV AL, [SI]
INC SI
LOOP L1
AA:
MOV DI, OFFSET TABLE
MOV CX, 160
MOV AL, 0
CLD
REPE SCASB
JZ AA
MOV WORD PTR [DI], 00
…..
3.25 找第一个非零元素,并清零
常规比较方法
最后一条指令,对连续的两个单元
写0 3.30
MUL 48
16位数与32数无符号数相乘结
果为48位
L1:
L0: L2: MOV DI, OFFSET TABLE
MOV CX, 160
MOV AL, 0
CMP AL, [DI]
JNZ L0
INC DI
LOOP L1
JMP L2
MOV WORD PTR [DI], 00
…..
STAT:
MUL48:
JMP MUL48
HI0
LO0
HI1
LO1
HI2
LO2
DW ?
DW ?
DW ?
DW ?
DW ?
DW ?
MOV HI0, DX
MOV LO0, AX
MUL BX
MOV HI1, DX
MOV LO1, AX
MOV AX, HI0
MUL BX
MOV HI2, DX
MOV LO2, AX
; 存到AX, BX, CX中
MOV AX, LO1
MOV BX, HI1
ADD BX, LO2
MOV CX, HI2
ADC CX, 0
RET
3.31 MULS48 16位数与32数有符号数相乘结果为48位,先判断两个数的正负,然后调用 MUL48
[1000] 中放符号标志
MULS48: L0:
L1: EXIT: MOV [1000], 0 CMP [DX], 0 JNS L0
NOT AX
NOT DX
ADD AX, 1 ADC DX, 0 NOT [1000] CMP [BX], 0 JNS L1
NOT BX
ADD BX, 1 NOT [1000] CALL MUL48 CMP [1000], 0 JZ EXIT
NOT AX
NOT BX
NOT CX
ADD AX, 1 ADC BX, 0 ADC CX, 0 RET
6.26 用8251异步发送一段数据
注意段地址的使用
COUNT EQU xxxx
……
MOV AL, 7BH
OUT 42H, AL
MOV AL, 35H
OUT 42H, AL
PUSH DS
MOV AX, 2000H MOV DS, AX 程序先前程序的数据段压栈保护DS指向操作数据段