美文网首页From Nand To Tetris 从与非门到俄罗斯方块
22、P1 W4 U4.1 机器语言 纵览(待完善)

22、P1 W4 U4.1 机器语言 纵览(待完善)

作者: shazizm | 来源:发表于2019-08-08 10:34 被阅读0次

视频:
如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接
P1W4U4.1 - Machine Languages-Overview

经过前三周的学习,事实上本周已经可以进行Hack小电脑的最后组装工作了。

不过这被挪到第五周进行了。

在这之前,本周(第四周),先来从使用电脑的角度来看看Hack小电脑的一些内部细节,运行机制和内部结构。然后第五周再去组装完成它。

现在的手机和电脑,我们已经习惯了它们是什么都能干的设备。

不过回溯历史,在通用计算机流行之前,大部分所谓的计算机设备其实都是专用的。比如(待完善)

通用图灵机(universal Turing machine,又称Machine U)是图灵机的一种,由艾伦·图灵在1936年(理论上)提出的一种抽象计算机模型,图灵机模型有很多种,而通用图灵机模型可以模拟大部分其它种的图灵机模型。

其更抽象的意义为一种数学逻辑机,可以看作等价于任何有限逻辑数学过程的终极强大逻辑机器。


阿兰·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日)

20世纪30年代中期(1936?)。

德国科学家冯诺依曼大胆的提出,抛弃十进制,采用二进制作为数字计算机的数制基础。

同时,他还说预先编制计算程序,然后由计算机来按照人们事前制定的计算顺序来执行数值计算工作(这就引入了要存储程序的需求)。

冯·诺依曼和EDVAC计算机,EDVAC开始是十进制,且没有存储。后经过冯·诺依曼重新设计,于是就有了冯·诺依曼架构,课程的Hack小电脑是哈佛架构,不是常见经典的冯·诺依曼架构

再回溯之前老师提供的Hack小电脑示意图,下图

存储示意区分了 “程序存储区域” 和 “数据存储区域”,后面课还会见到“屏幕映射区”,和“键盘映射区”

存储器(Memory),上周学习的,每个16位寄存器对应一个地址(Address)。

例如图中 示意 Address157地址里放的就是16位 01011110011(好像不到16位,示意图,理解就好)。

程序(在程序存储区域)会按地址顺序一步一步执行,执行的时候,就是把上面的 Address 157 里的 0101xxx 送入 CPU里执行。

如果有计算结果,下部分还会有数据(data)再存储回数据存储区域。

那些个在存储器的程序区域的010111110011组成的一行行的代码,就是所谓的机器语言。

上图涉及了三个基本的概念,本周之后课程会讲到。

第一:指令如何被执行。
第二:如何控制指令执行顺序。
第三:指令能操作啥。

先大概说下机器语言。

机器语言(一行行的0101xxx),人类变态的情况下可以这么编程序,但是相当繁琐和困难也容易出错,于是就发明了一种相对高级的语言(例如:汇编语言 (Assembly Language)),当然同时也得准备好对应这个高级语言的编译器(Compiler)(例如:对应 汇编语言 的编译器叫 汇编器(Assembler))。

这样人类就能更容易的编写程序了,然后执行的时候,就把人类的高级语言,通过那个对应的 编译器(compiler)翻译成 机器语言。

第六周课程会实现 具体实现 Hack小电脑的 汇编语言 和 汇编器

貌似我们可以跳过机器语言了,皆大欢喜,但是课程设计不允许,因为我们得自己弄出个编译器。所以我们不能不会机器语言的运行原理。(这正是本课程的特色,什么都得自己做出来,很好很喜欢)

下图 简单对比一个 “机器语言” 和 “汇编语言” 的例子(不用记,示意)。

左边的机器语言:0101xxx。
右边的汇编语言:ADD 1,Mem[129]。

129是一种表示存储器的索引值,就像门牌号,Mem[129]大概就可以理解成 第129号寄存器。


后面会讲他俩的对应关系

这节课大概纵览了一下 通用计算机 的 机器语言 一些主要概念。

下节还是继续 介绍 机器语言 主要概念的具体细节。

之后才是如何实现Hack小电脑的 机器语言 和 汇编语言 以及编译器。

相关文章

  • 22、P1 W4 U4.1 机器语言 纵览(待完善)

    视频:如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接P1W4U4.1 - Machine L...

  • 25、P1 W4 U4.4 HACK的机器语言

    视频:如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接P1W4U4.4 - Hack Lang...

  • 23、P1 W4 U4.2 机器语言 基本概念

    视频:如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接P1W4U4.2 - Machine L...

  • 待完善

    有一直老母鸡,当她还是小鸡的时候,无忧无虑的,然后她长大了,发现小时候一起玩儿的禽类有的上了天,有的下了水,有的长...

  • 待完善

    两个人最好的状态,好像就是我在闹他在笑。以前特别不理解,随着我们两个的相处,我越发的感觉这样的状态,特别的舒服,我...

  • 数据结构-系列文章

    线性表 单链表 单链表-OC实现 双链表 循环链表 栈 栈 队列 待完善 数组 待完善 树 待完善 图 待完善 哈...

  • 牧牛,与马斯洛需求层次理论

    一、马斯洛五需求层次理论 第一层:待完善 第二层:待完善 第三层:待完善 第四层:待完善 第五层:待完善 二、牧牛...

  • 目录(待完善)

    饮食: 1.三大能量元素 2.热量计算 健身: 1.有氧运动 2.无氧运动 3.自重训练 4.减肥方法

  • leetcode 待完善

    一、树 1.判断是否是对称二叉树 2.序列化与反序列化二叉树 3.广度优先遍历二叉树(递归版) 4.入一颗二叉树和...

  • SimpleRPC待完善

    common: provider: server: client:

网友评论

    本文标题:22、P1 W4 U4.1 机器语言 纵览(待完善)

    本文链接:https://www.haomeiwen.com/subject/brmtjctx.html