글자는 대소 문자 (대문자 또는 소문자)에 관계없이 문자 만 허용하고 대/소문자를 변환하여 표시하는 프로그램이 있다고 가정합니다 (예 : A에서 a ~ A). 그런 다음 프로그램은 오름차순과 내림차순으로 다음 문자를 표시하지만 알파벳 문자 내에서만 표시됩니다. 예를 들어알파벳 내의 표시 문자를 어떻게 제한 할 수 있습니까?
, 만약 입력 'L'및 승순 선택 출력됩니다 그 대문자뿐만 아니라
Input: l
Display
[a]ascending
[d]descending
Choice:a
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
마찬가지로 만 Z.까지 그 이후의 다음 문자를 대응하는 경우, I 입력 E 및 내림차순을 선택하면 해당 소문자와 동등한 다음 문자를 출력합니다. 여기
Input:E
Display
[a]ascending
[d]descending
Choice:d
e
d
c
b
a
가 지금까지 달성 한 코드의 조각이다, 나는 그것의 대문자와 소문자 등가물에 입력 문자를 변환하는 관리 또한 수직으로 표시 할 수 있었다있다. 내 유일한 문제는 어떻게 알파벳으로 출력을 제한하는 것입니다.
startOver:
call cls
mov ah,9
lea dx,string8 ;Display the string "Input:"
int 21h
mov ah,1 ;input starting letter
int 21h
mov bl,al
call nlcr ;nlcr is a procedure for new line and carriage return
mov ah,9
lea dx,string9 ;Display the string "Display"
int 21h
call nlcr
mov ah,9
lea dx,string10 ;Display the string "[a]ascending"
int 21h
call nlcr
mov ah,9
lea dx,string11 ;Display the string "[d]descending"
int 21h
call nlcr ;nlcr is a procedure for newline and carriage return
mov ah,9 ;Display the string "Choice:"
lea dx,string12
int 21h
mov ah,1 ;input display choice if it's ascending or descending
int 21h
mov cl,al
call nlcr
cmp cl,'a' ;validate the display choice
je ascending
cmp cl,'d'
je descending
checkd:
cmp cl,'d'
je descending
cmp cl,'d'
mov ah,9
lea dx,string14
int 21h
jne startOver
ascending: ;display in ascending order
xor bl,20h ;converts letter to uppercase or lowercase
mov ah,2
mov dl,bl
int 21h
mov cx,15 ;display the letters vertically, I put a default of 15 for I am not sure how to limit it to the alphabet only
asc:
mov bl,dl
call nlcr
mov dl,bl
inc dl
int 21h
loop asc
jmp exit
descending: ;display in descending order
xor bl,20h ;converts letter to uppercase or lowercase
mov ah,2
mov dl,bl
int 21h
mov cx,15
desc:
mov bl,dl
call nlcr
mov dl,bl
dec dl
int 21h
loop desc
jmp exit
exit:
;call cls
mov ah,4ch
int 21h
main endp
답장 보내 주셔서 감사합니다.
와우! 그 라인의 몇 가지 매력처럼 작동하게했다! 감사! –