汇编学习(一)

看的是王爽老师的《汇编语言》第三版

基础知识

一.汇编语言的诞生
上古时期在汇编语言还未出现的时候,那时的程序员还只能用二进制也就是所谓的机器语言写代码,将0和1编成的程序代码打在纸带或卡片上,再将纸带卡片输入计算机,进行运算;代码相当抽象,查错就更难了;难以辨别和记忆成为了机器语言的瓶颈;
但是怎么可能会有问题能难住程序员呢,于是汇编语言诞生了!

二.汇编语言VS机器语言

汇编语言的主体是汇编指令,它相比机器指令更容易书写和记忆;

例如

汇编指令机器指令操作
mov ax,bx1000100111011000寄存器BX的内容送到AX

先不用关心这指令,一眼就看出如果写代码只能从汇编语言和机器语言选一个的话我肯定选汇编;
当然汇编语言无法直接让计算机运行,它需要编译成机器码然后在让计算机运行;

三.汇编语言的组成

  • 汇编指令:机器码的助记符,有对应的机器码;
  • 伪指令 : 没有对应的机器码,由编译器执行,计算机并不执行;
  • 其他符号:如加减乘除符号,也是由编译器识别,没有对应的机器码;
汇编指令容易理解,至于伪指令和其他符号他们既然没有对应的机器码计算机也不执行为什么要有它们呢?上文写到汇编语言需要编译成机器语言后才能被计算机运行,这原因其中之一就是为了协助编译器编译汇编源代码,其二就是为了汇编源代码更好的可读性

四.CPU与储存器

  • cpu可以直接使用的信息在存储器(内存)中存放;(这里我狠查了一波CPU能否直接从硬盘拿数据,但是发现资料方向慢慢走向了操作系统所以就没深入下去)
  • 在存储器中指令和数据没有任何区别都是二进制;(后面的学习会写到CPU如何区分数据和指令)
  • 存储器的大小跟它存储单元的多少有关,一个存储单元可以存储一个字节,从零开始编号;
  • 连接CPU与其他芯片的导线称为总线,总线从逻辑上又分三类,地址总线,控制总线,数据总线;

地址总线

在计算机中一根导线可以传送两种稳定状态高电平,低电平,用二进制表示就是0和1;如果有十根地址总线,那么它就能表示2的十次方个不同数据,编号从0到1023;这也是CPU能找到的地址范围;

数据总线

数据总线的宽度决定了CPU与外界数据传输的速度;一根数据总线能传1bit二进制数据,如果传送数据超过数据总线一次能传送数据的最大值,那就得分批传了;例如只有一根数据总线,要传个3过去,那只能一次传0010,第二次传0001,分两次传完;

控制总线

CPU对外部器件的控制通过控制总线来进行,例如需要读取和写入数据到内存,那么就需要一根读取控制线,和一根写入控制线;

其实这些是在为CPU如何对存储器进行读写做铺垫

年轻的时候送过快递感觉作为例子很贴切;

企鹅男孩是一名快递员,他每天的工作就是把货物送到规定的地址;这里企鹅男孩就是CPU,货物就是数据信息,货物的地址就是存储单元的地址信息,而送快递这个动作就是传达的控制信息;送快递简直和CPU读写存储器如出一辙;

  • 1.CPU需要确定存储单元的地址;(快递员确定货物地址)
  • 2.器件选择,读取信息还是写入信息;(快递也是一样,你是要给客户去送快递还是给客户发个快递);
  • 3.读或写的数据;(送到的快递,或者收回的快递)

这些都是我对王爽老师《汇编语言》第一章的总结,有不对的地方还请多指教;书中前言真是写到心坎了,也是我的瓶颈,学习框架也好语言也好总是没有深度,这是因为我开始学习编程就没走一个循序渐进的路线,所以导致知识不成体系不够扎实,不想做编程界的泥腿子,向成为一名真·程序员前进;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GIS风暴】GeoJSON数据格式案例全解

在了解GeoJSON数据之前,先来通过一个网站和一个简单的代码案例,看一下GeoJSON的神奇魅力吧! 网站:http://geojson.io 打开上述网站,在左侧的代码区域粘入中国区域GeoJSON代码,如下所示: 中国地图: 地名:

[转]2020年5月程序员工资统计,平均14542元

平均工资 2020年5月全国招收程序员312761人。2020年5月全国程序员平均工资14542元,工资中位数12500 元,其中95%的人的工资介于5250元到35000元。 一线城市工资 2020年5月北京招收软件工程师24478人。2019年5月北京软件工程师平均工资19273元&#xff0…

云原生IDE:iVX免费的首个通用无代码开发平台

一、iVX简单介绍 1、iVX是什么东东? iVX 是一个 “零代码” 的可视化编程语言,拥有方便的 在线集成开发环境 ,不需要下载开发环境,打开浏览器即可随时随地的进行项目编辑;iVX 拥有 “一站式” 的云资源,通过这一套一…

.NET GC工作流程

前言在上文[如何获取GC的STW时间]一文中,我们聊到了如何通过监听GC发出的诊断事件来计算STW时间。里面只简单的介绍了几种GC事件和它的流程。群里就有小伙伴在问,那么GC事件是什么时候产生的?分别是代表什么含义?那么在本文就通过…

libco协程库源码解读

2019独角兽企业重金招聘Python工程师标准>>> 协程,又被称为用户级线程,是在应用层被调度,可以减少因为调用系统调用而阻塞的线程切换的时间.目前有很多协程的实现,由于微信内部大量使用了其直研的的libco协程库,所以我选择了腾讯开源的libco协程库进行研…

