汇编里 mov ah,1 int 21h是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编里 mov ah,1 int 21h是啥意思相关的知识,希望对你有一定的参考价值。

汇编语言里:
MOV AH,1
INT 21H
是什么意思?

mov ah,01h 把十六进制数1(表示为01h)装入ah寄存器
int 21h 调用 int 21H 中断,返回值放在 al寄存器中
ah=01h是功能号, 表示键盘输入并回显 AL=输入字符,int 21H表中断;
参考技术A 这两条指令是对DOS (磁盘操作系统)1 号功能的调用,
从键盘上输入一个字符,将其对应字符的ASCII码送入AL中,并在屏幕上显示该字符。如果按下的是Ctrl+Break组合键,则终止程序执行。1号功能调用无须入口参数,出口参数在AL中。
参考技术B mov
ah,02h
是给ah赋值02h,是显示字符的作用,mov
dl,
08h
是表示显示的字符的ascii码是08h,int
21h是是dos的中断调用,整个语句的意思很简单,就是在屏幕上显示08h。汇编博大精通,好好学啊。
参考技术C DOS的中断调用

通过给AH寄存器赋值,然后调用INT 21H指令,计算机就会根据AH寄存器中的值执行相应的操作,其中1H是键盘输入并回显,AL中有输入字符。
还可给AH寄存器赋其他值:
http://blog.csdn.net/chinazeze/archive/2007/08/10/1735621.aspx

参考资料:http://blog.csdn.net/chinazeze/archive/2007/08/10/1735621.aspx

汇编语言int 21的10号功能的具体使用

5、从键盘输入一个字符串到缓冲区(AH=0AH)

功能:从键盘输入一串ASCII码字符到缓冲区,输入结束为缓冲区的个数或者“回车”字符。

入口参数:DX=缓冲区首偏移地址;DS=缓冲区段地址

调用方法

        MOV      AX,缓冲区的首址的段地址

        MOV      DS,AX

        MOV       DX,缓冲区的首址的偏移地址

        MOV      AH,0AH

        INT        21H

执行完上面调用,将从键盘接受字符串送到内存的输入缓冲区(由DS:DX指定缓冲区),要求预先定义一个缓冲区,缓冲区的第一个字节指定容纳的最大字符个数,由用户给出;第二个字节存放实际的字符总个数,由系统最后添入;从第三个字节开始存放从键盘接受的字符,直到ENTER键结束。

<例子>:

 

 

 1 DATA SEGMENT  
 2     BUF   DB   20;存放最大字符个数20个  
 3             DB   ?,         ;存放实际输入字符个数  
 4             DB   20 DUP(?)  ;存放输入字符  
 5 DATA ENDS  
 6 CODE SEGMENT  
 7   ASSUME CS:CODE,DS:DATA  
 8 START:  
 9    MOV   AX,DATA   ;缓冲区所在段基址  
10    MOV  DS,AX  
11    LEA  DX,BUF    ;缓冲区首址偏移地址  
12    MOV  AH,0AH  
13    INT  21H  
14           
15    MOV  AH   4CH  
16    INT  21H  
17 CODE ENDS  
18      END  START      
汇编代码

所以 一般定义数据的时候,缓冲区的第一个字节指定容纳的最大字符个数,也就和后面定义的存储单元数是相等的。


 

以上是关于汇编里 mov ah,1 int 21h是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言中 LEA DX,S MOV AH,9 INT 21H具体意思是啥,请大师指教。

汇编中INT 21H是啥意思?

汇编程序中int 21H 的功能是啥?

汇编程序中int 21H 的功能是啥?

汇编 DOS的中断调用 INT 21H

汇编语言中断指令