汇编语言(五)——64位编程

本文介绍了AMD和Intel64位处理器环境下,MASM汇编语言的变化。在64位版本中,32位版本的一些指令如`.386`, `.modelflat,stdcall`和`.stack4096`被省略,`PROTO`关键字不再需要参数,`INVOKE`伪指令不再支持,而`LOOP`指令改用RCX作为计数器。这些变化对于理解和编写64位汇编代码至关重要。
摘要由CSDN通过智能技术生成

1.简单了解

AMD 和 Intel 64 位处理器的出现增加了对 64 位编程的兴趣。MASM 支持 64 位代码,所有的 Visual Studio 2012 版本(最终版、高级版和专业版)以及桌面系统的 Visual Studio 2012 Express 都会同步安装 64 位版本的汇编器。 与32 位版本不同之处如下所示:

(1)2 位 AddTwoSum 程序中使用了下列三行代码,而 64 位版本中则没有:

  1. .386
  2. .model flat,stdcall
  3. .stack 4096

(2) 64 位程序中,使用 PROTO 关键字的语句不带参数:

ExitProcess PROTO

32 位版本代码如下:

ExitProcess PROTO,dwExitCode:DWORD(3) 32 位版本则只使用了一条 INVOKE 语句实现同样的功能。64 位 MASM 不支持 INVOKE 伪指令。

(4)64 位模式中,LOOP 指令用 RCX 作为循环计数器。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值