OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Mar 28, 2024 3:18 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 11 posts ] 
Author Message
 Post subject: OSDev Series: IA32 machine language
PostPosted: Mon Dec 19, 2011 1:37 pm 
Offline
Member
Member
User avatar

Joined: Sun Feb 18, 2007 7:28 pm
Posts: 1564
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

_________________
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}


Last edited by neon on Mon Dec 19, 2011 2:04 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Mon Dec 19, 2011 1:59 pm 
Offline
Member
Member

Joined: Fri Apr 04, 2008 6:43 am
Posts: 357
neon 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 ();


I have error 404 on that link


Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Mon Dec 19, 2011 3:11 pm 
Offline
Member
Member

Joined: Wed Nov 09, 2011 2:21 am
Posts: 81
Location: Behind a keyboard located in The Netherlands
Neon it's a great guide a little to basic for me personally but it does serve it's purpose.


Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Mon Dec 19, 2011 7:10 pm 
Offline
Member
Member
User avatar

Joined: Thu Jul 26, 2007 1:53 am
Posts: 395
Nice work!

_________________
Fudge - Simplicity, clarity and speed.
http://github.com/Jezze/fudge/


Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Tue Dec 20, 2011 3:41 am 
Offline
Member
Member

Joined: Thu Aug 11, 2011 12:04 am
Posts: 125
Location: Watching You
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


Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Tue Dec 20, 2011 5:10 am 
Offline
Member
Member
User avatar

Joined: Sun Oct 22, 2006 7:01 am
Posts: 2646
Location: Devon, UK
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


Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Tue Dec 20, 2011 5:20 am 
Offline
Member
Member
User avatar

Joined: Wed Oct 18, 2006 3:45 am
Posts: 9301
Location: On the balcony, where I can actually keep 1½m distance
Nice work.

Some things did strike me as odd though:

Quote:
Machine language, also known as (...) byte code
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.

Quote:
IA64
That is the formal designation for Itanium. You might want to replace that with x86-64.

Quote:
The LOCK prefix can only be used (...)
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.

Quote:
rex.w
Warning: "rex" used but not defined :wink:. You might want to give a brief introduction to the difference between legacy and long mode before using it that way.

Quote:
The prefix bytes are identified in 4 classes
repeat(1) segment(2) address(3) operand(4) REX...5? :-k

_________________
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]


Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Tue Dec 20, 2011 8:26 am 
Offline
Member
Member
User avatar

Joined: Sun Feb 18, 2007 7:28 pm
Posts: 1564
Hello everyone,

I appreciate the feedback. :D

@Combuster: Thanks for the suggestions :D 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();}


Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Tue Dec 20, 2011 8:58 am 
Offline
Member
Member
User avatar

Joined: Fri Mar 07, 2008 5:36 pm
Posts: 2111
Location: Bucharest, Romania
stlw wrote:
I have error 404 on that link


Same 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 ]


Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Tue Dec 20, 2011 9:45 am 
Offline
Member
Member
User avatar

Joined: Wed Oct 18, 2006 3:45 am
Posts: 9301
Location: On the balcony, where I can actually keep 1½m distance
neon wrote:
REX isn't a separate prefix class so we treat it that way.
That just wasn't actually self-contradicting so we treat the article that way... :wink:
(Obfuscations aside, either treat REX as a separate entity throughout or as yet another prefix throughout, but do not mix both)

Quote:
Same here. It should end in html, not htm.
Didn't know you take more than six hours for a post :D

_________________
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]


Top
 Profile  
 
 Post subject: Re: OSDev Series: IA32 machine language
PostPosted: Tue Dec 20, 2011 10:31 am 
Offline
Member
Member
User avatar

Joined: Fri Mar 07, 2008 5:36 pm
Posts: 2111
Location: Bucharest, Romania
Combuster wrote:
Quote:
Same here. It should end in html, not htm.
Didn't know you take more than six hours for a post :D


Um, apparently I clicked on the link in stlw's quote.

_________________
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 11 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 35 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group