这是我的代码。如果我将二进制值的大小减半为 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 或更多实际位值,程序不会汇编
有谁知道如何解决这一问题?
谢谢