8086 disassembly application. Project done during computer architecture course.
Project is done using nasm(yasm) 64 bit assembly and some c functions to handle input/output.
I have chosen such technologies because I was curious about few topics:
- Learning about asm 64 bit programming
- Compiling assembly executable for windows 64 platform. During the comp architecture course we were doing assembly programming for a ms dos using dosbox. I was interested in making some executable code on a windows 64 platform.
- Linking assembly code to some higher lever programming language library. During the comp architecture course we were using dos api (int) to handle input, output and some other manipulations. For modern platform you could use windows api function calls or libraries from higher level programming languages. I have chosen to use c and use some basic c input output functions.
- Understanding assembly procedure calls on 64 platform and differences between win 64 calls and unix/posix 64 calls.
- Disassembling some simple c applications and exploriing how assembly code is constructed using c compile. To understand how some c function calls are made I have used some super simple c programs that I decompiled using gdb.
This project can be found in github.
Good article on data structure alignment in C