【ArcGIS风暴】如何将矢量数据(点、线、面)折点坐标转为GeoJSON格式?

本文以案例的形式,讲述在ArcGIS和QGIS专业软件中,将矢量数据转为GeoJSON的方法。 扩展阅读:【GIS风暴】GeoJSON数据格式案例全解 文章目录 一、ArcGIS将矢量数据转为GeoJSON二、QGIS将矢量数据转为GeoJSON一、ArcGIS将矢量数据转为GeoJSON ArcGIS中提供的【要素转JSON】工具…

TypeScript 3.9 正式发布!平均编译时长从 26 秒缩短至 10 秒

作者 | 微软官方博客 译者 | 核子可乐 策划 | 小智 稿源 | 前端之巅 今天,微软在其官方博客宣布:TypeScript 3.9 版本已经正式发布,详情见下文。 有些朋友可能对 TypeScript 还不太熟悉,这是一种以 JavaScript 为基础开发的语…

(二)Harbor WEB的使用

接上一篇《安装Harbor》,安装好之后,接下来我们就进行Harbor web界面的操作吧! 转载请标明出处:http://www.cnblogs.com/huangjc/p/6270405.html 浏览器登陆Harbor(默认用户密码:admin/Harbor12345&#x…

iVX低代码平台系列制作简单的登录界面

一、前言 iVX是啥,不理解的小伙伴可以猛戳这里 ----------------------点我 二、iVX平台和现有编程语言的对比 三、iVX平台和现有编程语言的对比 1、快速学习(周期短) iVX逻辑上相对是比较简单的 所以初学者的话只需要从逻辑和具体功…

Process.Start 为什么会引发“系统找不到指定的文件”异常

前言偶然发现,如果想用如下代码在 .NET 6 中打开指定 URL:Process.Start("https://baidu.com");会引发异常:而同样的代码在 .NET Framework 中是可以正常执行的。难道,.NET 6 下的实现逻辑不一样?深入探究通…

JVM 类型的生命周期学习

Java虚拟机通过装载、连接和初始化一个JAVA类型,使该类型可以被正在运行的JAVA程序所使用,其中,装载就是把二进制形式的JAVA类型读入JAVA虚拟机中;而连接就是把这种读入虚拟机的二进制形式的类型数据合并到虚拟机的运行时状态中去…

js对象数组中的某属性值 拼接成字符串

var arr[{id: "600", pId: null, name: "图形的变化"},{id: "630", pId: "600", name: "投影与视图"},{id: "631", pId: "630", name: "投影"},{id: "632", pId: "630",…

开店星简直就是国内优秀的开源商城系统天花板

一、场景 1、大学生毕业设计做商城系统背景 好家伙、又到开学季节了,师妹让我帮忙给指导大四的项目,作为毕业设计和为后面找工作积累项目经验,要搞一个买卖二手闲置品的商城小程序和PC端商城、希望能够快速学习、接入、修改部分功能&#xff…

【CASS精品教程】CASS9.1土方量的计算方法汇总

CASS9.1中,计算土方量的方法有:DTM法土方计算、断面法进行土方量计算、方格网法土方计算、等高线法土方计算、区域土方量平衡等。本文以案例的形式,详细讲解土方量的计算过程。 文章目录 一、DTM法土方计算二、断面法进行土方量计算三、方格网法土方计算四、等高线法土方计算…

VS2019 禁止Web项目停止调试后自动关闭浏览器(在浏览器窗口关闭时停止调试程序,在调试停止时关闭浏览器)

很多文章都说要修改以下两处与“编辑并继续”有关的选项: “编辑并继续”是一种省时的功能,使你能够在程序处于中断模式时更改源代码。 通过选择执行命令(如 "继续" 或 "单步执行")继续执行程序时&#xff0c…

【ArcGIS风暴】ArcGIS中等高线高程标注/注记(打断/消隐)方法案例汇总

本文以案例的形式,图文并茂详细讲解在ArcGIS 10.6中,等高线高程标注、注记的方法。 文章目录 一、属性标注二、Maplex工具标注1. 使用Maplex标注引擎2. 标注转换为注记3. 要素轮廓线掩膜4. 使用掩膜选项进行绘制参考阅读: 【CASS精品教程】CASS9.1等高线的绘制完整案例教程 …

Blazor University (35)表单 —— 编写自定义验证

原文链接:https://blazor-university.com/forms/writing-custom-validation/编写自定义验证源代码[1]请注意,与有关 EditContext、FieldIdentifiers 和 FieldState[2] 的部分一样,这是一个高级主题。如前所述,FieldState 类保存表…

HTML 元素内部添加预加载

CSS: /*元素内部加载loading*/.innerLoading {height: 100%;width: 100%;display: flex;justify-content: center;align-items: center;}.innerLoading * {text-align: center;color: #737782cc;fill: #73777A;font-size: 1em !important;font-family: SimSun,SimHe…

Windows下怎样安装Tomcat

Tomcat 是开源的WEB应用容器,所以受到各位程序员和公司的亲赖。在这里给大家介绍一下如何在Windows环境下安装Tomcat绿色版本,希望能够对大家有帮助。 1.首先去Tomcat官网下载Tomcat软件,在百度中搜索Tomcat,进入英文网址http://tomcat.apach…

智能识别云服务端平台之神【合合信息TextIn】

一、前言 众所周知,随着互联网和人工智能的发展,我们非常多的场景需要用到智能“识别”功能,比如人脸识别、通用文字识别、表格识别、办公文档识别、身份证、名片、营业执照等国内外卡证文字识别等等,同时识别与理解面临的全球性技…