首页 > 解决方案 > 使用 MASM 时,“r”后缀如何对应浮点数?

问题描述

使用 MASM 时,我找不到有关如何以浮点十六进制格式化值的信息。例如:使用“r”后缀时,十进制值 50.1 等于多少?

另外根据我拥有的 MASM 文档:

浮点值不能是立即值。如果这是真的,那么下面的说明在 MASM 中应该是错误的,但 MASM 组装它们时没有错误:

    mov eax,1r ;What is "1r" = in decimal
    mov eax,42ae0000r

MASM 将它们组装如下:

    B8 0000005C     mov eax,1r
    B8 19B6A492     mov eax,42ae0000r

同样来自测试:

当汇编以下指令时:

    mov eax,1.2r

MASM 给出此错误:

    error A2050: real or BCD number not allowed

带有“r”后缀的值不能有“.”。在里面。如果使用“r”后缀。这个对吗?

从这个例子中,如果一个值被允许是一个立即数并且有一个“r”后缀,其中没有逗号,那么它不是一个十六进制浮点值。那是什么?

标签: assemblyfloating-pointmasmmasm32

解决方案


推荐阅读