📄 sy5.asm
字号:
.model small
.stack
.data
string db 'Assemble Language Programming!',0
count equ($-string)/type string
input db 'Input a number(0-2):',0dh,0ah,'$'
output db 'The result:',0dh,0ah,'$'
.code
.startup
mov ah,09h
mov dx,offset input
int 21h
mov bx,offset string
mov ah,01h
int 21h
cmp al,'0'
jz zero
cmp al,'1'
jz one
cmp al,'2'
jz two
jmp export
zero: call U2LCON
jmp ex
one: call L2UCON
jmp ex
two: call INTCON
ex: mov ah,09h
mov dx,offset output
int 21h
mov bx,offset string
mov cx,count
outgo: mov al,[bx]
mov ah,02h
mov dl,al
int 21h
inc bx
loop outgo
export: .exit 0
U2LCON proc
lp: mov al,[bx]
or al,al
jz done
cmp al,'A'
jb next
cmp al,'Z'
ja next
or al,20h
mov [bx],al
next: inc bx
loop lp
done: ret
U2LCON endp
L2UCON proc
lp: mov al,[bx]
or al,al
jz done
cmp al,'a'
jb next
cmp al,'z'
ja next
sub al,20h
mov [bx],al
next: inc bx
loop lp
done: ret
L2UCON endp
INTCON proc
lp: mov al,[bx]
or al,al
jz done
cmp al,'A'
jb next2
cmp al,'Z'
ja next1
or al,20h
mov [bx],al
jmp next2
next1: cmp al,'a'
jb next2
cmp al,'z'
ja next2
sub al,20h
mov [bx],al
next2: inc bx
loop lp
done: ret
INTCON endp
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -