熟悉DOS编程环境,编写一个DOS环境的汇编程序,从键盘输入一串字符并逆序显示出来。 STACKSG SEGMENT STACK 'S' DW 64 DUP('ST') STACKSG ENDS DATA SEGMENT BUFFER DB 60 ,? ,60 DUP(?) ;输入缓冲区 PRINT DB 'Input a string:','$' ;输出字符串 CRLF DB 0DH,0AH,'$' ;回车换行符 OUTPUT DB 'The reversed string:','$' ;输出字符串 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSG MAIN PROC FAR MOV AX ,DATA MOV DS ,AX MOV AH ,9 ;输出一串提示信息 LEA DX ,PRINT INT 21H MOV AH,9 ;输出回车换行符,使光标停在新行首 LEA DX,CRLF INT 21H MOV AH ,0AH ;接收一串字符 LEA DX ,BUFFER INT 21H MOV AH,9 ;输出回车换行符,使光标停在新行首 LEA DX,CRLF INT 21H MOV AH,9 ;输出一串信息 LEA DX,OUTPUT INT 21H MOV AH,9 ;输出回车换行符,使光标停在新行首 LEA DX,CRLF INT 21H MOV CL,BUFFER ;将CX置为字符串长度 XOR CH,CH LEA SI,BUFFER+1 ;SI指向接收到的第一个字符 ADD SI,CX ;SI指向字符串的最后一个字符 MOV AH,2 ;通过LOOP循环每次输出字符串一个字符 A3: MOV DL,[SI] ;每次将SI指向的字符内容赋给DX INT 21H DEC SI ;每次将SI指向前一个字符 LOOP A3 MOV AX,4C00H ;返回DOS INT 21H MAIN ENDP CODE ENDS END MAIN 如果了解汇编话,这是一段很简单的实现,基本上照着书上的例子敲出来就OK了! 小弟还比较菜,去年学的东西今年要用却发现忘了不少,看来还得继续努力啊!