汇编语言实现字符串的输入,输出

1.了解INT 21H09H号中断调用(输出字符串)

①  LEA DX,字符串的开头      或        MOV DX,OFFSET字符串的开头 

②  MOV AH,09H

③  INT 21H

2.在定义字符串的时候要在末尾加上'$'作为字符串的结束标志。

3.了解INT 21H0AH号中断调用(输入字符串)

①  LEA DX,字符串的开头      或        MOV DX,OFFSET字符串的开头 

②  MOV AH,0AH

③  INT 21H

4.在定义内存空间存储字符串时,类似于定义C语言的数组

5.源代码:

DATA   SEGMENT                               
INPUT  DB  "Please input a string: ",'$'
OUTPUT DB  "Your input is: ",'$'
BUFFER DB  20				    ;预定义20字节的空间
       DB  ?				    ;待输入完成后,自动获得输入的字符个数
       DB  20  DUP(0)    
CRLF   DB  0AH, 0DH,'$'                   
DATA   ENDS                                  
STACK  SEGMENT   STACK                       
       DW  20  DUP(0)                      
STACK  ENDS                                  
CODE   SEGMENT                              
ASSUME CS:CODE, DS:DATA, SS:STACK            
START:                                       
        MOV AX, DATA                         
        MOV DS, AX                      
        LEA DX, INPUT                        ;打印提示输入信息    
        MOV AH, 09H							 
        INT 21H
        LEA DX,BUFFER                        ;接收字符串
        MOV AH, 0AH
        INT 21H
        MOV AL, BUFFER+1                     ;对字符串进行处理
        ADD AL, 2
        MOV AH, 0
        MOV SI, AX
        MOV BUFFER[SI], '$'
        LEA DX, CRLF                         ;另取一行                   
        MOV AH, 09H							 
        INT 21H
        LEA DX, OUTPUT                       ;打印提示输出信息
        MOV AH, 09H							 
        INT 21H
        LEA DX, BUFFER+2                     ;输出输入的字符串
        MOV AH, 09H							 
        INT 21H
        LEA DX, CRLF                         ;另取一行                  
        MOV AH, 09H							 
        INT 21H

        MOV AH, 4CH                          ;返回DOS系统
        INT 21H
CODE   ENDS                                  
END    START                                 
                     

6.程序输出

output.asm

7.有趣的是在汇编语言中字符串输入的结束是以回车键,空格键不起结束作用。

猜你喜欢

转载自blog.csdn.net/TanguanhuaD/article/details/81980956