ECHO 就是指当你从键盘敲字符时,显示器会同时显示出来
--------------输出一个字符串用 21H 中断的09 函数--------------
INT 21H可以被用来向监视器传递ASCII数据,但是必须要设定AH = 09 且 DX = 要被显示的ASCII 数据的偏移地址,然后调用 21H 中断。 监视器会输出整个字符串直到遇到了“$”;09函数是不会显示‘$’的
例如:要显示字符串 “THE EARTH IS BUT ONE COUNTRY”
DATA_ASC DB 'THE EARTH IS BUT ONE COUNTRY', '$'
MOV AH, 09; 选择09函数
MOV DX, OFFSET DATA_ASC; DX = 数据的偏移地址
INT 21H; 调用21H中断
--------------输出一个字符用 21H 中断的02 函数--------------
当要输出一个字符时,需要设定 AH = 02, DL 存放将要显示的字符,然后调用21H中断;02函数可以显示'$'字符
例如:要显示“J”
MOV AH, 02
MOV DL,'J'; 显示字符‘J’
INT 21H; 调用21H中断
--------------输入一个字符用 21H 中断的01 函数--------------
此函数会一直等待用户从键盘输入一个字符,然后会显示在频幕中。在调用中断后,输入的字符会被存放到AL 中
MOV AH, 01; 01号函数
INT 21H; 在这之后,输入的字符会被存放到寄存器AL 中,并将字符显示出来
--------------输入一个字符串用 21H 中断的0AH 函数--------------
此函数可以提供方法让用户输入一个字符串并将之放入预存的内存; 但是必须设定 AH = 0AH, DX = 将要存放的地址的偏移值; 这通常比认为是缓冲区域;而DOS要求缓冲区域必须事前在数据段中定义,且第一个字节必须说明缓冲区的大小;在输入完成后, DOS会将输入的字符的个数(不包含回车键)放在第二个字节;然后接下来的字节即从第3个字节开始才会放从键盘输入的字符
例如:要存放从键盘输入的6个字符(包含了回车)
ORG 0010H ;将从0010H开始存放从键盘输入的字符
DATA1 DB 6, ?, 6 DUP (FF)
; 在内存 0010H中放的是6,表示缓冲区域的大小为6;0011H的内容仍未
;确定,其值为从键盘中输入的字符的个数(不包含回车键); 从0012H到0017H的6个字节中被初始化为FF,将要
;存放从键盘输入的字符;
MOV AH, 0AH; 使用0AH函数来输入字符串
MOV DX, OFFSET DATA1; 取缓冲区的地址偏移值
INT 21H; 调用21H中断
在IBM PC中,21H中断只有当用户按下了回车才会执行(回车的ASCII 值为 0DH)
------------------------------------------------------------------------
回车的ASCII 值为0DH
换行的ASCII 值为0AH
空格的ASCII 值为20H
------------------------------------------------------------------------
----------从键盘中输入一个字符,但是不显示出来,用21H的07函数-----------
用户输入的字符同样会被存放到AL 寄存器中
MOV AH, 07
INT 21H