[英]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.