LATEST POSTS - page 5


x86-64 TUTORIAL: INPUT OUTPUT FUNCTIONS

Here are some print functions for strings, integers and newline characters. There is also a function for reading an integer. All the code is in NASM’s syntax. The macros prologue and epilogue, are used to save space and avoid repetitiveness.

NOTE: Remember that the registers RBP, RBX and R12-R15 need to be saved across function calls.

Read More
Posted on by Vikas N. Kumar.

x86-64 TUTORIAL: HELLO WORLD!

Below is a program that prints "Hello World!" on screen followed by a newline character. In the data section we first store the string "Hello World!", followed by the newline character which has an ASCII value of 10 and the NULL character or the value 0. The NULL character is used here because of the way we calculate the string length. There are other ways to calculate the string length as well, by using NASM’s directives like equ, but we shall use that in another sample program.

Read More
Posted on by Vikas N. Kumar.

x86-64 TUTORIAL: CPUID

The x86 and x86-64 instruction sets have an instruction called CPUID that tells the program who made the CPU and what features it may have. We try to get that info using x86-64 assembly in this tutorial.

Read More
Posted on by Vikas N. Kumar.

x86-64 TUTORIAL: CALLING CONVENTIONS

SYSTEM CALLS

System calls are made using the syscall instruction on an x86-64 version of GNU/Linux as opposed to using int 0x80 on an x86 version of GNU/Linux. All programs are in long mode. Depending on the type of GNU/Linux system you use, the list of system calls can be found in /usr/include/asm/unistd_64.h for Debian-based systems or in /usr/include/asm-x86_64/unistd.h for Slackware, etc.

Read More
Posted on by Vikas N. Kumar.

x86-64 TUTORIAL: ASSEMBLERS

2020 UPDATE

In 2006, there was only YASM that supported both the 32-bit x86 and the 64-bit x86-64 or amd64 instruction set. NASM only supported the 32-bit x86 instruction set. Today, in 2020, NASM also suppports the 64-bit x86-64 instruction set. Both YASM and NASM are under active development, with YASM being fully cross-platform and working with Visual Studio 2019 as of this update in August 2020. Wherever possible, we have made sure that the programs run under both YASM and NASM.

Read More
Posted on by Vikas N. Kumar.

Pages: Newer  |  2  |  3  |  4  |  5  |  6  |  Older
SUPPORT THIS SITE
Donate DOGECOIN to DBevjMg3fd8C5oxZbV8sFpAffo6Tas1s8Q. DBevjMg3fd8C5oxZbV8sFpAffo6Tas1s8Q Donate BITCOIN to 19hrWWw1dPvBE1wVPfCnH8LqnUwsT3NsHW. 19hrWWw1dPvBE1wVPfCnH8LqnUwsT3NsHW
As an Amazon Associate I earn from qualifying purchases.