从键盘输入一个小写字母,找出它的前导字母和后续字母,再按顺序显示这三个字符,出现越界情况应该用循环字母表来处理,如a的前导字母为z,z的后续字母为a。

;从键盘输入一个小写字母,找出它的前导字母和后续字母,再按顺序显示这三个字符,
;出现越界情况应该用循环字母表来处理,如a的前导字母为z,z的后续字母为a。
DATA SEGMENT
STRING DB 'zabcdefghijklmnopqrstuvwxyza'
CRLF   DB 0AH,0DH,'$'
DATA ENDS

STACK SEGMENT PARA STACK
          DW 128 DUP(?)
TOP   LABEL WORD
STACK ENDS 

CODE SEGMENT
          ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN PROC FAR
START:
         MOV AX,DATA
MOV DS,AX
 
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
 
MOV AH,1    ;接受键盘输入小写字母
INT 21H
 
LEA DI,STRING
L1: INC DI       ;使DI指向a
CMP AL,[DI]
JNE L1
 
DEC DI       ;找到相对应字母后,DI指向其前导字母
 
MOV AH,9
LEA DX,CRLF
INT 21H
 
MOV CX,3     ;循环顺序输入三个小写字母
L2:    MOV DL,[DI]
         MOV AH,2
INT 21H
INC DI
LOOP L2
 
MOV AH,4CH
INT 21H
CODE ENDS
MAIN ENDP
         END START

你可能感兴趣的:(汇编语言)