> But the assembly code will always tell you the truth. Is this really still the case with modern caching branch-predicting microcode processors? [1] From what I know (which is little), there is quite a way between assembly and what a processor will actually execute. [1] just throwing around buzzwords
The faker's guide to reading x86 assembly language
41–49 of 49 posts
Re: The faker's guide to reading x86 assembly language
#42Re: The faker's guide to reading x86 assembly language
#43Earlier quoted context omitted.
I've heard nothing but good things about this course which should do the trick: https://www.nand2tetris.org It on my todo list at some point, maybe this year or next.
I completed the hardware part last month. It's definitely accessible and serves as a good entry project for interested students. However it glossed over a lot of things (that even I'm aware of) so I decided to up the game and find other projects/lectures. The CPU project of University of Tokyo seems interesting but is too tough for whoever just completes nand2tetris. Some bridge project is needed.
Re: The faker's guide to reading x86 assembly language
#44This was a nice read, but I was hoping for something one step above this. When I was writing an emulator, I spent so much time looking at 8080(ish) code that I began to see constructs for bigger concepts. Like, “oh you’re setting up and running a loop over some subroutine X times.” “You’re checking if a certain math expression equals a certain value before continuing.” Etc. I imagine an Assembly reader sees these thi…
Re: The faker's guide to reading x86 assembly language
#45"not so hard" .. until your compiler decide to vectorize your loop then good luck!
Re: The faker's guide to reading x86 assembly language
#46Yes, the simple opcodes are the most-used, and this was one of the ideas floating around that helped inspire RISC, but be careful how you figure out which opcodes are different. For example, mov in x86 is extremely polysemous: It can be move from register to register, load register with data from RAM, store register contents out to RAM, store a constant out to RAM, and even perform ALU operations and then use the res…
Re: The faker's guide to reading x86 assembly language
#47In my opinion, most articles, lessons, etc. that purport to teach assembly miss the forest for the trees. This is a good article for someone wanting to learn "what assembly _is_" - but I have yet to see an article targeted to programmers that would teach "how do I practically use this." One can learn the vague syntax complexities, etc. - maybe even write a Hello World..but without having real-world exposure of what c…
Re: The faker's guide to reading x86 assembly language
#48I dabbed into reverse engineering a while ago (and probably will dive deeper into it seriously later) and realized it is not particularly difficult to recognize constructs in assembly code, but only for simple code such as examples. Once they go up one level, say start using a lot of win32 api, it then makes the business a lot more confusing. That was why I decided to drop the study temporarily. I wanted to figure ou…
Re: The faker's guide to reading x86 assembly language
#49Earlier quoted context omitted.
I completed the hardware part last month. It's definitely accessible and serves as a good entry project for interested students. However it glossed over a lot of things (that even I'm aware of) so I decided to up the game and find other projects/lectures. The CPU project of University of Tokyo seems interesting but is too tough for whoever just completes nand2tetris. Some bridge project is needed.
I came across this on HN a month or two back, might be the kind of project you're looking for? https://539kernel.com