初探下Win64汇编(1)

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

现在是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       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值