繁体   English   中英

汇编语言棘手的内存地址

[英]assembly language tricky memory addresses

我们得到提示(使用 AT&T ASM)

eax      = A

ebx      = B

ecx      = &X

edx      = &Y

我知道 (%eax) 会抓取 A 处内存位置中的数据,但是 (%edx) 会抓取什么? 比如说电话

 movl (%edx), %ebx

movl %eax, (%ecx)

第一次调用是否只是将 %ebx 的当前值替换为 &Y(y 的内存位置),第二次调用是否将内存位置 &X 中的数据替换为值 A?

movl %edx, %eda 操作怎么样? 这是否只是将 &Y 的内存位置移动到 eax 中?

谢谢

从“C”语言的角度来看:

eax      = A

eax 获取 A 值的副本。

ebx      = B

ebx 获取 B 值的副本。

ecx      = &X

ecx 获取 X 的地址(或内存位置)。

edx      = &Y

edx 获取 y 的地址(或内存位置)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM