内容发布更新时间 : 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
;中断结束命令