在汇编中明确输入一个十进制数字

samuelbrody1249

我发现自己经常无法立即识别数字是十进制还是十六进制(如果十六进制数字没有前缀或字母)。例如,上一个问题中有一个类似的数字0000000000400078,但不确定是哪个数字

有没有一种方法可以在x86_64中明确指定带前缀的十进制数字?例如:

 mov     %rsp,       %rbp
 movb    $0x16,      -1(%rbp)
 movb    $0d22       -2(%rbp) # <-- something like this
 movb    $0b10110,   -3(%rbp)

我知道这样做是movb $22, -2(%rbx)可行的,但是有没有一种方法可以明确地给它加上前缀/后缀,以便我们知道它是十进制的?

彼得·科德斯

不,不是针对GAS。https://sourceware.org/binutils/docs/as/Integers.html -十进制整数与非零数字开始,接着是零个或多个数字(0123456789)。

调试器或objdump输出中屏幕上的十六进制数字有时会省略一个0x,例如0000000000400078十六进制。您必须从上下文中知道地址几乎总是以十六进制打印。

在asm源代码中,规则是简单,明确且不依赖上下文的。在GAS源代码中,如果看不到显式的基本替代,则为十进制。这适用于$123立即数,123(%reg)位移,.set xyz, 123汇编程序指令操作数,.long 123伪指令,以将字节/双字发送到输出中,以及适用于GAS允许您编写数字文字的所有其他上下文。

它也适用于GAS支持的所有ISA-请注意,GAS手册的这一部分属于一个特定的ISA。对于x86-64,它当然适用于两种.intel_syntax noprefix模式,也适用于AT&T模式。


不同的汇编器可能支持以不同的基数写数字的不同方式,至少对于非十进制的基数这个答案是针对GAS(GNU汇编器)的。

有一些汇编程序,特别是讨厌的过时DOS debug.exe,其中每个数字文字都被当作十六进制。debug.exe根本不支持十进制。正如@old_timer喜欢指出的那样,汇编语法是由汇编程序而不是ISA定义

如果没有显式修饰符,大多数x86汇编器(NASM,MASM,GAS,Go-asm)默认为十进制。如果需要,有些可能具有显式十进制语法,但GAS却没有。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将任何十进制数字四舍五入到下一个十进制数字

来自分类Dev

获取第一个不为0的十进制数字的位置

来自分类Dev

COBOL取消最后一个数字,同时将两个十进制数字相加

来自分类Dev

除法运算中,除法运算产生的结果与Python的最后一个十进制数字不同,结果与常规计算不同

来自分类Dev

如何在C ++中打印最多6个十进制数字的数字?

来自分类Dev

如何在C中输入一个带有0和十进制的数字并做正弦值?

来自分类Dev

哪些单精度浮点数需要9个有效十进制数字才能明确表示十进制?

来自分类Dev

用于分解30个十进制数字的算法

来自分类Dev

自动舍入得到2个十进制数字

来自分类Dev

难以删除十进制数字中的零值?

来自分类Dev

bash中十进制数字的比较

来自分类Dev

在 Excel 图表中显示十进制数字

来自分类Dev

检查字符串中的两个十进制数字

来自分类Dev

如何在Java中将一个双精度数字点分隔成两个十进制数字?

来自分类Dev

十进制数字逗号样式

来自分类Dev

Java舍入十进制数字

来自分类Dev

Android TextWatcher十进制数字

来自分类Dev

jQuery:动画十进制数字

来自分类Dev

设置十进制数字格式

来自分类Dev

JavaScript舍入十进制数字

来自分类Dev

另一个十进制linq中包含的十进制

来自分类Dev

正则表达式:将所有实数四舍五入到一个文本文件中(保留15个十进制数字)

来自分类Dev

如何从PHP中的十进制数字中删除最后一位数字

来自分类Dev

如何从PHP中的十进制数字中删除最后一位数字

来自分类Dev

如何将html输入限制为两位十进制的正十进制数字?

来自分类Dev

没有十进制模块,浮点数中是否可以有超过15个十进制数字?

来自分类Dev

在Python中截断一个十进制值

来自分类Dev

在C中存储一个长十进制

来自分类Dev

在C中存储一个长十进制

Related 相关文章

  1. 1

    将任何十进制数字四舍五入到下一个十进制数字

  2. 2

    获取第一个不为0的十进制数字的位置

  3. 3

    COBOL取消最后一个数字,同时将两个十进制数字相加

  4. 4

    除法运算中,除法运算产生的结果与Python的最后一个十进制数字不同,结果与常规计算不同

  5. 5

    如何在C ++中打印最多6个十进制数字的数字?

  6. 6

    如何在C中输入一个带有0和十进制的数字并做正弦值?

  7. 7

    哪些单精度浮点数需要9个有效十进制数字才能明确表示十进制?

  8. 8

    用于分解30个十进制数字的算法

  9. 9

    自动舍入得到2个十进制数字

  10. 10

    难以删除十进制数字中的零值?

  11. 11

    bash中十进制数字的比较

  12. 12

    在 Excel 图表中显示十进制数字

  13. 13

    检查字符串中的两个十进制数字

  14. 14

    如何在Java中将一个双精度数字点分隔成两个十进制数字?

  15. 15

    十进制数字逗号样式

  16. 16

    Java舍入十进制数字

  17. 17

    Android TextWatcher十进制数字

  18. 18

    jQuery:动画十进制数字

  19. 19

    设置十进制数字格式

  20. 20

    JavaScript舍入十进制数字

  21. 21

    另一个十进制linq中包含的十进制

  22. 22

    正则表达式:将所有实数四舍五入到一个文本文件中(保留15个十进制数字)

  23. 23

    如何从PHP中的十进制数字中删除最后一位数字

  24. 24

    如何从PHP中的十进制数字中删除最后一位数字

  25. 25

    如何将html输入限制为两位十进制的正十进制数字?

  26. 26

    没有十进制模块,浮点数中是否可以有超过15个十进制数字?

  27. 27

    在Python中截断一个十进制值

  28. 28

    在C中存储一个长十进制

  29. 29

    在C中存储一个长十进制

热门标签

归档