📄 e2.asm
字号:
data segment
out1 db 'Error.$'
out2 db'Press any key to exit or input 1 to continue .$'
out3 db 'please input a~z.$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
;输入并判断是否是字母
str: lea dx,out3
mov ah,09h
int 21h
mov ah,01h;
int 21h
cmp al,61h
jl error
cmp al,7ah
jg error
mov bl,al
;回车换行
mov dl ,0dh
mov ah,02h
int 21h
mov dl ,0ah
mov ah,2
int 21h
;输出前导字母
sub bl,01h
mov cl,bl
cmp cl,61h
jb aa
mov dl,bl
mov ah,02h
int 21h
;输出输入字母
cc:
add bl,01h
mov cl,bl
mov dl,bl
mov ah,2
int 21h
;输出后续字母
add bl,01h
mov cl,bl
cmp cl,7ah
ja bb
mov dl,bl
mov ah,2
int 21h
jmp exit
;若前导字符不是字母则输出空格
aa:mov al,' '
mov dl,al
mov ah,2
int 21h
jmp cc
;若后续字符不是字母,则输出空格
bb: mov al,' '
mov dl,al
mov ah,2
int 21h
jmp exit
;若输入的不是字母,则报错,要求重新输入
error:
lea dx,out1
mov ah,09h
int 21h
jmp str
;若输入字1则继续做,若不是,则返回dos
exit:
lea dx,out2
mov ah,09h
int 21h
mov ah,1
int 21h
sub al,1
jz str
mov ah,4ch
int 21h
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -