小写变大写问题 求高手解决
本帖最后由 china0008 于 2011-3-6 22:06 编辑在学习第7章 问题7.6的时候,我遇到了一个问题。望高手解决哈。。。
那题,我自己编的代码编译之后,看到的效果是小写变成了大写。但是,是我需要的的大写字母的前一个大写字母(f变F,可我得到的是E)
然后我就在编码里的AL加上1,然后就可以了。
按照书本上给的代码编译是一样的结果,这个到底是怎么回事啊?
我的代码如下:
assume cs:codesg,ds:datasg
datasg segment
db '1. file '
db '2. edit '
db '3. search '
db '4. view '
db '5. options '
db '6. help '
datasg ends
codesg segment
start:mov ax,datasg
mov ds,ax
mov bx,0
mov cx,6
s:mov al,
add al,11011111B
add al,1B ;mov ,al
add bx,10H
loop s
mov ax,4c00H
int 21H
codesg ends
end start
哈哈,我debug 了一遍你的程序。仔细观察了al 的值。发现每执行完一次
mov al,
add al,11011111B
add al,1B
mov ,al
都能准确得到F,E,S,V,O,H相对应的 ASCII值。
这完全是巧合呢?还是经过你特殊计算?正如你所说的,没有add al,1b这条指令就不能得到正确的
ASCII 的值。如果完全属于巧合,那概率会是多少呢?呵呵
书上的代码应该是
mov al,
and al,11011111b
mov ,al
注意是and 不是 add 楼主 代码的第20行的 add不是应该用 and 吗? 回复 3# china0008
呵呵,谢谢哈,没有仔细,抱歉抱歉 就是太粗心了......... 小心使得万年船:lol
页:
[1]