问题是这样的:
假设变量<IfModule mod_headers.c>
Header set X-XSS-Protection: "1; mode=block"
Header set X-Content-Type-Options nosniff
Header always set Strict-Transport-Security "max-age=16070400"
</IfModule>
和sp
的声明类型为
dp
现在src_t类型是unsigned char,而dest_t类型是long。我需要使用适当的一对数据移动指令来实现该操作
src_t *sp;
dest_t *dp;
*dp = (dest_t) *sp;
答案是这样的
*dp = (dest_t) *sp;
我的答案是这样的
movzbl (%rdi),%eax
movzq %rax,(%rsi)
我很困惑为什么使用movzbq (%rdi),%rax
movzq %rax,(%rsi)
而不是movezbl
。如果movzbq
中的高位字节有值,它们会影响{{1}}中的结果,并且结果不等于%rax
。
感谢您的回答。