899599 发表于 2019-3-13 23:44:03

人造人 发表于 2019-3-13 23:36
我大概明白了,我需要研究研究

多谢大神啊,十分感谢了,记得上一年10月也是你帮我,那次其实是vs2017的锅,要创建空项目,那样就能在命令行中实现鼠标点击选择光标位置了。

人造人 发表于 2019-3-13 23:44:38

好了

      .model small
      .stack
      ;这是显示数据中出现多少个1的程序
                        .data
number          dw 0000111100001111B   ;出现问题的地方
db 1, 2, 3, 4, 5, 0ffh
db 11h, 12h, 13h, 14h, 15h, 0ffh
      .code
start:

mov        ax, @data
mov        ds, ax
mov        bx, number
          ;mov bx,0000111100001111B;本来是想写成 mov bx,offset number
      xor dx,dx    ;清零dx
again:          cmp bx,0   ;比较是不是0
      jz done               ;是0就退出循环
      shl bx,1   ;左移1
      adc dl,0   ;加上CF
      jmp again
done:         cmp dl,10    ;比较是不是10
      jb digit         ;不是就加'0'之后显示
      push dx   ;显示'1'
      mov dl,'1'      
      mov ah,2
      int 21h
      pop dx
      sub dl,10
digit:          add dl,'0'
      mov ah,2
      int 21h
      mov ah,4ch
      int 21h
      end start

899599 发表于 2019-3-13 23:51:03

本帖最后由 899599 于 2019-3-13 23:52 编辑

人造人 发表于 2019-3-13 23:44
好了

成功了,是因为ds没有选中data段吗
顿时明白了,看了看之前的helloworld的例子

人造人 发表于 2019-3-13 23:51:18

899599 发表于 2019-3-13 23:51
成功了,是因为ds没有选中data段吗

899599 发表于 2019-3-13 23:53:18

人造人 发表于 2019-3-13 23:51


db 1, 2, 3, 4, 5, 0ffh
db 11h, 12h, 13h, 14h, 15h, 0ffh
这段的作用是?

人造人 发表于 2019-3-13 23:55:19

899599 发表于 2019-3-13 23:53
db 1, 2, 3, 4, 5, 0ffh
db 11h, 12h, 13h, 14h, 15h, 0ffh
这段的作用是?

用来debug的特殊数据,现在已经没用了
^_^

899599 发表于 2019-3-13 23:57:57

人造人 发表于 2019-3-13 23:55
用来debug的特殊数据,现在已经没用了
^_^

真的是太感谢了,我看了两个夜晚了,(书本的源码也是有点错误啊)小细节没注意到,感谢大半夜帮我{:10_266:}{:10_298:}
页: 1 [2]
查看完整版本: 关于寄存器的赋值问题,求大神帮帮忙