Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Any sources for learning assembly programming in Windows?

Tags:

assembly

I would like to learn Assembly Programming for Windows. But I am having some problems to found material for learning. All the material I see don't give enough code to program (they show just snippets), are too old, or are just theory.

like image 379
Victor Avatar asked Jun 09 '11 21:06

Victor


2 Answers

For a long time, the 'standard' tutorial beginners start with for Windows assembly programming is Iczelion's tutorial. Also for Windows assembler programming, the best forum (IMO) to get started is probably MASM32. It has a very active community which is very welcoming and helpful to newcomers and beginners. It sort of depends which particular flavour of assembler you want to learn but IMO, for Windows MASM32 has the best userbase (both in terms of community and resources around) for beginners.

You mention you want to learn RCE (reverse code engineering) also. A very common starting place for reversing on Windows is lena151's tutorials which potentially is also a nice start if you already know assembler conceptually from having done Linux assembler programming.

like image 108
Mike Kwan Avatar answered Oct 24 '22 11:10

Mike Kwan


Most assembly language programming you would do, especially in a full-OS environment like Windows, will just be snippets anyway (as opposed to a 100% assembly program). The easiest way to get started is to write a C program as a test harness and have it call your assembly language functions. Here's a simple example:

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;
}

Build and run (on my Mac with clang; modify for your compiler on windows):

$ clang -o example example.c asm.s
$ ./example 
12 + 6 = 18
like image 42
Carl Norum Avatar answered Oct 24 '22 12:10

Carl Norum