`

<<编码的奥秘>>归纳与总结

 
阅读更多

       大学上了<<微机原理>>,<<信息论与编码>>,<<数字电路>>,<<单片机原理与技术>>。一直不能将这些零散的知识贯穿为一个整体,直到看了<<编码的奥秘>>,才有茅塞顿开的感觉。

1.什么是编码?
本书中的编码或代码通常指一种在人和机器之间进行信息转换的系统。 语言,文字,编码都是一种交流的规则。只要我们约定好使用的规则,就能够互相交流了
不同的编码,适合不同的场合。例如,语言不能在纸上存储,所以使用了文字;语言、文字不适合用来在黑夜
中安静地传递消息。只要一种编码可以适用于其他编码 所不能适用的场合,它就是一种有用的编码。

 

2.为什么计算机中使用二进制编码?
最初的计算机是一种机械产品,其中一个部件是电磁继电器(如下图)。一个电磁继电器只能表示2种状态,当环绕电磁继电器的导线中通电时,磁铁被吸附,上部的导线接通。断电后,铁圈失去磁性,在弹簧的作用下,磁铁回到原位,于是电路又断开。


               
 

 

3.布尔代数与逻辑的关系

真理是什么?亚里士多德认为与逻辑有关。亚里士多德的逻辑学的基础是 三段论。最有名的三段论是:
(所有的人都是要死的 ; 苏格拉底是人; 所以,苏格拉底是要死的。 )
在三段论中,两个前提被假设是正确的,并由此推出结论。

 

数学家们对亚里士多德的逻辑理论苦苦思索,试图用数学符号和操作符来表现它。

布尔代数为解决亚里士多德的三段论提供了一个数学方法。再看看这个著名三段论的两个前提: 1.所有的人都是要死的;2. 苏格拉底是人。


我们用字母P代表所有人的集合, M代表要死的东西的集合, S代表苏格拉底。那么,所谓“所有的人都是要死的”意味着什么呢?它其实表示了所有人的集合和所有要死的东西的集合的交集是所有的人这个集合,即:
P×M = P
而 P×M = M 这个式子是错误的,因为要死的东西还包括猫、狗、榆树等等。而“苏格拉底是人”意味着苏格拉底这个集合(非常小)和所有人的集合(很大)的交 集是苏格拉底这个集合:
S×P = S
由于从第一个式子中知道 P = P×M,所以可以把它代入第二个式子,即:
S×(P×M) = S
根据结合律,上式等同于:
(S×P)×M = S
但我们已经知道S×P等于S,所以上式可简化为:
S×M = S
现在计算完毕。这个表达式告诉我们,苏格拉底和所有要死东西的集合的交集是苏格拉底,也就是说苏格拉底是要死的。相反,如果认为 S×M等于0,那么结论就是苏格拉底不会 死。再如果,若 S×M等于M,则能推出的结论就是苏格拉底是唯一会死去的东西,而其他任何东西都是不朽的!  

 

 

4.计算机的硬件如何实现逻辑运算?

    开关,电磁继电器,逻辑门电路都可以。

 

      最开始的时候,人们用开关和电路的串并联进行逻辑运算,示例如下图

      

 

后来人们用电磁继电器来替代开关,因为继电器可以被其他继电器控制而不必用手指控制。

只要将电磁继电器按照一定的方式连接起来,就能构成逻辑门电路,一个"与"门如下图所示:

 



 

5.如何实现加法机?

加法是最基本的算术运算。所以,如果想要建造一台计算机,必须首先知道如何构造一种机器,它可以把两个数加起来。当你解决了这个问题,你会发现加法正是计算机唯一所做的事情。

 

同现代的计算器和计算机比起来,本章构造的加法机庞大、笨重、速度慢且噪声大。但
有意思的是构成它的部件完全是前几章学过的电子设备,如开关、灯泡、电线、电池以及可
构成几种逻辑门的继电器。

 

我们先来看1位的加法是如何通过硬件实现的。计算机采用二进制,所以输入要么是1,要么是0。下图是半加器的原理图,可以计算2个输入的和

0+0=1,不进位

1+0=1,不进位

0+1=1,不进位

1+1=0,进位



 

复杂的计算肯定不能用1个半加器来解决,于是我们想到把8个半加器组合到一起,那么就可以进行更复杂的运算了。原理就是,前一个全加器的进位输出是后一个全加器的进位输入。接下去的每一列数都以这种方式连接。 第八个灯泡和最后一对开关连到最后一个全加器上,连接方式如下图所示: 这里最后的进位输出连到第九个灯泡上。这样,8个全加器就构造成功了。 如下图所示:

 



 

 

6.如何用8位加法机构造更复杂的16位加法机呢?


 

 

7.如何利用加法机实现减法?

根据微机原理中所学到的知识,加法机只要增加一个求补数的的电路就可以完成减法运算了。所以,在电路中,就是增加8个反向器。


 

但是这个电路对所有数都求反,我们只需要在做减法的时候才求反,于是我们需要改进一下。
 



 
 

 

8.触发器的原理是什么,有什么用?

原理下图所示,触发器可以保存信息

 



 

 

. 闭合上面的开关使灯泡点亮,当再断开时,灯泡仍然亮着。
. 闭合下面的开关使灯泡熄灭,当再断开时,灯泡仍然不亮。

 

根据触发器的功能,我们将8个触发器组合到一起,就组成了8位锁存器



 

9.如何用加法机和锁存器实现累加功能呢?



 

将8位加法器的输出保存到8位锁存器,再将8位锁存器的输出通过2-1选择器连接到加法器,这样就实现了连续的运算操作。

 

10.存储器的基本原理



 这种锁存器就是RAM,可以写入/读取数据,将多个这样的存储器集成起来,就可以构成64KB存储器,如下图所示:


 


 11.如何用开关操作存储器呢?

利用控制面板来操作所有的存储器—写入数据到存储器或验证写入的数据—将更加先
进。这种控制面板用 1 6个开关来表示地址, 8个开关来表示需要输入存储器的 8位数据, 8个灯
泡来显示8位数据,再用一个开关来表示写入信号,如下图所示:



 12.如何将RAM存储器连接到累加器上?



 

这样,我们将需要运算的数据先存放到RAM存储器上,那么就能自动进行计算了。

加入有100个数相加,我们将数据存到0000H-0063H上,通过控制面板,整个计算过程就自动运行了。

 

 13.如何让加法器自动工作?

假设我们希望先将3个数加在一起,然后另外2个数相加,,最后再把另外3个数相加,这8个数在存储器中的位置如下图所示:

要做加法,需先从存储器中传 送一个字节到累加器中,这个操作叫作装载。第二项所要执行的操作是把存储器中的 一个字节 到累加器中。第三项是从累加器中取出结果,保存到存储器中。最后, 需要有一些方法使自动加法器停止工作。

详细说来,让自动加法器所做的工作如下所示:
. 把地址0 0 0 0 h中的数装载到累加器中
. 把地址0 0 0 1 h中的数加到累加器中
. 把地址0 0 0 2 h中的数加到累加器中
. 把累加器中的数保存到地址 0 0 0 3 h中
. 把地址0 0 0 4 h中的数装载到累加器中
. 把地址0 0 0 5 h中的数加到累加器中
. 把累加器中的数保存到地址 0 0 0 6 h中
. 把地址0 0 0 7 h中的数装载到累加器中
. 把地址0 0 0 8 h中的数加到累加器中
. 把地址0 0 0 9 h中的数加到累加器中
. 把累加器中的数保存到地址 0 0 0 A h中
. 停止自动加法器的工作
 

有时我们也想直接把存储器中的数装载到累加器中或者把累加器中的数保存到存储器中。在所有事情都完成以后,我们还想让自动加法器停下来以便检查 R A M阵列中的内容。怎样完成这些工作呢?

 

12中组装的计算机,只能按部就班的执行累加操作,现在,为了让计算机更灵活的执行命令,.可以用指令编码来代表计算机的4个操作(加载,加,停止,保存),于是可以用1个RAM存储指令,1个RAM存储数据,如下图:



 

 

但是这种指令和数据分开存储的方式有个缺陷,不允许在随后的计算中使用之前的计算结果,因为之前的自动加法器执行的过程是,代码RAM阵列和数据RAM阵列同时,顺序的从0000A开始寻址,,代码RAM阵列中的每条指令对应数据RAM阵列中的每个数据存储单元,一旦保存指令使某个数保存了,就不能在再被装载到累加器中。如下图所示:



 

因此,要做一些改变,改进后,每条指令在存储器中占3个字节,第一个字节是指令,后两个字节存放一个16位的存储器单元地址。如下图所示:




 改进后,数据和指令可以存放到一个RAM上了。

 

但是,又有一个新的问题出现了, 计算机顺序取指令的话,到000CH就停止运行了,如果现在又要累加2个新的数,如何取出0010H-0013H中的数据呢?

我们可以重新输入新的更复杂的指令,不过你肯定不想这么做,怎么省事呢? 在指令中加入跳转(JUMP)指令,用跳转指令来替换停止指令。

 

 

14.开关,电磁继电器,电子管,晶体管的联系

这几样东西的存在意义,都是进行逻辑运算的实体,前者不断被后者取代的原因在于成本,响应速度,集成度

 

15.什么是中央处理器(cpu)?

就是将上面提到的所有的逻辑门电路,加法器(ALU),控制部件等集中到一块芯片上。

 

16.为什么存储器需要使用堆栈?

堆栈的工作方式是先入后出,这样可以有序保存工作的轨迹,执行完高优先级的任务后,能够回到原来的任务,继续执行。

 

堆栈是RAM的一部分。

 

  • 大小: 14.1 KB
  • 大小: 67.6 KB
  • 大小: 23.2 KB
  • 大小: 79.8 KB
  • 大小: 16.1 KB
  • 大小: 12.4 KB
  • 大小: 56.4 KB
  • 大小: 35.3 KB
  • 大小: 15.8 KB
  • 大小: 28.7 KB
  • 大小: 19.2 KB
  • 大小: 41.5 KB
  • 大小: 39.4 KB
  • 大小: 38.7 KB
  • 大小: 41.3 KB
  • 大小: 38.6 KB
  • 大小: 7.4 KB
  • 大小: 25.7 KB
  • 大小: 36.6 KB
  • 大小: 16.4 KB
  • 大小: 156.6 KB
  • 大小: 31.2 KB
  • 大小: 18.8 KB
  • 大小: 35.6 KB
  • 大小: 47.6 KB
  • 大小: 26 KB
  • 大小: 34.8 KB
分享到:
评论

相关推荐

    <<编码的奥秘>> 中文版

    《编码的奥秘》是一本深入探讨计算机编码技术的书籍,中文版的出版使得更多中国读者有机会接触并理解这一领域的核心知识。编码在信息技术中扮演着至关重要的角色,它是计算机理解和处理信息的基础。本书旨在揭示隐藏...

    <编码的奥秘3>

    本书用大量的篇幅讲述了与计算机原理相关的各种编码方法,并通过数字逻辑电路以及存储器,微处理器的形成,组织及发展阐述了编码的实现。本书还涉及到计算机系统,编程语言的发展,甚至对计算机图形化的相关技术也给...

    <<MFC简单入门教程>>html版

    **MFC简单入门教程** MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于构建Windows应用程序。...本教程将是你进入MFC世界的一把钥匙,希望你能从中受益匪浅,愉快地探索Windows编程的奥秘。

    编码的奥秘

    &lt;br&gt;&lt;br&gt;目 录&lt;br&gt;&lt;br&gt;第01章 电筒密谈&lt;br&gt;&lt;br&gt;第02章 编码与组合&lt;br&gt;&lt;br&gt;第03章 布莱叶盲文与二元编码&lt;br&gt;&lt;br&gt;第04章 手电筒剖析&lt;br&gt;&lt;br&gt;第05章 绕过拐弯的通信&lt;br&gt;&lt;br&gt;第06章 电报机与继电器&lt;br&gt;&lt;br&gt;第07章 十进制...

    【软件加密技术内幕】

    关于壳和程序的思考&lt;br/&gt;&lt;br/&gt; &lt;br/&gt;&lt;br/&gt; &lt;br/&gt;&lt;br/&gt;第8章 Visual Basic 6 逆向工程&lt;br/&gt;&lt;br/&gt;8.1 简介&lt;br/&gt;&lt;br/&gt;8.2 P-code传奇&lt;br/&gt;&lt;br/&gt;8.3 VB编译奥秘&lt;br/&gt;&lt;br/&gt;8.4 VB与COM&lt;br/&gt;&lt;br/&gt;8.5 VB可执行程序结构研究...

    软件加密技术内幕

    关于壳和程序的思考&lt;br/&gt;&lt;br/&gt; &lt;br/&gt;&lt;br/&gt; &lt;br/&gt;&lt;br/&gt;第8章 Visual Basic 6 逆向工程&lt;br/&gt;&lt;br/&gt;8.1 简介&lt;br/&gt;&lt;br/&gt;8.2 P-code传奇&lt;br/&gt;&lt;br/&gt;8.3 VB编译奥秘&lt;br/&gt;&lt;br/&gt;8.4 VB与COM&lt;br/&gt;&lt;br/&gt;8.5 VB可执行程序结构研究...

    高效程序的奥秘 书上代码

    &lt;&lt;高效程序的奥秘&gt;&gt; Herry S. Warren, Jr. 著 冯速 译 原书示例程序 函数: nlz, Gray, pop, transpose8, Hilbert, divmnu ......

    保护模式教程

    整理说明 &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;要深入理解32位...很好的资料,保护模式的资料本来就少,中文的的资料更少,谨以此与Asm爱好者共享.&lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;Hume[Afo]&lt;br&gt;&lt;br&gt;主页:hume.longcity.net &lt;br&gt;&lt;br&gt;2001年10月22日&lt;br&gt;&lt;br&gt;

    编码的奥秘(编码的奥秘)

    "编码的奥秘"这一主题揭示了编程语言、字符编码、数据压缩以及算法设计等多个层面的知识。 首先,让我们探讨编码的基本概念。在计算机世界中,所有信息都转化为二进制形式(0和1)来处理。编码就是将人类可读的信息...

    完美国际 单机 后台 xml代码讲解

    例如,我们可以找到代表人物属性的XML节点,如`&lt;character&gt;&lt;hp&gt;1000&lt;/hp&gt;&lt;mp&gt;500&lt;/mp&gt;&lt;attack&gt;200&lt;/attack&gt;&lt;defense&gt;100&lt;/defense&gt;&lt;hit&gt;90&lt;/hit&gt;&lt;dodge&gt;10&lt;/dodge&gt;&lt;/character&gt;`。这些数值可以通过修改XML代码来调整...

    编码的奥秘 非常值得一看

    本书用大量的篇幅讲述了与计算机原理相关的各种编码方法,并通过数字逻辑电路以及存储器,微处理器的形成,组织及发展阐述了编码的实现。本书还涉及到计算机系统,编程语言的发展,甚至对计算机图形化的相关技术也给...

    编码的奥秘 (完整版) pdf

    本书用大量的篇幅讲述了与计算机原理相关的各种编码方法,并通过数字逻辑电路以及存储器,微处理器的形成,组织及发展阐述了编码的实现。本书还涉及到计算机系统,编程语言的发展,甚至对计算机图形化的相关技术也给...

    编码的奥秘txt编码的奥秘txt编码的奥秘txt

    编码的奥秘txt 目 录 译者序 译者简介 第1章 电筒密谈 1 第2章 编码与组合 5 第3章 布莱叶盲文与二元编码 9 第4章 手电筒剖析 13 第5章 绕过拐弯的通信 19 第6章 电报机与继电器 25 第7章 十进制记数法 30 第8章 ...

    编码的奥秘 1~25.pdf 高清电子版

    第3章 布莱叶盲文与二元编码 9 第4章 手电筒剖析 13 第5章 绕过拐弯的通信 19 第6章 电报机与继电器 25 第7章 十进制记数法 30 第8章 其他进位制记数法 36 第9章 二进制数 48 第10章 逻辑与开关 61 第11章 ...

    《编码的奥秘》电子书

    本书用大量的篇幅讲述了与计算机原理相关的各种编码方法,并通过数字逻辑电路以及存储器,微处理器的形成,组织及发展阐述了编码的实现。本书还涉及到计算机系统,编程语言的发展,甚至对计算机图形化的相关技术也给...

Global site tag (gtag.js) - Google Analytics