经典汇编语言书籍是否不使用x86?

8

我正在寻找详细介绍汇编编程原理且不以x86为目标架构的文本。我没有找到最近的类似书籍,但我希望在20世纪70年代和80年代有一些好的书籍,当时整个应用程序仍然使用汇编语言编写。所使用的架构也应该是比较干净的设计之一,例如6502或VAX。


3
6502是一种干净的设计???哑然失笑。 - anon
3
嗯,它比8080更干净:] - Mick
11个回答

9

3

这并不是一本经典的书(最初出版于90年代),但我从Patterson和Hennessy的《计算机组成与设计:硬件/软件接口》(ISBN:0123706068)中学习了MIPS汇编语言。这本书并不严格讲解汇编语言,而是一本计算机体系结构教材。但MIPS是一种相当干净的架构。

虽然我想如果您在寻找经典著作,您可能正在寻找深入探讨的内容。


3

3
我还会查看6809和68000芯片组汇编,以基于我以前在汇编语言中编程的“更干净的设计”为基础。
进一步说,我实际上发现IBM 360/670汇编集相当容易编码。具体的文本 - 如果您想对寄存器管理等有很好的基础,请查找一些旧的教科书。我可能在某个角落的架子上有一本,有机会时我会去找一下。
不确定为什么,但我不喜欢老Xerox PC中的Z80,因为它很麻烦。

1
TI msp430是一种非常好的架构,第一次看到它时让我想起了pdp11。至于书籍,我不知道,我开始写了一本但从未完成...也许不是你想要的那种书。

1

我在学校使用了这本书。它是关于Motorola 68000的。

我还在网上找到了免费的ARM汇编编程书。


1

我怀疑它是否还在印刷中,但是我1977年上大学的计算机科学课使用了CDC Cyber,这是Seymour Cray的架构之一。(天哪!它在亚马逊上!)实际上,它是一个相当不错的汇编语言。它包括一个称为微型的独特功能,类似于宏,但更灵活,可用于字符串操作,例如在大约三行源代码中创建符号label1label999

实际上,在那个时候,整个应用程序都很少用汇编语言编写。我知道有一个文本编辑器是用汇编语言编写的,操作系统的很大部分也是,但很少有应用程序。

除此之外,我不记得有任何好的汇编语言书籍了。但是我的接触很有限,因为第二门计算机科学课程使用了新的Motorola 6800,并且只有一些杂乱无章的笔记记录。后来我们在Unix v6上使用C语言,但没有要求编写汇编语言,只有少数练习需要阅读和理解PDP-11汇编语言,特别是对于内核阅读课程,尽管98%的内核是用C语言编写的。

经过所有这些接触,我了解了足够多的CPU和汇编器,以至于我很少需要更多的制造商处理器架构参考和汇编器,除了iNtel处理器。一个大挑战是DEC的RSX线程编译器输出语言,它完全由一系列汇编宏组成。但是大多数处理器都很容易理解和编程,包括Texas Instruments 9900、Motorola 68000和68010、Z80、6502、VAX 750以及TMS 16016/32032。

iNtel家族的处理器非常难以理解,包括8086和8047/8052家族。高度不正交且充满奇怪的模式:为什么可以直接交换AXBX,但不能交换DSES?特别是在80386推出后,在保护模式下加载段寄存器会导致巨大的时钟周期惩罚。然后还有奇怪的段控制伪指令、段类和代码定位器——链接后的目标代码的后处理。很多奇怪而笨拙的工具。


1

了解流行的微控制器,例如Atmel AVR系列。这是汇编程序设计仍然是热门话题的地方。有很多书籍可以教你如何编程这些设备,还有原型系统,可以让你构建一些非常酷的小玩意儿。

Atmel AVR微控制器具有清晰的架构,ARM处理器也是如此。避免使用Microchip PIC设备,因为它们使用分页内存。您需要一个具有线性地址空间的微控制器。


0

我认为关于20世纪70年代和80年代处理器的书籍市场很小,你可能只会找到制造商的文档(如果有的话)。

我相信大部分都被丢进了垃圾填埋区,但是也许有些被业余爱好者保存了下来。

从Motorola、MOS Technology、Digital Equipment Corporation等公司中搜索PDF格式的存档资料可能是值得的。


0

Chris Torrence 最近对 Robert Wagner 的 Assembly Lines 进行了各种修正。这对我开始入门非常有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接