assume cs:code
data segment
str db "Beginner's All-purpose Symbolic Insturnction Code.",0,'$'
data ends
code segment
letterc:
push si ;保存si
s0: mov al,[si]
cmp al,0
jz done ;为零结束
cmp al,61h ;如果≥a
jge s1 ;则转至s1
inc si ;否则返回继续下一字符
jmp s0 ;
s1: cmp al,7ah ;如果≤z
jle s2 ;则开始转换
s2: sub al,20h ;减20h得到大写字母
mov [si],al
inc si
loop s0
done: pop si ;恢复si
ret
;
start:
mov ax,data
mov ds,ax
mov si,0
call letterc
;输出验证一下
mov dx,offset str
mov ah,09h
int 21h
;
mov ah,4ch
int 21h
code ends
end start
d:\asm> |