Posted By: TimP | Jan 24th, 2008 @ 10:59 PM
page 1 of 1
Comments: 2 | Views: 1331
I'm working my way through a computer science degree and despite being exposed to assembly programming, courses tend to focus on RISC architectures like MIPS. While the general ideas of assembly programming are similar across all architectures, the PC market is mostly x86 and I find myself lost in the adx, eax, ebx, movl, etc. soup.

The twist (if you want to call it that) is that I'm not a hardcore assembly nut who thinks that "performance means using assembly" and I avoid assembly programming when I can move up the abstraction chain without significant consequences. However, reading things like Raymond Chen's blog, Understanding the Liunx Kernel, and Windows Internals makes me wish I could follow x86 better.

So with that in mind, I'm looking for a book that explains the x86 assembly language as well as the x86 architecture in general. A list of all the instructions and what they do is not what I'm looking for. I'm curious about the whole architecture from areas such as booting to disk and other device access. I'd also prefer something that's readable as opposed to a link to the Intel or AMD hardware reference manuals. Something reasonably current would be nice. It doesn't have to cover x64 extensions, but I definitely want coverage of i386/32-bit.
RichardRudek
RichardRudek
So what do you expect for nothin'... :P
So have you tried reading the [Intel architecture manuals] ?

Specifically, the Software Developers manuals, volumes 3A and 3B should of interest. But if your completely unfamilar with the x86, then Volume 1 would good too. Obviously volumes 2A and 2B (the instruction set manuals) will be good when you want to drill into the implementation details.

Note: I've never read those manuals, cover-to-cover. So I can't really say how good/accessible they would be to you. When I started, back on the original x86 [1], they didn't exist. So I had to get third-party books. These days, I think the Intel software developers manuals, especially as they're free, would be my choice.

Please tell us what you think of them, though.


[1] This was long before the x86 term was adopted. As in 8088, 80286, etc.

EDIT: Wow, somebody seems to have screwed up the dates in the processor history, in volume 1: the 286 in '82. Don't think so. I started my career in 1985. The first 286 PC I saw was a Compaq in, at the earliest, 1986. So I don't know who's dates they are using. Can't be commerical availability.

EDIT2: OK, searches reveal multiple sources stating that the Compaq Deskpro 286 was introduced in 1985. Thinking back, I might have started at the end of 1984. Funny how a few months, back then, seemed like a year... Expressionless
evildictaitor
evildictaitor
if( !succeed( try() ) ) { while(true) try(); }
RichardRudek wrote:

[1] This was long before the x86 term was adopted. As in 8088, 80286, etc.


*Sigh* Back when whether or not the A20 line was active mattered, cos it gave you 20bits for an address. Those were the days Tongue Out
page 1 of 1
Comments: 2 | Views: 1331
Microsoft Communities