Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Professional assembly language

    Professional assembly language

    Richard Blum · 2005

    Unlike high-level languages such as Java and C++, assembly language is much closer to the machine code that actually runs computers; it's used to create programs or modules that are very fast and efficient, as well as in hacking exploits and reverse engineering Covering assembly language in the Pentium microprocessor environment, this code-intensive guide shows programmers how to create stand-alone assembly language programs as well as how to incorporate assembly language libraries or routines into existing high-level applications Demonstrates how to manipulate data, incorporate advanced functions and libraries, and maximize application performance Examples use C as a high-level language, Linux as the development environment, and GNU tools for assembling, compiling, linking, and debugging

    Programming
    Open LibraryAmazon
    Stats for nerds
    5recommend
    7mentions
    6people
    2009–2023years
    71% recommend29% neutral

    Mentions per year

    20092011201320152017201920212023

    What Hacker News says

    1. harry8Jul 2022
      Books on my shelf that got /more/ generally useful with a bunch of years passing since I bought them.

      Simply Scheme, Structure and Interpretation of Computer Programs, How to Design Programs.

      They're a hundred times easier to get going with the exercises using racket than the incredible faff it used to be when purchased, especially with SICP.

      Maybe if the book is good enough the wider community supports it?

      Then there's K&R C, K&Pike, Richard Stevens, of which any edition from the last 20 years is still pretty useful. Although there must be something better than K&R for C by now - the example programming style can be improved upon while still appreciating its considerable strengths. In that general direction Van Der Linden's "Expert C" and "The C Puzzle Book" remain fantastic books to grok C and low level programming.

      The Wrox "Professional Assembly Language" is both out of date (32 bit x86) and still about your best bet, update it and play with the x86-64 abi docs, a download of the intel optimisation manual, "Hackers Delight" and http://aggregate.org/MAGIC/

      thread
    2. hvsOct 2013
      From the ground up? Well, there's always the source:

      http://www.intel.com/content/www/us/en/processors/architectu...

      For learning assembly? For MASM I enjoyed this book years ago:

      http://www.amazon.com/Assembly-Language-Intel-Based-Computer...

      For GAS something like this might be more appropriate:

      http://www.amazon.com/Professional-Assembly-Language-Richard...

      Patterson & Hennessy is used a lot in colleges to teach low-level architecture and assembly:

      http://www.amazon.com/Computer-Architecture-Fifth-Quantitati...

      thread
    3. robomartinNov 2012
      OK, if you don't have any real experience in low-level embedded coding (relevant to device drivers), RTOS or OS design in general, file systems, data structures, algorithms, interfaces, etc. And, if you have "hobby level" experience with Assembler, C and C++. And, if your intent is to write a desktop OS, from the ground up, without making use of existing technologies, drivers, file systems, memory management, POSIX, etc. Here's a list of books that could be considered required reading before you can really start to write specifications and code. Pick twenty of these and that might be a good start.

      In no particular order:

      1- http://www.amazon.com/C-Programming-Language-2nd-Edition/dp/...

      2- http://www.amazon.com/The-Answer-Book-Solutions-Programming/...

      3- http://www.amazon.com/The-Standard-Library-P-J-Plauger/dp/01...

      4- http://www.amazon.com/C-Traps-Pitfalls-Andrew-Koenig/dp/0201...

      5- http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp...

      6- http://www.amazon.com/Data-Structures-In-Noel-Kalicharan/dp/...

      7- http://www.amazon.com/Data-Structures-Using-Aaron-Tenenbaum/...

      8- http://www.amazon.com/Mastering-Algorithms-C-Kyle-Loudon/dp/...

      9- http://www.amazon.com/Code-Complete-Practical-Handbook-Const...

      10- http://www.amazon.com/Design-Patterns-Elements-Reusable-Obje...

      11- http://www.amazon.com/The-Mythical-Man-Month-Engineering-Ann...

      12- http://www.amazon.com/The-Programming-Language-4th-Edition/d...

      13- http://www.amazon.com/The-Standard-Library-Tutorial-Referenc...

      14- http://www.amazon.com/API-Design-C-Martin-Reddy/dp/012385003...

      15- http://www.amazon.com/The-Linux-Programming-Interface-Handbo...

      16- http://www.amazon.com/Computer-Systems-Programmers-Perspecti...

      17- http://www.amazon.com/System-Programming-Unix-Adam-Hoover/dp...

      18- http://www.amazon.com/Memory-Programming-Concept-Frantisek-F...

      19- http://www.amazon.com/Memory-Management-Implementations-Prog...

      20- http://www.amazon.com/UNIX-Filesystems-Evolution-Design-Impl...

      21- http://www.amazon.com/PCI-System-Architecture-4th-Edition/dp...

      22- http://www.amazon.com/Universal-Serial-System-Architecture-E...

      23- http://www.amazon.com/Introduction-PCI-Express-Hardware-Deve...

      24- http://www.amazon.com/Serial-Storage-Architecture-Applicatio...

      25- http://www.amazon.com/SATA-Storage-Technology-Serial-ATA/dp/...

      26- http://www.amazon.com/Beyond-BIOS-Developing-Extensible-Inte...

      27- http://www.amazon.com/Professional-Assembly-Language-Program...

      28- http://www.amazon.com/Linux-Kernel-Development-3rd-Edition/d...

      29- http://www.amazon.com/Version-Control-Git-collaborative-deve...

      30- http://www.amazon.com/Embedded-Software-Primer-David-Simon/d...

      31- http://www.amazon.com/Programming-Embedded-Systems-C/dp/1565...

      32- http://www.amazon.com/Making-Embedded-Systems-Patterns-Softw...

      33- http://www.amazon.com/Operating-System-Concepts-Abraham-Silb...

      34- http://www.amazon.com/Performance-Preemptive-Multitasking-Mi...

      35- http://www.amazon.com/Design-Operating-System-Prentice-Hall-...

      36- http://www.amazon.com/Unix-Network-Programming-Sockets-Netwo...

      37- http://www.amazon.com/TCP-Illustrated-Volume-Addison-Wesley-...

      38- http://www.amazon.com/TCP-IP-Illustrated-Vol-Implementation/...

      39- http://www.amazon.com/TCP-Illustrated-Vol-Transactions-Proto...

      40- http://www.amazon.com/User-Interface-Design-Programmers-Spol...

      41- http://www.amazon.com/Designing-Interfaces-Jenifer-Tidwell/d...

      42- http://www.amazon.com/Designing-Interfaces-Jenifer-Tidwell/d...

      43- http://www.amazon.com/Programming-POSIX-Threads-David-Butenh...

      44- http://www.intel.com/p/en_US/embedded/hwsw/software/hd-gma#d...

      45- http://www.intel.com/content/www/us/en/processors/architectu...

      46- http://www.intel.com/p/en_US/embedded/hwsw/hardware/core-b75...

      47- http://www.hdmi.org/index.aspx

      48- http://en.wikipedia.org/wiki/Digital_Visual_Interface

      49- http://www.amazon.com/Essential-Device-Drivers-Sreekrishnan-...

      50- http://www.amazon.com/Making-Embedded-Systems-Patterns-Softw...

      51- http://www.amazon.com/Python-Programming-Introduction-Comput...

      52- http://www.amazon.com/Practical-System-Design-Dominic-Giampa...

      53- http://www.amazon.com/File-Systems-Structures-Thomas-Harbron...

      54- ...well, I'll stop here.

      Of course, the equivalent knowledge can be obtained by trial-and-error, which would take longer and might result in costly errors and imperfect design. The greater danger here is that a sole developer, without the feedback and interaction of even a small group of capable and experienced programmers could simply burn a lot of time repeating the mistakes made by those who have already trenched that territory.

      If the goal is to write a small RTOS on a small but nicely-featured microcontroller, then the C books and the uC/OS book might be a good shove in the right direction. Things start getting complicated if you need to write such things as a full USB stack, PCIe subsystem, graphics drivers, etc.

      thread
    4. pan69Oct 2009
      OK. Depending on your programming background you're facing a steep learning curve. That's why I recommend a bottom up approach for you.

      First read "Code" by Charles Petzold. This book will get you "in the mood" and in the right frame of mind: http://www.amazon.com/Code-Language-Computer-Hardware-Softwa...

      Then I suggest you pick up a good book on Assembler. This might be a good choice: http://www.amazon.com/Professional-Assembly-Language-Program...

      Start writing some drivers for Linux. Like a memdrive or something. Do it all in Assembler! Oh, you need to read other books on how to do this...

      Then pick up the K&R book on C. Now write your memdrive driver in C.

      That should get you started. I think it will take you at least up to two years before you're passed the learning curve and to be comfortable with this level of programming.

      Oh, you need to be willing to do it for the love of it because it's highly unlikely that you will make a living using these sort of technologies (nowadays).

      Good luck!

      PS: I miss the old days...

      thread
    5. pfedorOct 2009
      I recently decided I wanted to learn assembly language. So far I haven't started but I spent an hour or two perusing books on assembly language on Amazon, reading product descriptions and users' reviews, and I decided to start from this one: http://www.amazon.com/Professional-Assembly-Language-Program...

      The reasons I chose it are

      (1) It's introductory, i.e., a good first book for a complete noob. (2) It's very Linux-centric. Most good books on assembly language assume you use Windows or even DOS it seems. (3) One of the reviews says, "you will get a good workout using the gdb debugger." Sounds like fun.

      thread
    6. harry8Jan 2023
      Yes - it is one way to do it and it will work and be reasonably efficient. Everyone[1] who knows x86-64 asm today learned 32 bit first. You still have 32 bit instructions, and 16 bit, and 8 bit. The instructions will translate. You get more registers. You need to update the function and syscall calling conventions. There's no reason there can't be "learn x64 asm" books but there aren't many last I looked, but maybe someone can link us up to show how wrong I am?

      https://wiki.osdev.org/Calling_Conventions

      Richard Blum [2] after Dunteman.

      [1] At a reasonable level of approximation.

      [2] https://www.wiley.com/en-us/Professional+Assembly+Language-p...

      thread

    Related

    Cover of The art of Assembly language
    2008–2026

    The art of Assembly language

    Randall Hyde
    18 recommend · 24
    Cover of Assembly Language Step-by-step
    2010–2026

    Assembly Language Step-by-step

    Jeff Duntemann
    19 recommend · 33
    Cover of Code
    2008–2026

    Code

    Charles Petzold
    243 recommend · 385
    Cover of The C Programming Language
    2007–2026

    The C Programming Language

    Brian W. Kernighan
    246 recommend · 604
    Cover of Code Complete
    2007–2026

    Code Complete

    Steve McConnell
    393 recommend · 894
    Cover of The Pragmatic Programmer
    2007–2026

    The Pragmatic Programmer

    Andy Hunt
    353 recommend · 700
    Cover of Assembly language for the PC
    2009–2021

    Assembly language for the PC

    John Socha
    recommend · 3
    2
    Cover of Zen of assembly language
    2010–2025

    Zen of assembly language

    Michael Abrash
    6 recommend · 15