【发布时间】:2023-04-02 08:10:01
【问题描述】:
上下文:
- 组装
- 气体
- x86_64
我的组件有点生锈了,我试图让它再次变得更好。
显示意图的 C 代码:
void ask_me(int * data){
(*data)++;
}
这是故意愚蠢的,但符合上下文。
我的工作程序集:
_ask_me:
addq $1, (%rdi)
ret
问题:
我想使用lea 指令作为培训。
但我无法让它工作:
_ask_me:
leaq 1(%rdi), %rdi
ret
最差:
_ask_me:
movq (%rdi), %rcx
leaq 1(%rcx), %rdi
ret
你能提醒我怎么做吗?
谢谢
【问题讨论】:
标签: assembly x86-64 att pointer-arithmetic