0

这是我的代码。如果我将二进制值的大小减半为 32 位,它可以工作,但是一旦我尝试 33 位或更高位,我就会得到“错误 A2071:初始化程序幅度对于指定大小而言太大”

这是我的代码:

.data

.code
    ASM_ADD proc
        mov rax, 1111111111111111111111111111111111111111111111111111111111111111b
        mov rbx, 1
        
        add rax, rbx
        ret
    ASM_ADD endp
end

据我所知,rax 是一个 64 位寄存器,如果我使用这个二进制数的实际数字表示(即 18,446,744,073,709,551,615 = 2^64 - 1),那么它可以工作......但如果我尝试使用 33 或更多实际位值,程序不会汇编

有谁知道如何解决这一问题?

谢谢

4

0 回答 0