在我的64位Intel机器下面代码工作:
mov rdi, 1 << 40
add r10, rdi
Run Code Online (Sandbox Code Playgroud)
而这相当于一个产生警告并且不起作用:
add r10, 1 << 40
Run Code Online (Sandbox Code Playgroud)
我应该坚持1号还是我错过了什么?这种行为似乎很尴尬.
代码nr 2产生的警告:
warning: signed dword immediate exceeds bounds
Run Code Online (Sandbox Code Playgroud)
有一个操作码mov r/m64, imm64,但add r/m64, imm64x86-64指令集中没有操作码.换句话说:你不能使用64位立即数操作add,但是你可以使用mov(有许多指令没有imm64变量;你可以查看英特尔软件开发人员手册中的指令集参考来检查哪些指令有这样的指令变体,但没有).
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |