我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:藏宝阁 > 第一代语言 >

第一章 基础知识

归档日期:07-03       文本归类:第一代语言      文章编辑:爱尚语录

  汇编语言对于从事嵌入式相关工作的工程师们有着举足轻重的作用。但对于不是科班出身的我来说,一直想找一本汇编书籍自学。查阅知乎(找好书也是门技术啊),综合评价最高的就是这本由王爽老师编写的汇编语言第三版了。买了这本实体书后,痛定思痛,本人有时候懒癌作祟,有些书籍和技术学到一半无疾而终了。其一是因为自己枯学没有乐趣,其二是不能严格要求自己,系统的学习下来。但知识学一半还不如不学。所以,我决定编写一个读书笔记。一是为了和大家一起学习。二是以后方便查阅知识点,温故知新。

  本文并没有手码所有书籍部分,而是提炼核心部分并稍加修改。为避免枯燥,笔者会和大家聊天调侃的方式进行续写。但涉及到重要语义时,保持跟原书一致。个人心得体会如有误差,请及时提出。笔者虚心接受修改。

  汇编语言是直接在硬件之上工作的语言,我们首先要了解硬件系统的结构,才能有效地应用汇编语言对其编程。汇编课程的研究重点放在如何利用硬件系统的编程结构

  提起汇编语言,首先就要说一下机器语言。机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正常执行的命令。电子计算机的机器指令是由二进制0和1组成的。0为低电平,1为高电平。继而使计算机的电子元器件受到驱动,进行运算。

  执行机器指令、进而运算的机器。这是早期计算机的概念。而现在,在我们常用的PC机中,有一个芯片可以完成上述机能。这个芯片就是(Central Processing Unit,中央处理单元),CPU是一种微处理器。(因很少有人不知道CPU的,所以笔者在这里不详加赘述了

  早期的程序设计均用机器语言。程序员们把0和1编程的数字代码打在纸带上或卡片上,1打孔,0不打孔。再将程序通过纸带机和卡片机输入计算机,进行运算。

  应用8086CPU完成运算S = 768 + 12288 - 1280(因笔者习惯C语言编程规范,所以习惯在符号前加入前后缩进,与原文稍有不同,后出现相同情况,不加赘述),机器代码如下:

  所以这就暴露了机器码的晦涩难懂和不易查错。书写和阅读代码在当时很是让程序员们头疼。嗯,伟大的马克思先生教导我们说:新事物会取代旧事物。所以第一代程序设计语言(First generation programming language)--机器语言就必须向前发展和延伸了。而第二代程序设计语言是什么呢?嗯,

  (笔者私以为幽默感是老师乃至人类不可缺少的一种情绪表现,虽然现实中笔者并不是老师,只是一名学生,还有很多需要学习的地方。但分享技术知识写的生动有趣也不失为有益有心之举。但笔者无时不抱以诚惶诚恐心态编写此博客,害怕画蛇添足,辱此佳作。但即使难在脚下,依然要奋勇向前。)

  汇编语言的主体是汇编指令,汇编指令和机器指令的区别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。

  寄存器,CPU可以存储数据的器件。一个CPU可以有多个寄存器。AX,BX都是寄存器编号哦。嗯书里说,后续详解。嘿嘿,大家可以取巧先去百度和维基大致了解一下吗,有个概念。

  从此,程序员们就开始汇编指令的编写之路了。可是,计算机不愿意了。哼,本大爷是阿拉伯来的。只认识0跟1。要求不高,给我找个翻译小姐姐吧。程序大哥们说简单,带来个翻译小妹妹。这个翻译小妹妹姓甚名谁呢?

  她叫编译器。她当然不是只是用来卖萌装傻的。她的功能就是把汇编指令转化成机器指令的翻译程序。所以新的工作过程就这样产生了。

  PS:上文提到的第一代程序设计语言和第二代程序设计语言,在本书中并没有提及。而是笔者随便加上去的。因为在其他UNIX以及编程书籍中,都稍有提及。而且机器语言和汇编语言极具有代表性,第一代单指机器语言,第二代单指汇编语言。从第三代开始,程序开发语言步入高级语言阶段,已经不单指一门语言了。所以,私自推想上述工作过程也可以类推为第二代工作过程。

  (3)其他符号:如:+  -  *  /等,由编译器识别,没有对应的机器码。

  CPU是计算器的核心部件,他控制整个计算机的运作兵进行运算。要想让一个CPU工作,就必须想他提供指令和数据。指令和数据在存储器中存放,也就是我们平时所说的内存。在一台PC机中内存的作用仅次于CPU。(第三是显卡吗?

  )离开了内存,性能再好的CPU也无法工作。这就像在聪明的大脑,没有了记忆也无法进行思考。磁盘不同于内存,磁盘中的数据或程序如果不读到内存中,就无法被CPU使用。要灵活地利用汇编语言编程,我们首先要了解CPU是如何从内存中读取信息,以及向内存中写入信息的。

  指令和数据是应用上的概念,在内存和磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作的时候把有的信息看做指令,有的信息看做数据,为同样的信息赋予了不同的意义。就像围棋的棋子,在棋盒中没有意义,但在棋盘中蕴含了巨大的意义。(佐为,跟AlphaGo一起下盘棋吧)

  例如,内存中的二进制信息 0,计算机可以把它当做大小为89D8H的数据来处理,也可以将其看作指令            mov ax,bx来执行。

  存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号。一个存储器有128个单元,编号从0-127。

  那么一个存储单元能存储多少信息呢?计算机的最小单位为bit(比特),也就是一个二进制位。8个bit组成一个Byte,也就是一个字节。微型机存储器的存储单元可以存储一个Byte,即8个二进制位。一个存储器有128个存储单元,他可以存储128个Byte。

  微机存储量的单位是以字节为最小单位的,对于拥有128个存储单元的存储器,我们可以说,它的容量是128个字节。

  存储器被划分为多个存储单元,存储单元从零开始顺序编号。这些编号可以看作存储单元在存储器中的地址。嗯,每家都有门牌号,快递才能找到你吧。

  CPU要从内存中读取数据,首先要指定存储单元的地址,也就是说它要先确定它要读取哪一个存储单元中的数据。就像在一条街上找人,先要确定他住在那个房子里。

  另外,在一台微机中,不只有存储器这一种操作。CPU在读写数据时还要指明,他要对哪一个器件进行操作,进行那种操作,是从中读取数据,还是向里面写入数据。

  可见,CPU要进行数据的读写,必须和外部器件(标准的说法是芯片)进行下面3类信息的交互。

  那么CPU是通过什么将地址、数据和控制信息传到存储器芯片中的呢?电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。在计算机中有专门有连接CPU和其他芯片的导线,通常称为总线。总类从物理上来讲,就是一根根导线的集合。根据传送信息的不同,总系从逻辑上又分为3类,地址总线、控制总线和数据总线。

  1.进制转换2.计算机的发展史(计算机发展的4个阶段)3.冯诺依曼结构的机器5大结构单元(计算机硬件系统由几大部分组成,主要作用是什么)4.计算机的基本工作原理5.计算机病毒概念以及主要特点6.指令的...博文来自:wearlee的博客

  看着选择题前几个的小红叉叉真的是于心不忍,所以还是总结一下吧。(图是借鉴的)......博文来自:倾心之恋

  1.1引言所有操作系统都为它所运行的程序提供服务,典型的服务包括执行新程序,代开文件,读文件,分配存储区等1.2unix体系结构操作系统可以视为一种软件,它控制计算机的硬件资源,提供程序运行环境,此即...博文来自:wssbman的博客

  写在前面:    本系列文章用于记录本人软考学习历程,适用于零基础人群,每天不定期更新,如果读者哪里不理解或者发现哪里理解的有问题,欢迎评论,一起进步学习,祝大家都能顺利通过考试~第一节计算机系统硬件...博文来自:就酱紫啦

  写在前面:    本系列文章用于记录本人软考学习历程,适用于零基础人群,每天不定期更新,如果读者哪里不理解或者发现哪里理解的有问题,欢迎评论,一起进步学习,祝大家都能顺利通过考试~第三节数据表示  本...博文来自:就酱紫啦

  Internet与web技术:Internet互联网(起源:美国军事系统))万维网;设计者:Tim-Berners-lee超文本:开始是不必拷贝对方文件,只要链接到对方...博文来自:xbala_的博客

  一.概述    数字信号;数字量;模拟信号;模拟量    数字系统的层次结构:             电子元件---gt;基本逻辑器件(SSI)---gt;逻辑功能部件(MSI,...博文来自:前往金字塔之路

  数据库       数据库是对数据存储、管理及数据本身,由表、关系以及操作对象组成 什么是连接?        数据库连接是数据库客户端与数据库服务器之间的通道,传输数字信息       会话是实例中...博文来自:墨渐生微的博客

  今天一天没有课,自己复习的感觉很好,虽然遇到了一些事情不是很开心,但还是整理一下今天学习的内容。因为笔记本被我“伤害了”,所以回归了纸质版模式。 ......博文来自:shujian_tianya的博客

  1.深度学习与人工智能简介大数据时代造就了人工智能的发展,人工智能的时代已经来临。数据规模越大,深度学习算法越好。深度学习有诸多应用,如诉说图片故事,自动驾驶等等。2.CV面临的挑战与常规套路图像分类...博文来自:Qi

  1.1计算机网络出现的背景1.1.1计算机的普及与多样化计算机正对我们的社会与生活产生着不可估量的影响。而自其诞生伊始,它也经历了一系列的演变与发展,性能逐年增强,机体规模正逐渐下降,多样普及的同时,...博文来自:alpaca_ll的博客

  已经步入前端一个多月了,已经学了html5,csscss3bootatarp4 今天从html5开始大概梳理一下;html:是一种创建网页语言的标准标记语言。文件结构;lt;!DOCTYPE...博文来自:我是星星的博客

  简介R语言主要用于数据可视化与统计分析,当然现在也可以通过扩展包实现数据挖掘等算法。与Python相比,R语言相当于天生就加载了NumPy,SciPy,Pandas的大多数功能。现在来介绍一些R语言的...博文来自:tongweiganglp的博客

  Oracle-SQL开发基础——第一章Oracle数据库基础1.数据库管理系统概述数据处理及进展1.数据:是指所有能输入到计算机中并被计算机程序处理的符号的总称2.数据处理:是指对各种形式的数据进行收...博文来自:HIT-LSQ的博客

  计算机网络在信息时代的作用计算机网络与因特网计算机网络的发展历史计算机网络(因特网)的组成计算机网络的分类几种常用网络计算机网络的性能计算机网络的体系结构-分层-计算机网络体系结构的内容-实体、协议、...博文来自:Koma Hub

  WWW简称Web。互联网使用HTTP通信协议连接客户端与服务端,Web依靠HTTP协议运作。客户端使用HTML,传输协议使用HTTP,URL指定请求资源。HTTP属于TCP/IP协议族的子集,其他子集...博文来自:c8621的博客

  第一章 教育基础知识和基本原理第三节教育与社会的发展一、 教育与人口的关系二、 教育对社会生产力的关系(一) 生产力对教育的制约作用(二) 教育对生产力的促进作用(教育的经济能力)经典真题:在当代,教...博文来自:ancientear的博客

  第一章信息安全基础考试要点及真题分布第一章信息安全基础1.信息安全概念2.信息安全法律法规3.信息安全管理基础4.信息安全标准化知识5.信息安全专业英语信息安全基础线共...

  第一章 SWIFT 基础知识.PDF第一章 SWIFT 基础知识.PDF第一章 SWIFT 基础知识.PDF第一章 SWIFT 基础知识.PDF

  微机原理课件第一章,基础知识微机原理课件第一章,基础知识微机原理课件第一章,基础知识微机原理课件第一章,基础知识

  第一章_数据库基础知识 第一章_数据库基础知识 第一章_数据库基础知识

  1.1为什么要学习计算机基础(1)–计算机好像不可靠–程序执行结果不仅依赖于高级语言语法和语义,还与其他好多方面有关–本来以为学学编程和...

  cpu为计算机的核心部件,控制着整台计算机的运转并且进行运算,说到运算,就必须有数据,而cpu不能通过直接读取硬盘来获得数据,这就需要存储器,平时工作时的数据都会存放到存储器当中,也就是内存。若没有内...

  2^10=10241个二进制位=bit(比特)8个二进制位=Byte(字节)16个二进制位=word(字)编程语言中,用0开头的八进制,0X开头的十六进汇编语言中,以字母结尾区分计算机存储一个数=先将...

  8bit(比特)=1byte(字节)=2word1kB=1024B(Bisbyte)连接CPU和其他芯片的导线称为总线总线又分为:地址总线,控制总线,数据总线地址总线一个CUP有N根地址总线,则可以说...

  最近开始学习汇编语言了,从今天开始会做一些笔记。今天是第一章,基础知识。我们这里只记录一下知识点。微型机存储器的存储单元可以存储一个Byte。CPU与内存中有三条线——地址线、数据线、控制线。若地址总...

  一、数字图像基础知识1、数字图像的质量1、层次(1)、灰度值:表示像素明暗程度的数量。(2)、层次:表示图像实际拥有的灰度级的数量。(3)、图像数据的实际层次越多,视觉效果越好。2、数字图像的质量:对...

  定义数组的两种方法vara=[1,2,3];vara=newArray(1,2,3);数组的length属性既可以获取,也可以设置并可以用于清空数组(length=0)数组的方法push(元素),从尾...

  三级数据库技术:第一章:计算机基础知识 三级数据库技术:第一章:计算机基础知识

  电子技术知识小结:第一章_数字电路的基础知识电子技术知识小结:第一章_数字电路的基础知识

  网页设计dreamweaverPPT,第一章,网页三剑客,dreamweaver部分,第一章基础知识的内容

  python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理)

  1.从pyCharm提示下载PIL包nn 解压后,进入到目录下nnncd /Users/jianan/Dow...

本文链接:http://kuenergyclub.com/diyidaiyuyan/587.html