书嘛,就分两类。一类搁书架上吃灰,一类拿来垫桌角。《微机原理与接口技术简明教程》这本,摆明了是前者。可你一旦真把它摊在桌面上,好家伙,它倒先拿放大镜把你给盘了。刚翻开头几页,汇编指令、寄存器、中断向量、总线时序……一串词儿砸过来,我脑子里直接嗡的一声。真不是书,就是一堆咬死的冷齿轮,专硌牙。本来手头项目催得紧,想着赶紧把底子过一遍,应付差事拉倒。谁承想,硬着头皮啃下去,倒咂摸出点别的味儿。

翻到“中断”那一节,我手指头没忍住,往下滑了滑。书里不绕弯子,话撂得特直白:CPU正闷头干活呢,外头要是递个信号过来,它立马把手里的烂摊子一撂,转头去接那个信号。办妥了,顺着原来的栈,把没干完的活儿再续上。我盯着这几行字发了会儿呆。你说奇不奇怪?咱们天天把“专注力”挂嘴边,好像一门心思往前冲才叫正经人。结果机器倒先一步把门道摸透了。稳当过日子,根本不是死磕,是该断就断。去接住那些突然冒出来的调用。事儿办完,栈里一退,接着往下走。哪是什么死板的逻辑啊,分明是种活法。再看旁边那几张时序图,嘿,居然觉得顺眼多了。

说实话,刚啃“汇编语言程序设计”那几章,我火气蹭蹭往上冒。真没高级语言那些库函数给你兜底。每行代码,都得自己扒着内存地址挪数据。偏移量写偏了半个字节,程序直接卡死;漏条伪指令,编译器报错连个屁都不放,甩你个冷冰冰的 Exit code 1。算了,不跟机器较劲。我把书往桌上一摊,就着那本翻卷边的电路图,一行行地抠。慢慢咂摸出味儿来,我这是在跟个轴到底的倔脾气打交道。它不讲人情,只认死理。你塞给它什么,它就吐回什么。这种愣头青似的实在,反倒让人踏实。现在这世道,事儿太虚,裹着糖衣,剥开里头全是空气。这书倒好,偏把没人瞧见的底层根子,一帧一帧拆给你看。不画大饼。就老老实实指路,这坑怎么踩,那桥怎么搭。

作者王丰编这书,费没费心思,翻两页就知道。那些绕嘴的寻址方式、接口芯片的脾气,尽量往明白里捋。但我得交个底,这书真不讨喜。不跟你扯什么架构大跃进,也不攀最新的芯片制程。就守着 8086 和那堆老接口芯片打转。有阵子我嫌它太“简”了。简到什么程度?连个复杂的异常处理流程,就甩给你一行字。不过转念一想,它本来就没想把你培养成芯片大牛。只盼着你以后真摸到一块板子、敲一段代码时,不至于两眼一抹黑。说句掏心窝子的话,未必人人都得啃这块硬骨头。搞嵌入式、底层驱动的兄弟看着香。普通人真没必要在这上面死磕。它把骨架搭好了,肉,还得你自己长。这份不啰嗦的劲儿,倒把市面上那些虚头巴脑的废话,全给掐断了。

搁下书,外头天都黑透了。屏幕上的光标还在那儿瞎闪,跟书里画的那些时序波形一个德性。我这才回过味来。咱们死磕这些枯燥的原理,压根不是为了死记 8255A 到底有几个端口,也不是为了背下中断向量表怎么排。咱们就是想熬到某天,事情乱成一锅粥、变数满天飞的时候。心里还能顺手拉起一条总线。把那些散沙一样的信息,一点点传回自己的处理器里。机器不喊累。就是不停地寻址、判断、跳转。人大概也这德行吧。只要还能把下一步的地址敲准了。这日子,就总能接着往下过。