3.运行成功后,改变常数或频率值,看看声音的变化。
六.实验报告要求
1.实验记录和体会。 2.自编程序。
七.思考题
如果要演奏高音、低音,程序应如何修改?程序框图如下:
INT21H的01H号功能接收键入字符 是CTRL-C? Y N 键入字符值转化为查表偏移量送BX 结束 常数120000H被除数送(DX,AX) 查表得频率值作为除数 相除结果作为计数初值送BX
设置8253计数器2的工作模式 装入计数初值 打开与门 延迟一段时间 关闭与门
实验11 键盘和窗口程序
一.实验目的
1.掌握利用INT 16H 2号功能调用实行键盘输入的方法; 2.熟悉键盘的扫描码和ASCII码的关系;
3.掌握利用INT 10H功能调用实现窗口功能的方法。
二.实验内容
1.编写键盘输入程序; 2.编写设置屏幕窗口程序。
三.实验要求
1.复习INT 16H 2号功能调用;
2.阅读键盘的扫描码和ASCII码的关系的内容; 3.复习INT 10H功能。
四.实验环境
PC微机
DOS操作系统或 Windows 操作系统
MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境
五.实验步骤
1.将键盘输入程序输入,建立源程序文件且存盘;
2.汇编、连接、运行此程序,观察并记录各个键的扫描码,ASCII码及对应字符。汇编、连接和运行此程序;
3.将窗口程序输入,建立源程序文件且存盘;
4.汇编、连接、运行此程序,观察按不同键所产生的效果。
六.实验报告要求
1.对照参考程序,画出程序流程图。 2.记录程序运行结果。
七.思考题
窗口程序所产生的窗口效果有何缺陷?试修改之。
参考程序清单:
1.键盘输入程序
PRO_NAM SEGMENT
ASSUME CS:PRO_NAM ORG 100H
AGAIN: MOV AH,0
INT 16H MOV BX,AX CALL BINIHEX MOV AH,2 MOV dl,20h INT 21H MOV DL,BL MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H JMP AGAIN INT 20H
BINIHEX PROC NEAR
MOV CH,4
ROTATE: MOV CL,4
ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINT ADD AL,7
PRINT: MOV DL,AL
MOV AH,2 INT 21H DEC CH
JNZ ROTATE RET
BINIHEX ENDP PRO_NAM ENDS
END AGAIN 2.窗口程序 code
segment
assume cs:code,ss:code org start:
mov mov mov mov int pos:
mov mov mov int mov get:
mov int cmp jz loop mov mov mov mov int jmp exit: int code
ends end 100h ax,600h cx,0 dx,184fh bh,7 10h ah,2 dx,101eh bh,0 10h cx,20 ah,1 21h al,1bh exit get ax,601h cx,81eh dx,1031h bh,7 10h pos 20h start
相关推荐: