计算机程序设计员,计算机程序设计员证书?

最早期的计算机雏形采用打孔纸带作为程序,理解打孔纸带计算机运行原理有利于我们理解计算机CPU的运行原理。

因为到目前为止,计算机的运行原理本质上没有变,都是运行0/1状态的计算。

基本原理

打孔纸带编程的本质是基于机器码的程序。

场景举例

假定现在有一个简单CPU,其能运行10种指令,对应的二进制为:

halt   --   0000
mov   --   0001
add   --   0010
and   --   0011
or    --   0100
xor   --   0101
sub   --   0110
shift   --   0111
load  --   1000
store   --   1001

同时,CPU带有8个通用寄存器,对应二进制如下:

r0    --  0000
r1    --  0001
r2    --  0010
r3    --  0011
r4    --  0100
r5    --  0101
r6    --  0110
r7    --  0111

程序功能及代码

1、将 内存地址(ex:0x1a)放到寄存器0

2、寄存器0的地址所对应的数据读取到寄存器1

3、将另一个内存地址(ex:0x2c)放到寄存器0

4、将寄存器0的地址所对应的数据读到寄存器2

5、将寄存器1和寄存器2的数值相加,存储到寄存器3

6、将第三个地址(ex:0x3e)放到寄存器0

7、将寄存器3的数值写入寄存器0所对应的地址

对应的汇编代码如下:

mov    r0, 0x1a
load  r1, [r0]
mov   r0, 0x2c
load  r2, [r0]
addr  r3, r1, r2
mov   r0, 0x3e
store  r3, [r0]
halt 

机器码翻译

前面讲到,CPU支持10个指令,同时这些指令有自己的格式和参数,我们以二进制每16位为一组做成编码,不足的补0,指令规范如下:

mov : 0001 xxxx yyyy yyyy
load: 1000 xxxx yyyy 0000
add: 0010 xxxx yyyy zzzz
store: 1001 xxxx yyyy yyyy
halt: 0000 0000 0000 0000

其中xxxx yyyy zzzz 分别代表了代码中要写的具体数值。

于是翻译后,上面的代码就变成:

#0 0001 0000 0001 1010   - mov r0 0x1a
#1 1000 0001 0000 0000   - load r1 [r0]
#2 0001 0000 0010 1100   - mov r0 0x2c
#3 1000 0010 0000 0000   - load r2 [r0]
#4 0010 0011 0001 0010   - add r3 r1 r2
#5 0001 0000 0011 1110   - mov r0 0x3e
#6 1001 0011 0000 0000   - store r3 [r0]
#7 0000 0000 0000 0000   - halt

至此,一个汇编程序代码就简单的翻译成纯粹的二进制格式。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取:嵌入式物联网学习资料(头条)

计算机程序设计员,计算机程序设计员证书?

计算机程序设计员,计算机程序设计员证书?

纸带编码原理

纸带的每一行规定了8个孔位,每个孔位代表1bit,可以打孔也可以不打,打孔代表1,不打代表0。

纸带每行8个bit,两行就是16个bit,上面的二进制代码,以8位一行,表现在只带上,就如下图所示:

○○○● ○○○○ – 0001 0000

○○○● ●○●○ – 0001 1010

●○○○ ○○○● – 1000 0001

…后续省略

纸带编码识别

到这里我们几乎能够明白纸带编码原理了,但是还差一点,就是如何识别纸带编码,这里我们可以发挥想象比如:

  • 方案1:采集器是8个探针(探针很粗,不会扎破纸带), 纸带上下都有探针,有孔的地方,探针会接触导通,而没孔的地方则不会导通,另外再配备1个传送带,按照恒定匀速拖动纸带移动,这样CPU就能够识别纸带编码,进而进行计算。
  • 方案2:纸带上下有个 发光二极管,遮挡则不导通,类似于现在的形成开关。

声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

———— END ————

文章链接:https://mp.weixin.qq.com/s/kHCjz_Ev7HNo_ZlUyqBfRg

转载自:嵌入式专栏

文章来源:计算机程序的来源

版权申明:本文来源于网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.vsaren.com/135469.html