汇编实验十一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验11指导
实验题目:编写子程序(第234页)
指导老师:于庆梅
实验任务:
编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母。
实验报告要求把源代码放入word中,并且复制它的一个应用举例结果。
子程序名称:letterc
功能:以0结尾的字符串中的小写字母转变成大写字母。
参数:
ds:si指向字符串的首地址
返回:无
assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
mov ax,datasg
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 21h
letterc:
codesg ends
end begin
提示:利用比较指令cmp和转移指令,判断字符在a——z之间,即ASCII码在61H——7AH之间,才进行转换。
assume cs:codesg,ds:datasg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0 datasg ends
codesg segment
begin:
mov ax,datasg
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 21h
letterc:
push cx
push si
mov ch,0
s: mov cl,[si]
jcxz ok
cmp cl,61h
jb s0
cmp cl,7aH
ja s0
and cl,11011111b
mov [si],cl
s0:
inc si
jmp short s
ok:
pop si
pop cx
ret
codesg ends
end begin