找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2858|回复: 0
收起左侧

INT 21H功能集

[复制链接]
ID:60076 发表于 2014-4-30 23:36 | 显示全部楼层 |阅读模式
INT 21H是一条中断语句,AH的值为它的功能,当AH值不一样时,它的功能也不同。
      
       功能一:输出一个字符串用 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)


         功能五:从键盘中输入一个字符,但是不显示出来,用21H的07函数,用户输入的字符同样会被存放到AL 寄存器中

  MOV AH, 07

  INT 21H
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表