汇编语言中的各种功能调用
2017-11-01 17:03
211 查看
原来汇编中的功能调用就是这么回事,我的理解就是,用汇编来实现键盘上的一些特殊功能
1.键盘输入并显示(1号功能调用)
格式: MOV AH, 01H
INT 21H
功能:按下任何键,将其对应字符的ASCII码送入AL中,并在屏幕上显示该字符。如果按下的是Ctrl+Break组合键,则终止程序执行。1号功能调用无须入口参数,出口参数在AL中
2.键盘输入但不显示输入字符(8号功能调用)
格式: MOV AH, 08H
INT 21H
功能:同1号功能调用,但字符不在屏幕上显示。
3.屏幕显示一个字符(2号功能调用)
格式: MOV DL, ‘字符’
MOV AH, 02H
INT 21H
功能:将置入DL寄存器中的字符在屏幕上显示输出。
4.打印输出(5号功能调用)
格式: MOV DL, ‘字符’
MOV AH, 05H
INT 21H
功能:将置入DL寄存器中的字符送打印机接口,打印输出。
5.屏幕显示字符串(9号功能调用)
格式: MOV DX, 字符串的偏移地址
MOV AH, 09H
INT 21H
功能:在屏幕上显示字符串。
在使用9号功能调用时,应当注意以下问题。
① 待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。
② 应当将字符串首地址的段基址和偏移地址分别存入DS和DX寄存器中。
6.字符串输入功能调用(0AH号功能调用)
格式: MOV DX, 已定义缓冲区的偏移地址
MOV AH, 0AH
INT 21H
功能:从键盘接收字符,并存放到内存缓冲区。
在使用0AH号功能调用时,应当注意以下问题。
① 执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符0DH在内,不能为“0”值。第二个字节保留,在执 行程序完毕后存入输入的实际字符个数。从第三个字节开始存入从键盘上接收字符的ASCII码。若实际输入的字符个数少于定义的最大字符个数,则缓冲区其他 单元自动清0。若实际输入的字符个数大于定义的字符个数,其后输入的字符丢弃不用,且响铃示警,一直到输入回车键为止。整个缓冲区的长度等于最大字符个数 再加2。
② 应当将缓冲区首地址的段基址和偏移地址分别存入DS和DX寄存器中。
7.返回DOS操作系统(4CH号功能调用)
格式: MOV AH, 4CH
INT 21H
功能:终止当前程序的运行,并把控制权交给调用的程序,即返回DOS系统,屏幕出现DOS提示符,如“C: \ >”,等待DOS命令。
8.直接输入、输出单字符(6号功能调用)
格式: MOV DL, 输入/输出标志
MOV AH, 06H
INT 21H
功能:执行键盘输入操作或屏幕显示输出操作,但不检查Ctrl+Break组合键是否按下。执行这两种操作的选择由DL寄存器中的内容决定。
① 当(DL)=0FFH时,执行键盘输入操作。若标志ZF=0,AL中放入字符的ASCII码;若标志ZF=1,表示无键按下。这种调用用来检测键盘是否有键按下,但不等待键盘输入。
② 当(DL)≠0FFH时,表示将DL中内容送屏幕显示输出。
9.检查键盘的工作状态(0BH号功能调用)
格式: MOV AH, 0BH
INT 21H
功能:检查是否有键盘输入,若有键按下,则使AL=0FFH,若无键按下,则AL=00H。对于利用键盘操作退出循环或使程序结束之类的操作来说,这种调用是很方便实用的。
10.设置系统日期(2BH号功能调用)
格式: MOV CX, 年号
MOV DH, 月号
MOV DL, 日期
MOV AH, 2BH
INT 21H
功能:设置有效的年、月、日。当AL=0时,设置成功;当AL=0FFH时,设置失败。
11.设置系统时间(2DH号功能调用)
格式: MOV CH, 小时
MOV CL, 分
MOV DH, 秒
MOV AH, 2DH
INT 21H
功能:设置有效的时间。当AL=0时,设置成功;当AL=0FFH时,设置失败。
1.键盘输入并显示(1号功能调用)
格式: MOV AH, 01H
INT 21H
功能:按下任何键,将其对应字符的ASCII码送入AL中,并在屏幕上显示该字符。如果按下的是Ctrl+Break组合键,则终止程序执行。1号功能调用无须入口参数,出口参数在AL中
2.键盘输入但不显示输入字符(8号功能调用)
格式: MOV AH, 08H
INT 21H
功能:同1号功能调用,但字符不在屏幕上显示。
3.屏幕显示一个字符(2号功能调用)
格式: MOV DL, ‘字符’
MOV AH, 02H
INT 21H
功能:将置入DL寄存器中的字符在屏幕上显示输出。
4.打印输出(5号功能调用)
格式: MOV DL, ‘字符’
MOV AH, 05H
INT 21H
功能:将置入DL寄存器中的字符送打印机接口,打印输出。
5.屏幕显示字符串(9号功能调用)
格式: MOV DX, 字符串的偏移地址
MOV AH, 09H
INT 21H
功能:在屏幕上显示字符串。
在使用9号功能调用时,应当注意以下问题。
① 待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。
② 应当将字符串首地址的段基址和偏移地址分别存入DS和DX寄存器中。
6.字符串输入功能调用(0AH号功能调用)
格式: MOV DX, 已定义缓冲区的偏移地址
MOV AH, 0AH
INT 21H
功能:从键盘接收字符,并存放到内存缓冲区。
在使用0AH号功能调用时,应当注意以下问题。
① 执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符0DH在内,不能为“0”值。第二个字节保留,在执 行程序完毕后存入输入的实际字符个数。从第三个字节开始存入从键盘上接收字符的ASCII码。若实际输入的字符个数少于定义的最大字符个数,则缓冲区其他 单元自动清0。若实际输入的字符个数大于定义的字符个数,其后输入的字符丢弃不用,且响铃示警,一直到输入回车键为止。整个缓冲区的长度等于最大字符个数 再加2。
② 应当将缓冲区首地址的段基址和偏移地址分别存入DS和DX寄存器中。
7.返回DOS操作系统(4CH号功能调用)
格式: MOV AH, 4CH
INT 21H
功能:终止当前程序的运行,并把控制权交给调用的程序,即返回DOS系统,屏幕出现DOS提示符,如“C: \ >”,等待DOS命令。
8.直接输入、输出单字符(6号功能调用)
格式: MOV DL, 输入/输出标志
MOV AH, 06H
INT 21H
功能:执行键盘输入操作或屏幕显示输出操作,但不检查Ctrl+Break组合键是否按下。执行这两种操作的选择由DL寄存器中的内容决定。
① 当(DL)=0FFH时,执行键盘输入操作。若标志ZF=0,AL中放入字符的ASCII码;若标志ZF=1,表示无键按下。这种调用用来检测键盘是否有键按下,但不等待键盘输入。
② 当(DL)≠0FFH时,表示将DL中内容送屏幕显示输出。
9.检查键盘的工作状态(0BH号功能调用)
格式: MOV AH, 0BH
INT 21H
功能:检查是否有键盘输入,若有键按下,则使AL=0FFH,若无键按下,则AL=00H。对于利用键盘操作退出循环或使程序结束之类的操作来说,这种调用是很方便实用的。
10.设置系统日期(2BH号功能调用)
格式: MOV CX, 年号
MOV DH, 月号
MOV DL, 日期
MOV AH, 2BH
INT 21H
功能:设置有效的年、月、日。当AL=0时,设置成功;当AL=0FFH时,设置失败。
11.设置系统时间(2DH号功能调用)
格式: MOV CH, 小时
MOV CL, 分
MOV DH, 秒
MOV AH, 2DH
INT 21H
功能:设置有效的时间。当AL=0时,设置成功;当AL=0FFH时,设置失败。
相关文章推荐
- 汇编语言中的各种功能调用
- 汇编相关(ASCII码字符表 DEBUG命令 BIOS功能调用表 DOS功能调用表 汇编语言错误信息表)
- 【80X86汇编语言学习】【DOS功能调用】基本IO功能
- 【80X86汇编语言学习】【DOS功能调用】磁盘文件管理及应用(一)
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用 10 号功能调用。)放在 STRING 中,试 编制一个程序测试字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置置 0。
- 汇编语言基础之六- 调用栈和各种调用约定的总结对比
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用10号功能调用。),将其中的小写英文 字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。
- 【80X86汇编语言学习】【DOS功能调用】基本IO功能 (二)
- 汇编语言调用Linux系统调用
- 为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈
- 汇编语言函数调用过程(转)
- 软件DIY----用汇编语言给XP记事本添加“自动保存”功能
- C语言与汇编语言相互调用原理以及实例
- IBM-PC汇编语言BIOS和DOS中断调用程序设计
- 汇编语言(王爽)-实验十三(二)中断例程对loop功能实现的简单变通
- 汇编语言入门七:函数调用(一)
- [编程实例]win32汇编语言调用dll结束进程[使用masmplus1.2]
- 各种开发语言示例调用WebService接口
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- 汇编语言: .写一段子程序 SKIPLINES,完成输出空行的功能。空行的行数由用户在主程序中通过 键盘输入,并将行数放在 AX 寄存器中。