在Windows中学习汇编编程的任何资源?

时间:2011-06-09 21:50:08

标签: assembly

我想学习Windows程序集编程。但是我在找到学习材料方面遇到了一些问题。我看到的所有材料都没有提供足够的代码来编程(它们只显示片段),太旧了,或者只是理论。

3 个答案:

答案 0 :(得分:5)

很长一段时间,'标准'教程初学者从Windows程序集编程开始是Iczelion's tutorial。同样对于Windows汇编程序编程,最好的论坛(IMO)入门可能是MASM32。它有一个非常活跃的社区,对新手和初学者非常热情和乐于助人。它取决于你想要学习哪种汇编程序的特殊风格,但IMO,对于Windows MASM32,对于初学者来说,它拥有最好的用户群(在社区和资源方面)。

你提到你也想学习RCE(反向代码工程)。在Windows上反转的一个非常常见的起点是lena151's tutorials,如果您已经从已经完成Linux汇编程序编程的概念上了解汇编程序,这可能也是一个不错的开始。

答案 1 :(得分:3)

您要做的大多数汇编语言编程,尤其是在像Windows这样的完整操作系统环境中,无论如何都只是片段(而不是100%的汇编程序)。最简单的入门方法是将C程序编写为测试工具并让它调用汇编语言函数。这是一个简单的例子:

asm.s:

  .text
  .globl _asm_add

_asm_add:
  mov %rdi, %rax
  add %rsi, %rax
  ret

example.c:

#include <stdio.h>

int asm_add(int, int);

int main(int argc, char **argv)
{
  int a = 12;
  int b = 6;

  int c = asm_add(a, b);

  printf("%d + %d = %d\n", a, b, c);

  return 0;
}

构建并运行(在我的Mac上使用clang;在Windows上修改编译器):

$ clang -o example example.c asm.s
$ ./example 
12 + 6 = 18

答案 2 :(得分:3)

最重要的是英特尔手册(像AMD这样的其他厂商也会有自己的,但说明非常相似):

http://www.intel.com/products/processor/manuals/

这些都有编程的所有说明,成本和一些指南。