key_scan.asm

来自「PC计算机钢琴程序子程序: 包括以下资料 软件:提取音乐代码的软件工具(自己」· 汇编 代码 · 共 74 行

ASM
74
字号
;/*---------------------------*/
;数据段定义
data 	segment								;数据定义段
	assume		ds:data						;建立数据段寄存器寻址
msg_1   db	'I love you ''ASM'' from the bottom of my heart! $',0dh,0ah	;定义字节
msg_2   db	0dh,0ah,'In this OS. you can only press ''Enter'' or ''Esc'' that can you exit OS. $'
data	ends								;数据定义段结束
;/*---------------------------*/



;/*---------------------------*/
;代码段定义
code    segment				;代码定义段
        assume		cs:code		;建立代码段寄存器寻址
;/*---------------------------*/



;/*---------------------------*/
;字符显示
show	macro 		str		;宏定义,输入参数:字符串str
        lea		dx,str		;装入str的有效地址
        mov 		ah,09h		;调用中断21,09h显示字符串
        int 		21h	
        endm				;宏定义结束
;/*---------------------------*/



;/*---------------------------*/
;主函数
main	proc		far		;主函数过程定义
	mov 		ax,data		;取数据段地址
	mov 		ds,ax		;装载数据段寄存器ds,使之指向当前数据段
	show		msg_1		;调用宏,显示字符串
	show		msg_2
;/*---------------------------*/



;/*---------------------------*/
;按键扫描
key_scan:
	mov		ah, 0		;利用bios的16号中断,扫描键盘按键
	int		16h		;AL中返回按键的ASCII码,AH中返回按键的扫描码
	cmp		al, 0dh		;判断是否为Enter键
	jz		exit		;是回车键就退出

	cmp		al, 1bh		;判断是否为Esc键
	jz		exit		;是退出键就退出
	jmp		key_scan	;否则继续扫描
;/*---------------------------*/	



;/*---------------------------*/
;退出
exit:
        mov 		ah,4ch		;调用中断21,4ch退出系统
        int 		21h
;/*---------------------------*/



;/*---------------------------*/
;结束
main	endp				;主函数过程结束
code	ends				;代码段结束
	end		main		;主程序结束
;/*---------------------------*/


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?