为什么我的用and al,11011111b不能转换大写呢?
;--------------将包含任意字符串中的小写字母 变成大写-------------------assume cs:code
data segment
db 'Beginners Alll_purpose Symbolic Instruction Code .',0
data ends
code segment
main: mov ax,data
mov ds,ax
mov si,0
mov bh,122
mov bl,97
call letterc
mov ax,4c00h
int 21h
letterc:mov ax,0
mov al,
mov cl,al ;用来看是不是到头了
mov ch,0
cmp al,bl
jb s
ja s1
inc si
jcxz ok
s:inc si
jmp short letterc
s1: cmp al,bh
ja s
jb s2
s2: sub al,20h ;为什么用and al,11011111b不好使呢?
mov ,al
inc si
jmp short letterc
ok: ret
code ends
end main 注释都没有,看了半天才知道bh,122和bl,97原来是ASCII码。jcxz ok上面的inc si和jb s2这两个代码多余的.
还有你的jcxz ok上面用了jb和ja,所以程序进入无限循环 api 发表于 2011-12-6 18:53 static/image/common/back.gif
注释都没有,看了半天才知道bh,122和bl,97原来是ASCII码。jcxz ok上面的inc si和jb s2这两个代码多余的.
还 ...
额,我再改改,我的机器是可以正常运行的,就是用al,11011111b的时候不好使, 谢谢给的见意,以后我写东西一写写注释!!! kiven 发表于 2011-12-7 10:23 static/image/common/back.gif
额,我再改改,我的机器是可以正常运行的,就是用al,11011111b的时候不好使, 谢谢给的见意,以后我写东西 ...
你用debug试试你这代码能跳到ok:ret这里吗? api 发表于 2011-12-7 12:16 static/image/common/back.gif
你用debug试试你这代码能跳到ok:ret这里吗?
额 ,这个还没试,我就看结果跟要求一样了,就没调试!一会我看看,谢谢提醒哈~~~:lol
页:
[1]