王爽汇编第四版 实验11 编写子程序最佳答案

在这里插入图片描述
assume cs:code,ds:data
data segment
db “Beginner’s All-purazpose Symbolic Instruction Code.”,0 注:(多增加了az小写字母)
data ends
code segment
begin:mov ax,data
mov ds,ax
mov si,0

call letterc

mov si,0 注:(这里得内容是自己加显示到屏幕上用得)
mov ah,0
mov di,0
mov bp,bx
mov ax,10
add bx,16
mul bx
mov bx,ax
add bx,4
mov ax,0b800h
mov es,ax
mov di,0
mov ah,0
call show_str 注:(这里得内容是自己加显示到屏幕上用得结束)

mov ax,4c00h
int 21h

letterc:mov ch,0 注:(这里是书中要求得答案,觉得这样写很简单。用得是loop循环)
s:mov cl,ds:[si]
cmp cl,97 注:(97代表是小写字母a,当然也可以写字符串a)
jb so 注:(小于97证明是大写,就不用转换,跳转至光标处)
cmp cl,127 注:(127代表是小写字母z,当然也可以写字符串z)
ja so 注:(大于127证明不是字母类,就不用转换,跳转至光标处,z是字母最后)
and cl,11011111b 注:(走到这步,就说明是小写字母,转换成大写)
mov ds:[si],cl
so:inc si
inc cx
loop s
ret 注:(循环完了,返回。)

show_str:mov cl,ds:[bp+si] 注:(这里是字符串显示到屏幕。看之前发布文章)
inc si
jcxz ok
mov es:[bx+di],cl
mov cl,2
mov es:[bx+di+1],cl
add di,2
jmp short show_str

ok:ret

code ends
end begin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值