assume cs:code,ds:data
;需显示的数据信息
data segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
call letterc
mov dh,5
mov dl,5
mov cl,07h
call show_str
mov ax,4c00h
int 21h
;子程序描述
;名称:Letterc
;功能:将以0结尾的字符串中的小写字母变成大写字母
;参数:ds:si指向字符串的首地址
;返回:无
letterc:
push si
push ax ;保存现场
letterc_start:
cmp byte ptr ds:[si],0 ;判断是否是到结尾,还可以防止空字符串产生错误的情况发生
je letterc_ok
cmp byte ptr ds:[si],96
jb letterc_next ;判断字符是否小于’a'
cmp byte ptr ds:[si],123
ja letterc_next ;判断字符是否大于’z'
mov al,ds:[si]
and al,11011111B ;小写变大写
mov ds:[si],al
letterc_next:
inc si
jmp letterc_start
letterc_ok:
pop ax
pop si
ret
;子程序描述
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串
;参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79)
; (cl)=颜色,ds:si指向字符串的首地址
;返回:无
show_st
王爽《汇编语言》实验11 小写转大写子程序
最新推荐文章于 2022-03-23 13:42:52 发布