`add al,0`和`add al,' 0'`之间的区别是什么?

时间:2018-01-04 19:55:34

标签: assembly instructions

所以我一直在阅读一些用于学习目的的汇编代码,并且遇到了这两条说明:

add    register, value
add    register, 'value'     ; Where the value is now in single quotes

两者之间有什么区别?

如果碰巧发生重复,我会受到抨击。我在这里问过,因为我不确切知道谷歌应该回答这个问题。

1 个答案:

答案 0 :(得分:5)

根据汇编程序的不同,将字符括在单引号中可能会要求编译器使用该字符的ASCII代码,对于数字零,将为十进制的48或十六进制的0x30。我想这就是我的意图。其他汇编程序使用单引号作为语法的一部分,用于指定不同基数的值(例如,对于值为0xA5的十六进制的h'A5');我不确定使用这种表示法的汇编程序是否会解释没有前缀的引号中的值将被解释为:

  1. 默认基础中的数字
  2. 基数为十的数字,即使默认为其他
  3. 字符代码或
  4. 语法错误
  5. 任何这些解释似乎都是合理的,如果某个汇编程序会以某种方式处理它,我就不会感到非常惊讶。

    我猜测代码的意图最有可能是数字零的ASCII值,周围的指令可能会清楚,但没有看到上下文我真的不能确定。