《编译原理》阅读笔记:p18

《编译原理》学习第 3 天,p18总结,总计 14页。

一、技术总结

1.assembler

(1)计算机结构

要想学习汇编的时候更好的理解,要先了解计算机的结构,以下是本人学习汇编时总结的一张图,每当学习汇编时,看到"计数器","解码器","寄存器","数据总线"等概念时,就知道说的这些东西在哪个位置。

(2)assembly code(汇编代码)

p17,Some compilers produce assembly code, as in (1.5), that is passed to an assembler for further processing.

MOVF id3, R2
MULF #60.0, R2
MOVF id2, R1
ADDF R2, R1
MOVF R1,id1

上面汇编代码对应的代码为:

temp1 := id3 * 60.0
id1: = id2 + temp1

这里提到了汇编代码,所以我们在阅读本书时需要有一点汇编语言基础:

(3)指令(instruction)

如MOVF, F表示Floating-point numbers。注意,指令有两种语法,分别是Intel 语法和AT&T语法。支持Intel语法的主要是Windows系统,支持AT&T语法的主要是Unix系统。

Intel 语法:mov dest, src

AT&T 语法:mov src, dest

参考:https://en.wikipedia.org/wiki/X86_assembly_language

p15, The first and second operands of each instruction specify a source and destination, respectively...This code moves the contents of address id3 into register2, then multiplies it with the real-constant 60.0.------书里使用的是AT&T语法,本书作者之一Alfred V.Aho与AT&T的关系:Alfred V.Aho is head of the Computation Principle Research Department at AT&T Bell Laboratories in Murray Hill New Jersey。

(4)#号

表示intermediate data。

2.machine code

0001 01 00 00000000 
0011 01 10 00000010
0010 01 00 00000100 

如上所示称为machine code, 当我们看到"machine code"这个词的时候我们要想到上面的代码。

二、其它

进入六月以来,每天都忙于加班,疲于奔命,阅读《编译原理》几乎无进度,然而内心觉得这并不是我想要的,因为长此以往,就会停不前,还是要每天学习一些新的东西;二是,自己也不喜欢这样重复的去做相同的事。所以,我又折回来继续看书了。

四、参考资料

1. 编程

(1)Alfred V. Aho,Monica S. Lam,Ravi Sethi,Jeffrey D. Ullman,《编译原理(英文版·第1版)》:https://book.douban.com/subject/5416783/

2. 英语

(1)Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

相关推荐
黎明blooms2 天前
编译原理之基于自动机的词法分析器的设计与实现
c++·算法·编译原理
胡译胡说24 天前
日本中学生创造了一门“类似中文”的编程语言
c++·编译原理
极客代码1 个月前
深入理解C语言:编译原理
c语言·开发语言·性能优化·编译原理·代码优化
_祝你今天愉快1 个月前
使用安卓NDK 交叉编译动态库、静态库基础入门
android·编译原理
胡译胡说1 个月前
还记得十几年前 PHP 那个 0x00+2=4 的 Bug 吗
php·debug·编译原理
喵~来学编程啦1 个月前
【编译原理】编译原理知识点汇总·词法分析器(正则式到NFA、NFA到DFA、DFA最小化)
学习笔记·编译原理
喵~来学编程啦1 个月前
【编译原理】编译原理知识点汇总·概论与文法
学习笔记·编译原理
Trouvaille ~4 个月前
【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略
c++·c++20·编译原理·编译器·类和对象·rvo·nrvo
无名之逆5 个月前
B树和B+树
javascript·数据结构·b树·算法·编译原理·期末速成
嚯呀怪怪怪5 个月前
从零基础学Go(九)——Go的Goroutine
golang·线程·多线程·并发·编译原理·协程·gorountine