Souhlas, taky si myslím, že jako čtení před usnutím tradiční STL úplně stačí :-) Papírové knihy asi nedoporučím, ale nějaké online čtení snad ano...
Jedno konkrétní téma, které si vybavuji jako post-STL výdobytek, jsou "intrusive containers", dlouho zmiňované v souvislosti s alternativní C++ knihovnou Boost, která se tuším hodně zasloužila o novější verze standardu. (Takový střípek vytržený z kontextu.)
Osobně jsem si taky párkrát pohrál s assemblerem pomocí NASM - hlavně v DOSu a okrajově i pod Windows a v Linuxu. V DOSu tuším jednak nějaký "hello world" hello.com napsaný v čistém NASM, a pak primitivní knihovničky přilepené k projektíkům v djgpp, Borland C++ a možná v Borland Pascalu (ačkoli tam se tuším jednalo o inline assembler). Jsem spíš takový turista, ne že bych tomu rozuměl. Hrál jsem si s tím tu a tam až někdy kolem roku 2010 (moje průmyslová branže je dost retro) a šla mi hlava kolem, co všecko se dá dneska na internetu zjistit. V roce 1992 jsem měl akorát z místní knihovny Kernighan+Ritchie C a ze školy vzácnoct: manuál od Turbo Assembleru - na základě toho prakticky nešlo v DOSu napsat vůbec nic. Tzn. několik prostředí pro DOS, pak Windows, a Linux... každé to prostředí má jiný formát spustitelného bináru (v DOSu .COM a .EXE, Windowsí PE-COFF .EXE, linuxový .ELF) a potažmo jsou v každém prostředí jiné názvy povinných sekcí v ASM zdrojáku, a pokud píšete knihovnu pro "vyšší" jazyk, tak potřebujete znát taky jeho "volací konvenci funkcí". Osobně dávám přednost syntaxi "intel/microsoft" (NASM/TASM/MASM) před AT&T syntaxí (gas, gcc inline asm).
Konkrétně se válely svého času na University of Illinois materiály ke kurzu ECE390.
Jednak knížka "Art of assembly programming". Ta je momentálně živá
zde (ta homepage je ohavná, ale nakonec to asi jde číst).
Druhak "lab manuál" (příručka k cvičením) - pamatuju si HTML podobu, ovšem dneska vidím
zdrojáky ve formátu SGML, s Makefilem který z toho zřejmě umí vyrobit segmentované HTML.
Možná bych obě našel stažené v HTML někde u sebe na disku...
V dnešní době snad už ani nemá cenu se trápit s adresací segment:offset, která byla charakteristická pro 16bitové prostředí (DOS). Tzn. v dobách, kdy "640kB musí stačit každému" a pak se řešila oblast od 640 kB do 1 MB, kde se děly magické věci... Na tohle normální člověk už dneska ani nemá fyzický hardware, na kterém by si s DOSem nějak smysluplně pohrál. Stejně tak nemá asi cenu študovat služby BIOSu a DOSu (SysMan od Lízala a Hrůzy, Ralph Brown's Interrupt List). Před chvilkou jsem ale našel
docela zajímavý NASM Tutorial pro 64bit prostředí.
Naučil jsem se naprosté základy té instrukční sady: jaké to má registry, nějaké to větvení / skoky / smyčky, jsem schopen podle dokumentace stlouct volací konvenci pro rozhraní s vyšším jazykem... a na stará kolena jsem narazil na skutečného pamětníka, který mi na kratičkém příkladu vysvětlil, jaký jsem zelenáč, jak se dalo úsporně programovat, multitaskovat v DOSu, při práci s interrupty třeba implicitně vrátit STI jako vedlejší efekt POPF apod.
Taky bych doporučil, zkusit sehnat IDA PRO (třeba poslední free verzi, tuším to byla 4.9) a zkusit se podívat do střev nějaké reálné binárce. Tam si člověk pocvičí asi hlavně ty volací konvence vyšších jazyků... Bohužel se dostávám k tomu, že při hraní s assemblerem nakonec nezbyde, než si sednout ke kompu a něco si zkoušet napsat nebo disassemblovat apod. Pasivní čtení knihy je dobré fakt spíš na to usnutí :-)