diff --git a/index.xml b/index.xml index 1b66468..acf9350 100644 --- a/index.xml +++ b/index.xml @@ -63,7 +63,7 @@ </span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">&#34;Hello, World!&#34;</span>); </span></span><span style="display:flex;"><span>} </span></span></code></pre></div><p>这是一个最简单的&quot;Hello, World&quot;C程序,计算机在存储它时通过ASCII标准将其中的字符与换行转化为ASCII码,并以ASCII码的形式储存。存储在计算机中的这段程序其实只是一串有顺序的二进制位,这些二进制位的每八位组成一个&quot;字节&quot;,每个字节都代表其中的一个字符。 -其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令etc……。</p> +其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令、etc。</p> <h2 class="relative group">程序被其他程序翻译为各种形式 diff --git a/posts/csapp1/index.html b/posts/csapp1/index.html index 0c3723a..d96f363 100644 --- a/posts/csapp1/index.html +++ b/posts/csapp1/index.html @@ -69,7 +69,7 @@ @@ -461,7 +461,7 @@

信息=二进制位+语境 printf("Hello, World!"); }

这是一个最简单的"Hello, World"C程序,计算机在存储它时通过ASCII标准将其中的字符与换行转化为ASCII码,并以ASCII码的形式储存。存储在计算机中的这段程序其实只是一串有顺序的二进制位,这些二进制位的每八位组成一个"字节",每个字节都代表其中的一个字符。 -其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令etc……。

+其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令、etc。

程序被其他程序翻译为各种形式 @@ -496,17 +496,98 @@

程序被其他程序翻译为各种形式 -

编译原理很难通晓(但你仍然有必要去学) -
+

编译原理值得了解 +
# + style="text-decoration-line: none !important;" href="#%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86%E5%80%BC%E5%BE%97%E4%BA%86%E8%A7%A3" aria-label="">#

-

(还没写完……持续更新中……)

+

理解编译原理有利于:

+
    +
  1. 优化程序性能
  2. +
  3. 理解链接错误
  4. +
  5. 避免安全漏洞
  6. +
+ + +

处理器读取并处理内存中存储的指令 +
+ + + # + + +

+

我们可以利用Shell来运行我们编写的Hello程序。Shell是一种命令行解释程序,这意味着它接受命令行输入并执行。我们在Shell中输入./hello, Shell会检测到hello是一个可执行文件,并将它加载到内存中后执行。程序执行完成后,Shell会继续请求命令行输入。

+ + +

计算机系统的硬件组成 +
+ + + # + + +

+ + +

总线 +
+ + + # + + +

+

总线是沿着整个系统运行的一系列电子线路的集合。总线可以将信息位在元件之间来回传输, 总线一般所传输的信息位数是固定的, 这些字节的组块被称作“语词”, “语词”长度一般为4字节(也就是32位)或8字节(也就是64位)

+ + +

I/O 设备 +
+ + + # + + +

+

I/O设备以输入或输出的方式建立计算机与外界的连接。I/O设备通过控制器或者适配器连接到I/O总线。控制器是主板上的专门芯片,适配器则是一些连接在主板上的设备。

+ + +

主内存 +
+ + + # + + +

+

主内存是一种临时储存设备,在处理器执行程序时会将程序与对应的数据暂存进内存。内存一般采用DRAM(Dynamic Random Access Memory,动态随机访问存储)技术。在软件层面内存会被抽象为一系列线性的数组,并从0开始编号,这一编码被称为内存地址。

+ + +

处理器 +
+ + + # + + +

diff --git a/posts/index.xml b/posts/index.xml index e376e45..d450944 100644 --- a/posts/index.xml +++ b/posts/index.xml @@ -63,7 +63,7 @@ </span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">&#34;Hello, World!&#34;</span>); </span></span><span style="display:flex;"><span>} </span></span></code></pre></div><p>这是一个最简单的&quot;Hello, World&quot;C程序,计算机在存储它时通过ASCII标准将其中的字符与换行转化为ASCII码,并以ASCII码的形式储存。存储在计算机中的这段程序其实只是一串有顺序的二进制位,这些二进制位的每八位组成一个&quot;字节&quot;,每个字节都代表其中的一个字符。 -其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令etc……。</p> +其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令、etc。</p> <h2 class="relative group">程序被其他程序翻译为各种形式