OSDev Series: IA32 machine language
OSDev Series: IA32 machine language
Hello everyone,
This is the initial release for the OSDev Series advanced chapter covering IA32 and IA64 machine language. It provides an introduction to machine language topics, instruction encoding, using instruction look-up tables, and some examples of translating instructions. I feel that this might be a good supplemental material to the OSDev Wikis' article as it presents the information in a different way.
We are transitioning to a different writing environment for the series to present a standard formatting method and resolve spelling errors that are present in earlier chapters. Please let me know if there are any formatting oddities.
OSDev Series: IA32 Machine Language
Please let me know if there are any questions or comments.
Thanks,
~Mike ();
*edit: fixed invalid link
This is the initial release for the OSDev Series advanced chapter covering IA32 and IA64 machine language. It provides an introduction to machine language topics, instruction encoding, using instruction look-up tables, and some examples of translating instructions. I feel that this might be a good supplemental material to the OSDev Wikis' article as it presents the information in a different way.
We are transitioning to a different writing environment for the series to present a standard formatting method and resolve spelling errors that are present in earlier chapters. Please let me know if there are any formatting oddities.
OSDev Series: IA32 Machine Language
Please let me know if there are any questions or comments.
Thanks,
~Mike ();
*edit: fixed invalid link
Last edited by neon on Mon Dec 19, 2011 2:04 pm, edited 1 time in total.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
Re: OSDev Series: IA32 machine language
I have error 404 on that linkneon wrote:Hello everyone,
We are transitioning to a different writing environment for the series to present a standard formatting method and resolve spelling errors that are present in earlier chapters. Please let me know if there are any formatting oddities.
OSDev Series: IA32 Machine Language
Please let me know if there are any questions or comments.
Thanks,
~Mike ();
-
- Member
- Posts: 81
- Joined: Wed Nov 09, 2011 2:21 am
- Location: Behind a keyboard located in The Netherlands
Re: OSDev Series: IA32 machine language
Neon it's a great guide a little to basic for me personally but it does serve it's purpose.
Re: OSDev Series: IA32 machine language
Nice work!
Fudge - Simplicity, clarity and speed.
http://github.com/Jezze/fudge/
http://github.com/Jezze/fudge/
Re: OSDev Series: IA32 machine language
Beauty just what I was looking for. Now I can write my own 16bit real mode emulator! ITs probably gonna be the first stop for everybody who wants to write an assembler too!
Get back to work!
Github
Github
Re: OSDev Series: IA32 machine language
Hi,
You've got some nicely done tutorials on there and don't always stick to the stuff that's been done loads of times before! Nice work.
Cheers,
Adam
You've got some nicely done tutorials on there and don't always stick to the stuff that's been done loads of times before! Nice work.
Cheers,
Adam
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: OSDev Series: IA32 machine language
Nice work.
Some things did strike me as odd though:
Some things did strike me as odd though:
Bytecode is generally a term used for non-native binary storage of program code, and is rather out of place as an equivalent term for native code.Machine language, also known as (...) byte code
That is the formal designation for Itanium. You might want to replace that with x86-64.IA64
When the destination is a memory operand and is part of a read-modify-write operation. (in practice, the source being the memory operand is allowed but is normally useless). FOOF bug being a typical example of that.The LOCK prefix can only be used (...)
Warning: "rex" used but not defined . You might want to give a brief introduction to the difference between legacy and long mode before using it that way.rex.w
repeat(1) segment(2) address(3) operand(4) REX...5?The prefix bytes are identified in 4 classes
Re: OSDev Series: IA32 machine language
Hello everyone,
I appreciate the feedback.
@Combuster: Thanks for the suggestions I am not sure what the last point is addressing however. REX isn't a separate prefix class so we treat it that way.
I appreciate the feedback.
@Combuster: Thanks for the suggestions I am not sure what the last point is addressing however. REX isn't a separate prefix class so we treat it that way.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: OSDev Series: IA32 machine language
Same here. It should end in html, not htm.stlw wrote:I have error 404 on that link
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: OSDev Series: IA32 machine language
That just wasn't actually self-contradicting so we treat the article that way...neon wrote:REX isn't a separate prefix class so we treat it that way.
(Obfuscations aside, either treat REX as a separate entity throughout or as yet another prefix throughout, but do not mix both)
Didn't know you take more than six hours for a postSame here. It should end in html, not htm.
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: OSDev Series: IA32 machine language
Um, apparently I clicked on the link in stlw's quote.Combuster wrote:Didn't know you take more than six hours for a postSame here. It should end in html, not htm.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]