INT 21H

来源:互联网 发布:博洋软件官网 编辑:程序博客网 时间:2024/05/16 07:40

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

原创粉丝点击