现在是64位的时代了,可惜不会64汇编怎么行...可惜本菜水平实在有限……大牛勿看了……
下个MASM64,OK很好~里面有很多例子
不过俺先看看64位哪里改变了吧
#include <stdio.h>
int main()
{
000000013F181010 40 57 push rdi
000000013F181012 48 83 EC 20 sub rsp,20h
000000013F181016 48 8B FC mov rdi,rsp
000000013F181019 B9 08 00 00 00 mov ecx,8
000000013F18101E B8 CC CC CC CC mov eax,0CCCCCCCCh
000000013F181023 F3 AB rep stos dword ptr [rdi]
printf("Please enter the password\n");
000000013F181025 48 8D 0D D4 7F 00 00 lea rcx,[$xdatasym+0DA8h (013F189000h)]
000000013F18102C FF 15 0E A5 00 00 call qword ptr [__imp_printf (013F18B540h)]
return 0;
000000013F181032 33 C0 xor eax,eax
}
000000013F181034 48 83 C4 20 add rsp,20h
000000013F181038 5F pop rdi
000000013F181039 C3

本文介绍了64位汇编语言的基础知识,特别是Win64环境下,增加了8个通用寄存器(R8-R15)和128位XMM寄存器。在64位程序中,32位寄存器扩展为64位,并介绍了如何使用RIP寄存器。此外,32位的_stdcall在64位中变成了_fastcall,导致性能提升。通过实例展示了64位调用约定,如MessageBoxA函数的参数传递方式。
最低0.47元/天 解锁文章
2883

被折叠的 条评论
为什么被折叠?



