合肥工业大学电气与自动化专业实验中心 80X86微机原理及接口技术实验教程 思考题部分参考答案4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二循环程序设计实验
无思考题
实验二数制转换实验
1.实验内容1中将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,最大可为多少?为什么?
最大65535(FFFF),最小为0.存储器只能存16位,即FFFF。
2.将一个十六位二进制数转换为ASCII码十进制数时,如何确定D的值?i432
D10?10D??D?10??D??N?D1002143D:表示十进制数0~9
i将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1~D4,并将它们转换为ASCII码。
该位除以10取商,加30H。即加30H为对应的ASCII码。
3.在十六进制转换为ASCII码时,存转换结果后,为什么要把DX向右移四次?
取出存入四位十六进制数的下一位。腾出空间。
4. 自编ASCII码转换十六进制、二进制转换BCD码的程序,并调试运行
ASCII码转换十六进制
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX,0004H
MOV DI,3500H
MOV DX,[DI]
A1: MOV AX,DX
AND AX,00FFH
CMP AL,40H
JB A2
SUB AL,07H
A2: SUB AL,30H
MOV [DI+0DH],AL
DEC DI
PUSH CX
MOV CL,08H
SHR DX,CL
POP CX
LOOP A1
MOV AX,4C00H
INT 21H
ENDS
CODE
END START实验三 8259中断控制实验(硬件实验)
1.在中断中完成BCD码转换为二进制数。
.MODEL TINY
IO8259_0 EQU 0260H
IO8259_1 EQU 0261H
.DATA
BUFFER DB 8 DUP(?)
ReDisplayFlag DB 0
.STACK 100
.CODE
START: MOV AX,@DATA
MOV DS,AX
MOV ES,AX
PUSH DS
CALL WriIntver
CLI
POP DS
;初始化主片8259
MOV DX,IO8259_0
MOV AL, 13H
OUT DX, AL ;ICW1
MOV DX,IO8259_1
MOV AL, 08H
OUT DX, AL ;ICW2
MOV AL, 09H
OUT DX, AL ;ICW4
;OCW1
MOV AL, 0
OUT DX, AL
MOV SI, 3500H MOV DI, 3510H
STI
AA1: NOP
JMP AA1
WriIntver PROC NEAR ES PUSH
AX,0 MOV
ES,AX MOV
DI,20H MOV LEAAX,MIR7
STOSW
AX,CS MOV
STOSW
ES POP
RET
ENDP WriIntver MIR7:
XOR AX,AX STI MOV AL, [SI]
ADD AL, AL
MOV BL, AL
ADD AL, AL
ADD AL, AL
ADD AL, BL
INC SI
ADD AL, [SI]
MOV [DI], AL
INC SI
INC DI
MOV AL, 20H
MOV DX,IO8259_0
OUT DX, AL ;中断结束命令
IRET
START END