实验十一 编写子程序
答:
分析:
题目要求编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母,那么我们我们需要处理的无非有两点:
1)从这个字符串中找出小写字母:可以通过条件判断指令根据小写字母的取值范围确定
2)然后把这些小写字母转变成大写字母,而这在前面的章节中已经很明确的知道了:只需要把小写字母的第五位置0就可以
实现:
下面我们直接给出设计的源程序:
程序见11.asm
【注:
熟悉掌握条件判断指令以及相关的标志寄存器处理操作非常重要:
1,比如我们可以通过test指令结合跳转指令判断某个数(二进制形式)的第一位是否为1来判断它是否为偶数,如果为1,那么不是偶数 test al,00000001b ;test指令详细使用规则请见其他的参数资料 jz iseven ……
2,可以通过比较指令cmp,结合跳转指令限定某些数的范围,例如下面的程序段可以控制输入的数的范围为0~9 again: mov ah,1 ;注:这里al中将得到的是字符的ACSII码值,所以下面判断的时候要加30h int 21h cmp al,0+30h jb again cmp al,9+30h ja again ……
当然还有更多的广泛的用途,请大家自己在学习的过程中不断总结。 】