str2.asm

来自「一些汇编实验程序」· 汇编 代码 · 共 71 行

ASM
71
字号
;字符串反向输出

SSEG SEGMENT PARA STACK 'stack'
	dw 100h dup(0) ;初始化堆栈大小为100
SSEG ENDS

DSEG SEGMENT
        INFO1	DB	0DH,0AH,'INPUT  STRING:$'
      INFO2	DB	0DH,0AH,0DH,0AH,'OUTPUT  STRING:$'
       BUFA	DB	81
                                
                                DB        80 DUP(0)
       BUFB	DB	81 DUP(0)
;数据段:在此处添加程序所需的数据
DSEG ENDS

ESEG SEGMENT
	;附加段:在此处添加程序所需的数据
ESEG ENDS

CSEG SEGMENT
	assume  cs:CSEG, ds:DSEG, es:ESEG, ss:SSEG


	
MAIN PROC   	;主程序入口

;start:	
                mov ax, dseg
	mov ds, ax
	mov es, ax

                LEA	DX,INFO1
	MOV	AH,9	             ;       9号调用,显示输入提示信息
	INT	21H

	LEA	DX,BUFA
	MOV	AH,10	                    ;10号调用,键盘输入字符串到缓冲区BUFA   
             	 INT	21H 				
	
                 LEA	SI,BUFA+1        
	MOV	CH,0	                ;取字符长度→CX 
	MOV	CL,[SI]
	ADD	SI,CX	                    ;SI 指向字符串尾部
	LEA	DI,BUFB	   ;DI指向字符串变量BUFB

NEXT:	MOV	AL,[SI]
	MOV	[DI],AL
	DEC	SI
	INC	DI
	LOOP	NEXT

	MOV	BYTE  PTR  [DI],'$'
                LEA	DX,INFO2
	MOV	AH,9	          ;9号调用,显示输出
                INT	21H 

                 LEA	DX,BUFB
	MOV	AH,9	      ;反向显示字符串
	INT	21H
	
	
	;此处添加主程序代码

	mov ax, 4c00h  ;程序结束,返回到操作系统
	int 21h
MAIN ENDP
	
CSEG ENDS

END MAIN

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?