Thus, the stack frame is made of: the stack parameters, the registers parameters, the return address (which I remind you is a qword) and the local variables. 圆4 assembly uses FASTCALLs as calling convention, meaning it uses registers to pass the first 4 parameters (and then the stack). Here's another figure:Īnd now, the most important things. The new registers go from r8 to r15, and can be accessed in their various bit ranges like this: r8 (qword), r8d (dword), r8w (word), r8b (low byte).Īpplications can still use segments registers as base for addressing, but the 64-bit mode only recognizes three of the old ones (and only two can be used for base address calculations). These old registers can still be accessed in their smaller bit ranges, for instance: rax, eax, ax, ah, al. The old ones we already knew are easy to recognize in their 64-bit form: rax, rbx, rcx, rdx, rsi, rdi, rbp, rsp (and rip if we want to count the instruction pointer). Of course, all general-purpose registers are 64 bits wide. 8 new general-purpose registers (GPRs).What you're going to notice at once is that there are some more registers in the 圆4 syntax: Some stuff I won't even mention, you'll see by yourself that some instructions are no longer in use: for instance, that the lea instruction has completely taken place of the mov offset. Moreover, since this is just a very (but very) brief guide, you'll have to look into the AMD64 documentation for more advanced stuff. I assume the reader is already familiar with x86 assembly, otherwise he won't be able to make heads or tails of this paragraph. In this paragraph I'll try to explain the basics of 圆4 assembly. I tried as hard as possible to separate these two things, because the 圆4 technology already existed under Windows XP, so it was important to me that the reader was given a clear distinction between those things that affect only Vista and those ones which affect both topics. I tried to organize this article in two sections, one about the changes brought us by 圆4 and then by Vista. I just wanted to say that hardware compatibility is no longer an issue like it was one year ago, and by switching to Windows Vista 圆4 you're not taking too much chances. If you didn't know about the certification, don't worry, I'll talk about it later and you'll see that it's still possible to run drivers without it. However, at the moment I write, a lot of applications like virtual drive encrypters don't provide drivers for Vista (since 圆4 versions haven't got a certificate). No certification will be released for x86-only drivers. But, as we know, Windows Vista requires drivers to be certified, and in order to get the certification companies have to supply a 圆4 version of the driver. I moved to 圆4 with XP some months ago and at the time I did I was surprised that I found all the drivers for my devices. This article should be considered a quick upgrade for x86/XP developers.Īt the time I write this article I've been using Windows Vista for a month and its official release is scheduled for January 30th (so, in another month). Also, I won't talk about some obvious matters of the 圆4 architecture, like the fact that applications can now access a larger memory range etc. This is just a general overview on certain topics, if you want to learn more, then you should really consider turning to specific guides. ![]() the User-Mode Driver Framework, and I'm very sorry for that). I tried to focus on some important aspects, but it goes without saying it that I had to cut out a lot (e.g. Writing an article like this is always uneasy, because there's plenty to talk about, but on the other hand it's an article, not a book. This is an introduction to Windows Vista and the 圆4 architecture. Download SmallWPF.zip from here - 374 KB.Download Communication.zip from here - 22 KB.Download MyRegFilter.zip from here - 9 KB.Download RandTest.zip from here - 101 KB.Download privileges.zip from here - 8 KB.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |