最近一直浸淫在计算机编程中无法自拔。哲学 认识论中讲过。人类的求知的过程是由两次飞跃。第一是从感性认识到理性认识;第二是从理性认识到实践。这段话对有些人是适用的。我就是其中的一名。在知乎上求助问题“学计算机要懂汇编吗?”,地下有人回复说,对有些人是必须要学会的。因为当我们满脸疑惑的问别人,别人可能会甩我们一脸“你问这个有用吗?”,可我们的脑袋上都套着一句话“你不明白这个,你怎么能看第二章呢?”,对于我来讲,知识的断层是特别影响我求知的道路。

  说说我的学习路线。《VS2010轻松学习C#-从零到深入-天轰穿.NET4趣味编程视频教程》,田老师是一个嬉笑怒骂皆文章的人,是一个没有被体制内教育束缚的人。实践证明,一个人若要是想干成一件事情,循规蹈矩的路子不一定是唯一的路子。第二步,《c#高级编程》(第6版),讲得是深入的c#的基础知识。第三步,《汇编语言》(王爽 第2版)。通过视频我大概了解了什么是编程,编程到底是怎么起作用的。这是我的一个感性认识。然后我需要用专业的知识填充我的理性认识。

  下面说一下 计算机的原理,这些编程语言,到底是怎么就让计算机工作了:

  归根到底,计算机是怎么就能工作呢?其实这个原理的本质 和 “人 按了一下开关 灯就亮”是一样的,“人按开关”,是一个命令,开关接受到命令之后,电流接通,灯变亮了,从“0”变成了“1”。 计算机的机器指令是一列二进制数字,计算机将之转变为一系列的高低电平(高低电压),以使计算机的电子器件收到驱动,进行运算。

我们把这个过程独立出来“执行计算机指令,进行运算”,进行这个步骤的就是我们熟知的CPU,每一个种类的CPU,由于硬件的设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种类的CPU都有自己的机器指令集,也就是机器语言。这样的话,编程的作用就是,用一堆的 0 1 符号控制各个“开关”,实现自己想要达到的效果。这种编程语言,就叫做机器语言。比如,让8086cpu 计算s= 768+12288-1280,机器语言是这样子的:

101100000000000000000011                                                                                                                                                                 000001010000000000110000                                                                                                                                                                 001011010000000000000101

  这样子很难受了,每一个CPU都有不同的机器语言库,要自己算个东西,得把每个机器语言库的01语言代表的意思都记住。太麻烦了,不行,得想个办法。

  我能不能这样,我想命令机器,把在A上存储的东西移动到B上。我就直接写 "mov a , b"?然后指定一个规则,让机器自己翻译成01语言,这样就不用记那么多的数字了。可问题又来了,如何翻译成01语言呢?

  刚开始我一直在找编译器的原理,找各种编译的方法。但是不管怎么样都是一头雾水。知道天降一本神书《编码-隐匿在计算机软硬件背后的语言》解释我心中多年的困惑。上网上百度书评,基本都是好到爆。上一段的那个问题,推荐读这本书,这本书中会告诉你期盼已久的答案。

  

   

  

  

转载于:https://www.cnblogs.com/suyanteng/p/4001089.html

开窍小老虎,一步一个脚印之 初识汇编(一)相关推荐

  1. 一步一个脚印学习WCF系列之WCF概要—生成元数据与代理(五)

    阅读目录 一:契约与元数据 二:服务描述与元数据 一:契约与元数据 . 客户端与服务端之间共享的应该是Contract契约而不是代码,就是前面我们讲的文章"一步一个脚印学习WCF之WCF概要 ...

  2. 建模学习是个持之以恒的过程,一步一个脚印,才能真正的学到知识

    学习都是有一个过程的,不管是学习什么内容,都是有好奇时期-兴趣大-认真学习-遇到阻力沮丧-回头细想理性对待.(1)要根据自己的特长去决定自己学习MAX和应用MAX的目标.譬如,你的主业是建筑行业,熟悉 ...

  3. 一步一个脚印,QAD助力CAPP走出信息化进阶之路

    [本文转载于e-works数字化企业网] 客户引言: "随着汽车市场进入拐点,整个行业尤其是零部件厂商无可避免的将从管理入手进行转型升级.QAD ERP解决方案在汽车行业拥有"专业 ...

  4. 勤劳的人,一步一个脚印,加油

    今天一个粉丝后台私聊我,感触挺深的,把内容整理成文章,希望你以后越走越好,加油! 这个月我的主业和副业收入大概在4.5 万,这是我来到杭州后三年第一次一个月赚这么多钱,我记得刚来杭州的时候月薪是3 K ...

  5. 【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(2-1)Servlet的使用

    最近工作上效率比较低,各种需求更改耗费了大量的时间成本(不吐槽,你懂的,已无力),高的身心俱疲.... ... 每次废话都比较多,我也是服了自己了,就当我是来凑字数的吧!不废话了,开始正题: 翻了一下 ...

  6. 【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(2-2)Servlet的使用

    在上一篇 [一步一个脚印]Tomcat+MySQL为自己的APP打造服务器(2-1)Servlet 的使用 中我们只是简单的对 Servlet 要做的任务.在服务器中的地位有了一个大概的了解,完成了在 ...

  7. 一步一个脚印,其实真的不慌

    怎么总是有时候,会犯一个错误,就是有点急于求成,会不惜代价的去完成本应该是水到渠成的事情. 还是心急了,,,,不光是学习,有偶尔生活也是这样的. 在这里记一下: 一步一步来,按照自己的节奏来,要掌握好 ...

  8. 单点突破,一步一个脚印

      项目上问题很多,从需求.设计.编码.测试.验收,流程上的每一步都不尽完善.各个模块从组长到组员,也都有很多提升空间.   现状如此,急也急不来,只能是一个长期的过程.眉毛胡子一把抓,没法聚焦,反而 ...

  9. java的栈堆的理解_理解堆与栈 - 一步一个脚印 - BlogJava

    一.引言: 一直不太明白堆与栈到底是什么,是指一块内存区呢,还是指一种数据结构?编写程序中总提到内存分配的栈与堆的区别,静态与动态分配等,总也弄不明白,隐约知道一点,但总分不清堆与栈到底是一块内存区还 ...

最新文章

  1. MongoDB源码概述——使用日志提升单机数据可靠性
  2. mysql 备份锁表_mysql 不停机 短时间锁表 备份 主备同步 新增备份机器
  3. MySQL运行状态show status详解
  4. stm32链接电脑提示无法识别的驱动设备
  5. vscode解决java无法输入(scanner)问题
  6. C++ Opengl纹理贴图源码
  7. 通过迭代(非递归)及递归将单链表逆序
  8. Android用按钮确定单选框,Android RadioButton单选框的使用方法
  9. Join a New Company
  10. 前端获取checkbox复选框的值 通过数组形式传递
  11. 为什么世界上近60%的人使用谷歌Chrome浏览器?
  12. 阶段3 3.SpringMVC·_05.文件上传_3 文件上传之Springmvc方式上传原理分析
  13. 快速上手数据挖掘之Solr5搜索引擎高级教程
  14. 大数据可视化技术:可视化技术概述与Echarts入门
  15. dede标签属性(转载)
  16. [架构之路-50]:目标系统 - 系统软件 - Linux下的网络通信-8-PON、EPON、GPON
  17. oracle 12.2R2 安装GI执行root.sh遇到CLSRSC-400
  18. gaussDB200 单节点安装
  19. Caliburn.Micro学习笔记目录——li-peng
  20. java 什么是多态性_Java多态性理解

热门文章

  1. hashCode之二--Java:重写equals()和hashCode()
  2. (转)ZwQuerySystemInformation枚举内核模块及简单应用
  3. Direct3D学习_绘制
  4. Teradata Expression 12 在Windows 2003上Connection Reset 问题的解决方法
  5. CENTOS 7 踢用户_从零学ELK系列(三):Centos安装Docker(超详细图文教程)
  6. python函数变量的作用域_学不会的Python函数——变量作用域
  7. 济宁医学院计算机专业好就业吗,山东这3所医学院实力强,就业率高,中等生可捡漏...
  8. mysql的考试范围_数据库考试范围整理
  9. 关于一些常见智柜问题的分析及解决办法
  10. vue组件详解(一)——组件与复用