鱼C论坛

 找回密码
 立即注册
查看: 1831|回复: 4

大家帮忙看看这个程序哪里有问题,谢谢了

[复制链接]
发表于 2012-7-25 11:42:25 | 显示全部楼层 |阅读模式
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 cx,6
    mov bx,0
     
   s: mov al,[bx+3]
    and al,11011111b
    add bx,16
    loop s
    mov ax,4c00h
    int 21h
codesg ends
end start
这是视频中的一个题目, 要求是把数据中第一个字母改为大写,但是不知道为什么用debug检查之后,没有修改成功,请各位高手帮忙看看。。

最佳答案

查看完整内容

无语,你AND完后没把它放进内存,-D当然看不到了。。。你放在寄存器没放进内存,一直在覆盖 我刚刚也没注意,后面DEBUG,看见一开始是066H,and完后是044h,值是正确的,为什么不显示?我才想起来我刚刚查看的是内存不是寄存器。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-25 11:42:26 | 显示全部楼层
本帖最后由 メ㊣逆ご帅☆ 于 2012-7-25 13:26 编辑

无语,你AND完后没把它放进内存,-D当然看不到了。。。你放在寄存器没放进内存,一直在覆盖
我刚刚也没注意,后面DEBUG,看见一开始是066H,and完后是044h,值是正确的,为什么不显示?我才想起来我刚刚查看的是内存不是寄存器。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-25 13:47:14 | 显示全部楼层
楼上正解
and al,11011111b
这句完了,你没把al的值放回内存,就bx+16,跳到下一行了。内存当然没变化咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-25 15:50:32 | 显示全部楼层

谢谢了,我看下面一个视频的时候突然发现了这个问题,现在解决了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-25 15:51:09 | 显示全部楼层
メ㊣逆ご帅☆ 发表于 2012-7-25 13:25
无语,你AND完后没把它放进内存,-D当然看不到了。。。你放在寄存器没放进内存,一直在覆盖
我刚刚也没注意 ...

谢谢了,我看下面一个视频的时候突然发现了这个问题,现在解决了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-19 18:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表