|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
编写一个程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母
名称: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:
- mov cx, 0
- mov cl, byte ptr ds:[si] ;把ds:[si]中的数据传给cl数据库中定位的是db所以按照字节传送
- cmp cl, 64 ;ACII码表上的10进位64是@
- ja one_1 ;大于并且不等于,限定跳转的范围,只有ASCII码64以后的才会产生跳转
-
- jcxz end_1 ;如果ds:[si]中传给cx的是0那么此程序结束跳转到最后ret
- ok:
- inc si
- jmp short letterc
- one_1:
- and cl, 11011111b ;转换cl中的数据用and 1和1转换等于1 0和1转换等于0 0和0等于0
- mov byte ptr ds:[si], cl ;把cl中的数据再次传给数据段datasg中替换掉小写字母
- jmp short ok
- end_1:
- ret
-
-
- codesg ends
- end begin
复制代码 |
|