|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
感觉自己成功作出【课程设计1】之后,有了很大突破,思路清晰了很多。
实验11也很轻松就做出来了。
不得不说,王爽老师的教材写的真好!
- ;名称:letterc
- ;功能:将以0结尾的字符串的小写字母转变为大写字母
- ;参数:ds:si指向字符串首地址
- ;
- ;思路:取字符
- ; 判断是否位0,
- ; 为0则退出
- ; 非零则判断范围,范围外,则重新取字符
- ; 范围内,则第五位置零 and al,1101 1111,然后再来一遍~
- ;判断字符是否在[61h,7ah]
- 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:mov cl,[si]
- mov ch,0
- jcxz letterc_ret
- cmp cl,61h
- jb next
- cmp cl,7ah
- ja next
- and cl,11011111b
- mov [si],cl
- inc si
- jmp letterc
- next: inc si
- jmp letterc
- letterc_ret: ret
- codesg ends
- end begin
复制代码 |
|