qq_38423382
qq_38423382
2017-12-05 11:30
采纳率: 97.3%
浏览 1.1k
已采纳

关于汇编语言的$问题。。。。。。。

图片说明
这里写$和$-num为啥不一样啊,$不是表示偏移量吗
图片说明
我通过运行这句话观察CX得出来的

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • Cz_ZERO
    Cz_ZERO 2017-12-06 08:07
    已采纳

    $在字符串里面表示到这结束吧。你后面应该是要用到num的长度。你给个$,虽然是表示当前偏移量,但是你不能保证num是从0开始的。那啥,可能是编译器的问题。我$和$-num跑出来的结果是一样的。

    点赞 评论
  • Isabellaxp
    Isabellaxp 2017-12-05 13:22

    为什么感觉和我学的单片机的汇编不同

    点赞 评论
  • weixin_40322587
    Lnrd_L 2017-12-05 14:59

    $是当前偏移地址,实地址模式下应该就是当前地址,$-num表示num的长度,这里不一样估计是因为数据段不是从内存0开始放数据吧,我也刚接触汇编语言,一点见解希望没有说错

    点赞 评论
  • axellaw
    弗洛伊德弟子 2017-12-05 17:38

    $是当前偏移地址,equ是宏,相当于字符串替换,所以MOV CX,count这句代码得到的count值是这句代码本身与num之间的便宜量,而不是count与num之间的偏移量,count是宏,不是内存地址定义,是不存在的,你需要这样写
    count DW $-num
    MOV CX, count
    这样CX就能获取到正确的值

    点赞 评论

相关推荐