请教一个关于字符右对齐输出的问题
从键盘输入一个字符串,在屏幕上以右对齐的方式显示出来。
DATA SEGMENT
MASSAGE1 DB 'PLEASE INPUT A STRING:','$'
MASSAGE2 DB 'RIGHT-ADJUETING OF STRING:','$'
NUM EQU 25
STRING1 DB NUM,0,NUM DUP(' '),0AH,0DH,'$'
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK1
START: MOV AX,DATA
MOV DS,AX
LEA DX,MASSAGE1
MOV AH,09H
INT 21H
LEA DX,STRING1
MOV AH,0AH
INT 21H
CALL DUIQI
LEA DX,MASSAGE2
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
DUIQI PROC
PUSH DX
LEA SI,STRING1
MOV DI,NUM-1
MOV CX,[SI+1]
MOV DX,CX
ADD DI,SI ;DI指向最后一个字节
ADD SI,CX
ADD SI, CX
INC SI ;SI指向输入字符的最后一个
LOP1: STD
LODSB
STOSB
LOOP LOP1
LOP2: MOV BX,NUM
SUB BX,DX
MOV BYTE PTR[DI],20H
SUB BX,1
JNE LOP2
POP DX
RET
DUIQI ENDP
CODE ENDS
END START
运行的时候只能显示“PLEASE INPUT A STRING:”输入字符按回车后就没反应了,请教各位这是哪出了问题,谢谢啦!