The new Xbox One home console from Microsoft is designed to increase the hardware power that developers and players can use and updates... The purpose of this video is to demonstrate a basic installation of Kali Linux from Offensive Security in a new Virtual Machine guest... | This DVD5 ISO image file contains the security updates for Windows released on Windows Update on May 14, 2013. The image does not... A standards organization has created a boot environment for tablets and PCs that could potentially run a 64-bit version of Windows RT. |
A standards organization has created a boot environment for tablets and PCs that could potentially run a 64-bit version of Windows RT. In this video we will install VMware vSphere vCenter Server 5.1.0b using the Simple Install method on Windows Server 2003 R2 X64 SP2 | Big thank you to all who've sent in Imogen plugins, they're excellent, Keep em' coming folks! This tutorial we'll look at some of the... In this tute we'll look at coding a C++ algorithm to negate a 128bpp image. This will be a benchmark to beat for the ASM versions we'll... |
The purpose of this video is to demonstrate a basic installation of Kali Linux from Offensive Security in a new Virtual Machine guest... Today, I had to install the Java plugin for 64bit Firefox on CentOS 6.4. The procedure wasn’t too bad, but it wasn’t exactly... | In this tute we'll get to coding some little ASM algorithms. First we have to look at how parameters will be passed from C++.
Today we'll look at integer data types, bits, bytes, words and all that. We'll also look at the general purpose register set. I didn't... |
Monday, 28 May 2012 08:33
I've become fascinated with x64 code recently, and have taken on a quest to learn about it. There's a fair amount of information on the net, but there isn't nearly as much for x64 as for x86 code. Some of the sources I've found were wishy-washy, too, since they were created before or shortly after the rules were agreed upon. I have found very little in the way of explaining the performance considerations that are not immediately apparent and would come as a surprise to x86 experts.
If you're here, I'm sure you're just as interested as I am about it. let me tell you what I know…
What is an ABI? - ABI stands for Application Binary Interface. It's a set of rules that describe what happens when a function is called in your program, and answers questions like how to handle parameters and the stack for a function call, what registers (if any) are special, how big data types are…those sorts of things.
These are the rules that the compiler guys follow when they're determining the correct assembly to use for some bit of code. There are a lot of rules in the x64 ABI, but the rules that are most open to interpretation make up what's known as the calling convention.
