王爽汇编语言 实验11 学习笔记

王爽汇编语言 实验11 个人学习笔记

编写一个子程序

名称:letter
功能:将以0结尾的字符串中的小写字母转变为大写字母
参数:ds:si指向字符串首地址

思路:

题目要求只将小写字母变为大写,剩余其他不变,而26个小写字母在ASCII码中对应的是97-122的十进制数,所以每次判断一个字节前先比较这个字节的数是否在这一范围内,然后通过小写字母二进制第五位上是1,大写字母第五位上是0的区别,通过与运算将字母变大写

代码:


assume cs:codesg

datasg segment
  db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends

codesg segment
  begin:mov ax,datasgt
        mov ds,ax
		mov si,0
		call letterc

		mov ax,4c00h
		int 21h

letterc:push si

        mov ch,0
a:		mov cl,[si]
		jcxz ok
		cmp cl,97
		jb s
		cmp cl,122
		ja s
		and cl,11011111b
		mov [si],cl
s:      inc si
        jmp short a

ok:		pop si
		ret
		

codesg ends
end begin

结果展示:

王爽汇编语言 实验11 学习笔记_第1张图片

你可能感兴趣的:(汇编笔记,编程语言)