Bluff Your Way in x64 Assembler

By Roger Orr

Modern development environments and debuggers enable us to spend much of our time writing and reading source code. This makes the life of a developer much easier and most of the time we can reason about our program solely based on the source code itself.

However, from time to time we need to understand the layers beneath our high level language; for example when debugging a program or a crash.

What sense can we make of a page of assembly language code - and how do we find the most important information easily?

I’ll look at some typical use cases, mainly focussing on 64-bit C++ programs as these are relatively "close to the metal".

  • What instructions are most common, and roughly what do they correspond to?

  • How do I walk the stack to find my caller(s)?

  • Where are my variables hiding?

The intent is to help you in relating the assembly language view of a program to the lines of source code.

(No prior knowledge of assembler is required.)





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.