大家帮忙看看这个程序哪里有问题,谢谢了
assume cs:codesg,ds:datasgdatasg 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 cx,6
mov bx,0
s: mov al,
and al,11011111b
add bx,16
loop s
mov ax,4c00h
int 21h
codesg ends
end start
这是视频中的一个题目, 要求是把数据中第一个字母改为大写,但是不知道为什么用debug检查之后,没有修改成功,请各位高手帮忙看看。。
本帖最后由 メ㊣逆ご帅☆ 于 2012-7-25 13:26 编辑
无语,你AND完后没把它放进内存,-D当然看不到了。。。你放在寄存器没放进内存,一直在覆盖
我刚刚也没注意,后面DEBUG,看见一开始是066H,and完后是044h,值是正确的,为什么不显示?我才想起来我刚刚查看的是内存不是寄存器。。。
楼上正解and al,11011111b
这句完了,你没把al的值放回内存,就bx+16,跳到下一行了。内存当然没变化咯 lukelqz 发表于 2012-7-25 13:47 static/image/common/back.gif
楼上正解这句完了,你没把al的值放回内存,就bx+16,跳到下一行了。内存当然没变化咯
谢谢了,我看下面一个视频的时候突然发现了这个问题,现在解决了。 メ㊣逆ご帅☆ 发表于 2012-7-25 13:25 static/image/common/back.gif
无语,你AND完后没把它放进内存,-D当然看不到了。。。你放在寄存器没放进内存,一直在覆盖
我刚刚也没注意 ...
谢谢了,我看下面一个视频的时候突然发现了这个问题,现在解决了。
页:
[1]