📄 char.asm
字号:
.model small
.stack
.data
string db 'Input 16 characters:',0dh,0ah,'$'
buffer1 db 16 dup(0),0dh,0ah,'$'
buffer2 db 16 dup(0),0dh,0ah,'$'
flag db ?
old db 0dh,0ah,'The old characters:',0dh,0ah,'$'
changed db 0dh,0ah,'The changed characters:',0dh,0ah,'$'
message db 0dh,0ah,'First place:$'
.code
.startup
mov ah,9
lea dx,string
int 21h
lea si,buffer1
mov cx,10h
take1: mov ah,1
int 21h
mov [si],al
inc si
loop take1
mov ah,2h
mov dl,0dh
int 21h
mov ah,2h
mov dl,0ah
int 21h
mov flag,0
mov cl,0
lea si,buffer1
lea di,buffer2
take2: mov al,[si]
cmp al,'a'
jb do
cmp al,'z'
ja do
cmp flag,0
jnz next
mov flag,1
mov bl,cl
next: sub al,20h
do: mov [di],al
inc si
inc di
inc cl
cmp cl,10h
jnz take2
push bx
mov ah,9h
lea dx,old
int 21h
mov ah,9h
lea dx,buffer1
int 21h
mov ah,9h
lea dx,changed
int 21h
mov ah,9h
lea dx,buffer2
int 21h
mov ah,9h
lea dx,message
int 21h
pop bx
cmp bl,9
ja other
add bl,30h
jmp last
other: add bl,57h
last: mov ah,2h
mov dl,bl
int 21h
mov ah,2h
mov dl,'H'
int 21h
.exit 0
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -