合肥工业大学电气与自动化专业实验中心 80X86微机原理及接口技术实验教程 思考题部分参考答案(4) 下载本文

内容发布更新时间 : 2024/12/23 21:04:09星期一 下面是文章的全部内容请认真阅读。

实验二 循环程序设计实验

无思考题

实验二 数制转换实验

1. 实验内容1中将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,最大可为多少?为什么? 最大65535(FFFF),最小为0.存储器只能存16位,即FFFF。

2. 将一个十六位二进制数转换为ASCII码十进制数时,如何确定Di的值? N?D4?104?D3?103?D2?102?D1?10?D0

Di:表示十进制数0~9

将十六位二进制数转换为五位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

CODE LOOP A1

MOV AX,4C00H INT 21H ENDS

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 MOV AL, 0 ;OCW1

OUT DX, AL MOV SI, 3500H MOV DI, 3510H STI AA1: NOP JMP AA1

WriIntver PROC NEAR PUSH ES MOV AX,0 MOV ES,AX MOV DI,20H LEAAX,MIR7 STOSW MOV AX,CS STOSW POP ES RET

WriIntver ENDP MIR7:

STI XOR AX,AX 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 END START

;中断结束命令