实验名称:分支结构程序设计
主要使用软件:Masm for Windows
data segment
string DB 'please input:',13,10,'$'
strxx DB 13,10,'You Input a Lowercase Letter!$'
strdx DB 13,10,'You Input a Uppercase Letter!$'
strsz DB 13,10,'You Input a Digit!$'
strqt DB 13,10,'You Input Other Letter!$'
data ends
code segment
assume CS:code,DS:data
start:
mov AX,data
mov DS,AX
lea DX,string ;输入一个字符
mov AH,09
int 21h
mov AH,01
int 21h
cmp AL,'0' ;X<'0'即其他字符,转L0
jb L0
cmp AL,'9' ;X>='0',X<='9'即数字字符,转L1
jbe L1
cmp AL,'A' ;X>'9',X<'A'即其他字符,转L0
jb L0
cmp AL,'Z' ;X>='A',X<='Z'即大写字母,转L2
jbe L2
cmp AL,'a' ;X>'Z',X<'a'即其他字符,转L0
jb L0
cmp AL,'z' ;X>='a',X<='z'即小写字符,转L3
jbe L3
jmp L0 ;X>'z'即其他字符,转L0
L0: mov AL,0 ;0->AL;当输入为其他字符
jmp LL
L1: mov AL,2 ;2->AL;当输入为数字字符
jmp LL
L2: mov AL,4 ;4->AL;当输入为大写字母
jmp LL
L3: mov AL,6 ;6->AL;当输入为小写字母
LL: lea BX,TAB
mov AH,0
Add BX,AX
jmp BX ;转到地址表中对应的指令去执行
exit:
mov AH,4ch
int 21h
TAB: ;地址表
jmp SHORT P0
jmp SHORT P1
jmp SHORT P2
jmp SHORT P3
P0: lea DX,strqt ;其他字符
mov AH,09
int 21h
jmp exit
P1: lea DX,strsz ;数字字符
mov AH,09
int 21h
jmp exit
P2: lea DX,strdx ;大写字母
mov AH,09
int 21h
jmp exit
P3: lea DX,strxx ;小写字母
mov AH,09
int 21h
jmp exit
code ends
end start