unRheal Newbie cheater
Reputation: 0
Joined: 28 Nov 2008 Posts: 10
|
Posted: Sun Nov 30, 2008 4:53 pm Post subject: Re: What do all the three letter things mean? |
|
|
Hey.. I would have replied yesterday, but who knew that you have to be manually activated to get into this forum. I wonder why not do it like everyone else does it - a la automatique...(?)
However...
They're not all 3 letters - they are essentially the names of the machine instructions that you use to tell the CPU what to do, as in.. assembly language programming. From a quick skim through the instruction summary in Intel's 64 and IA-32 Architectures Software Developer's Manual Volume 1 - I'd say there's *about* 500 of them, give or take.
Also, a lot of them are similar, so it's not quite as bad as all that. For example, the manual starts with Data Transfer Instructions, and it shows 30 variations of the "Conditional move" instruction... CMOVE/CMOVZ, CMOVNE/CMOVENZ, CMOVA/CMOVNBE, etc, etc...
> add(this is an example, i know it means add)
Ya, add is add - but specifically, it's integer add, there's also SUB, FADD, FSUB, (Floating-point add & sub) and lots more.
MOV is Move, and as above with the conditional moves, there's variations.
CMP is your basic Compare - also plus variations, including CMPXCHG and CMPXCHG8B - Compare and exchange, and Compare and exchange 8 bytes, respectively.
JMP is the good ol' Jump, which falls under "Control Transfer Instructions" - of which there's at least a couple dozen - A few being JE, JNE, JA, JAE - Jump if equal, Jump if not equal, Jump if above, and Jump if above or equal, respectively.
> and these ones:
> eax
> ebx
> ecx
These ones are the CPU's general-purpose registers - which are basically just little single memory locations that you use to hold data when doing various operations and also include EDX, EDI, ESI, EBP, ESP, and the EFLAGS register. These are 32 bits each, and internal to the CPU and can thus be accessed without the delay that you get when accessing regular system RAM.
From the manual:
| Quote: | | "The general-purpose instructions preform basic data movement, arithmetic, logic, program flow, and string operations that programmers commonly use to write application and system software to run on Intel 64 and IA-32 processors. They operate on data contained in memory, in the general-purpose registers (EAX, EBX, ECX, EDX, EDI, ESI, EBP, and ESP) and in the EFLAGS register. They also operate on address information contained in memory, the general-purpose registers, and the segment registers (CS, DS, SS, ES, FS, and GS)." |
> and stuff like that... not limited to just those i apologize if this answer is
> really obvious, im new to everything like this >.<"
Not much is really obvious unless you know it already. Also, if this stuff were obvious, they (Intel) wouldn't have written a number of volumes describing what they are and how to use them... and that's just sort of the bare (dry) facts... using them well is another few books, give or take, plus lots of experience.
The good thing is that you can easily download the PDF's of these books and have them for reference any time... and you can also get the actual printed manuals if you like.
There's a few volumes of the "Intel 64 and IA-32 Architectures Software Developer's Manual":
Volume 1: Basic Architecture
Volume 2A: Instruction Set Reference, A-M
Volume 2B: Instruction Set Reference, N-Z
Volume 3A: System Programming Guide
Volume 3B: System Programming Guide
Then there's:
Intel 64 and IA-32 Architectures Optimization Reference Manual
.. and a few others, on paging and caches, on the 64 Architecture x2APIC spec. and one on documentation changes of these volumes between versions.
As I say, you can just download them if you want, right from Intel, at:
www_intel_com/products/processor/manuals/
(I was going to make it a link, but apparently I'm not allowed to post URL's yet!)
Hope that helps - let me know if you have any other questions... and I'll help if I can (no guarantees, I'm no Pro, just for fun)
Cheers |
|