汇编里 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是啥意思的主要内容,如果未能解决你的问题,请参考以下文章