鱼C论坛

 找回密码
 立即注册
查看: 1885|回复: 2

[已解决]大家帮我看看问题出在哪里

[复制链接]
发表于 2018-9-26 19:27:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 红烧甲鱼 于 2018-9-26 19:30 编辑

这个代码的作用是修改数据段的前4个字母为大写字母,但是我的代码执行后却是从第4个开始修改,没看明白是怎么回事
assume cs:code,ds:data,ss:stack

data segment

         db 'display         '
         db 'brows           '
         db 'replace         '
         db 'modify          '

data ends

stack segment
    
        dw 0,0,0,0,0,0,0,0

stack ends

code segment

start:mov ax,stack
      mov ss,ax
          mov sp,16
          mov ax,data
          mov ds,ax
          
          mov bx,0         
          mov cx,4
   
   s2:push cx
      mov si,0          
          mov cx,4          
  
   s1:mov al,[bx+si+3]
          and  al,11011111b
          mov [bx+si+3],al
          inc si
          loop s1          
          
          add bx,16
          pop cx
          loop s2
          
          mov ax,4c00h
          int 21h
          
code ends

end start
最佳答案
2018-9-27 11:13:47
          al,[bx+si+3]                            ;这里加3干嘛?把3删掉
          and  al,11011111b
          mov [bx+si+3],al                     ; ;这里加3干嘛?把3删掉

执行后

执行后

执行前

执行前
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-27 11:13:47 | 显示全部楼层    本楼为最佳答案   
          al,[bx+si+3]                            ;这里加3干嘛?把3删掉
          and  al,11011111b
          mov [bx+si+3],al                     ; ;这里加3干嘛?把3删掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-27 15:08:43 | 显示全部楼层
erh 发表于 2018-9-27 11:13
al,                            ;这里加3干嘛?把3删掉
          and  al,11011111b
         ...

我的天,明白了,我在定义数据段的时候出问题了,没在’......‘引号数据前面加上3个空格,太粗心了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-7 20:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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