红烧甲鱼 发表于 2018-9-26 19:27:54

大家帮我看看问题出在哪里

本帖最后由 红烧甲鱼 于 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,
          andal,11011111b
          mov ,al
          inc si
          loop s1          
          
          add bx,16
          pop cx
          loop s2
          
          mov ax,4c00h
          int 21h
          
code ends

end start

erh 发表于 2018-9-27 11:13:47

          al,                            ;这里加3干嘛?把3删掉
          andal,11011111b
          mov ,al                     ; ;这里加3干嘛?把3删掉

红烧甲鱼 发表于 2018-9-27 15:08:43

erh 发表于 2018-9-27 11:13
al,                            ;这里加3干嘛?把3删掉
          andal,11011111b
         ...

我的天,明白了,我在定义数据段的时候出问题了,没在’......‘引号数据前面加上3个空格,太粗心了
页: [1]
查看完整版本: 大家帮我看看问题出在哪里