CODES SEGMENT
ASSUME CS:CODES
START: MOV AH,01H
INT 21H
MOV DL,AL
MOV BL,AL
MOV CL,4
SHR DL,CL
ADD DL,30H
CMP DL,41H
JLE NEXT
ADD DL,7H
NEXT:MOV AH,2H
INT 21H
MOV DL,BL
AND DL,0FH
ADD DL,30H
CMP DL,41H
JLE NEXT2
ADD DL,7H
NEXT2:MOV AH,2H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
2009年3月29日星期日
汇编实现输入字符串逆向输出
DATA SEGMENT
STRING DB 100,?,100 DUP(0)
PROMPT DB 'Please input:',13,10,'$'
RESULT DB 'The result is:',13,10,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,PROMPT ;取PROMPT偏移地址->DX
MOV AH,9H ;功能号09H->AH,显示'Please input:'
INT 21H
LEA DX,STRING ;输入字符串
MOV AH,0AH INT 21H
MOV DL,0AH
MOV AH,2H INT 21H
LEA DX,RESULT ;取RESULT偏移地址->DX
MOV AH,9H ;功能号09H->AH,显示'The result is:'
INT 21H
LEA BX,STRING+1
MOV CL,[BX]
MOV CH,0
ADD BX,CX
NEXT: MOV DL,[BX]
MOV AH,2
INT 21H
DEC BX
LOOP NEXT
MOV AH,4CH
INT 21H
CODE ENDS
END START
STRING DB 100,?,100 DUP(0)
PROMPT DB 'Please input:',13,10,'$'
RESULT DB 'The result is:',13,10,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,PROMPT ;取PROMPT偏移地址->DX
MOV AH,9H ;功能号09H->AH,显示'Please input:'
INT 21H
LEA DX,STRING ;输入字符串
MOV AH,0AH INT 21H
MOV DL,0AH
MOV AH,2H INT 21H
LEA DX,RESULT ;取RESULT偏移地址->DX
MOV AH,9H ;功能号09H->AH,显示'The result is:'
INT 21H
LEA BX,STRING+1
MOV CL,[BX]
MOV CH,0
ADD BX,CX
NEXT: MOV DL,[BX]
MOV AH,2
INT 21H
DEC BX
LOOP NEXT
MOV AH,4CH
INT 21H
CODE ENDS
END START
标签:
汇编
订阅:
博文 (Atom)