贺利坚汇编语言课程笔记 绪论

news2024/11/29 6:30:19

贺利坚汇编语言课程笔记 绪论

又是女娲补天式地从零开始两周零基础冲击六十分…

文章目录

  • 贺利坚汇编语言课程笔记 绪论
    • 一.Why should we learn Assembly language?
    • 二.从机器语言到汇编语言
    • 三.计算机组成
      • 指令和数据的表示
      • 计算机中的存储单元
      • 计算机中的总线
      • x86CPU性能一览
    • 四.内存的读写与地址空间
      • CPU对存储器的读写
      • 内存地址空间
      • 将各类存储器看作一个逻辑存储器——统一编址
      • 内存地址空间的分配方案——以8086PC机为例
    • 五.实践环境
    • 参考资料

一.Why should we learn Assembly language?

  • 课里面提到的每月更新的TIOBE编程语言排行榜

    • 汇编确实还挺靠前的

      image-20221126135653011 image-20221126135653011

      soga是这样统计的
      image-20221126135653011

  • 为啥要学?呜呜其实心里对硬件还是有抵触的

    • 先相信下面的理由吧,等体会到了个中趣味再回来更新🤭

      image-20221126140324817
  • 贺老师课程定位

    image-20221126140350432

二.从机器语言到汇编语言

  • 机器语言

    • 是一台机器可以正确执行的命令
    • 机器指令的集合
    • 由一串 二进制数表示
  • 汇编语言

    • 主体是 汇编指令

      • 汇编指令和机器指令的差别在于 指令的表示方法

      • 汇编指令是机器指令的 助记符,是机器指令便于记忆的书写格式
        image-20221126140350432

image-20221126140350432
  • 用汇编语言编写程序的工作过程
    image-20221126140350432
image-20221126140350432

三.计算机组成

  • CPU是核心。要让它工作,就必须提供 指令和数据
  • 指令和数据在存储器(内存)中存放

指令和数据的表示

  • 计算机中的数据和指令,存储在内存或磁盘上

  • 数据和指令,都是二进制信息

  • 同一个二进制数 可以当作数据也可以当作指令,由于 CPU 决定

    • 例:二进制信息1000100111011000是数据,还是指令?
      • 1000100111011000 ─> 89D8H (数据)
      • 1000100111011000 ─> MOV AX,BX(程序)
  • 数据的表示

  • 数据量:B、KB、MB、GB、TB…

计算机中的存储单元

  • 存储器被划分为若干个 存储单元,从0开始顺序编号

计算机中的总线

  • 在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。

    • 物理上:一根根导线
    • 逻辑上
      • 地址总线
      • 数据总线
      • 控制总线
  • 地址总线

    • CPU是通过地址总线来指定存储单元的。
    • 地址总线宽度,决定了 可寻址的存储单元大小。
    • N根地址总线(宽度为 N),对应寻址空间 2 N 2^N 2N
  • 数据总线

    • CPU与内存或其它器件之间的数据传送是通过 数据总线来进行的。 •
    • 数据总线的宽度决定了CPU和外界的数据传送速度。
  • 控制总线

    • CPU通过控制总线对外部器件进行控制。
    • 控制总线是一些不同控制线的集合
    • 控制总线宽度决定了CPU 对外部器件的控制能力

x86CPU性能一览

发现一个截图直接转表格的网站:白描网页版!

CPU地址总线宽度寻址能力数据总线宽度一次传送数据读取1KB数据要读__次
80801664KB81B1024
8088201MB81B1024
8086201MB162B512
802862416MB162B512
80386324GB324B256

四.内存的读写与地址空间

CPU对存储器的读写

  • CPU要想进行数据的读写,必须和外部器件进行三类信息的交互:

    • 地址信息:存储单元的地址
    • 控制信息:器件的选择,读或写命令
    • 数据信息:读或写的数据
    • 机器码: 101000000000001100000000
      • 16进制:A00300
      • 汇编指令:MOV AL,[3]
      • 含义:从3号单元读取数据送入寄存器AL
  • 上例动画演示:CPU从内存中3号单元处读取数据的过程

image-20221128061859831

image-20221128061918992

内存地址空间

  • CPU地址总线宽度为N,对应寻址空间 2 N 2^N 2N

  • 8086CPU的地址总线宽度为20,那么可 以寻址1MB个内存单元,其内存地址空 间为1MB

  • 从CPU角度看地址空间分配

    RAM :随机存储器,可读可写,易失

    ROM:只读

image-20221128062232850 image-20221128061232878

这句话来自B站弹幕:就像一个公司(逻辑存储器),有不同部门(物理存储器),不同部门有不同的办公区域(地址段或),部门有很多人(存储单元)

将各类存储器看作一个逻辑存储器——统一编址

  • 所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器
  • 每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间
  • CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据

内存地址空间的分配方案——以8086PC机为例

五.实践环境

soga

  • 本课选用DOS模拟器

  • 注意要挂载格式

把指令所在的路径挂载到c

参考资料

  • B站贺利坚老师教程

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

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

相关文章

Java日期时间的前世今生

🙉 作者简介: 全栈领域新星创作者 ;天天被业务折腾得死去活来的同时依然保有对各项技术热忱的追求,把分享变成一种习惯,再小的帆也能远航。 🏡 个人主页:xiezhr的个人主页 前言 日常开发中&…

gitpod.io,云端开发调试工具。

gitpod,一款在线开发调试工具,使用它你可以在网页上直接开发软件项目了。 比如你的项目仓库在github上,你可以直接在网址的前面添加gitpod.io/#,然后回车就能在网页上使用vscode打开这个项目了。 打开的效果: 可以安装…

ZZULIOJ 2066: 带分数

ZZULIOJ 2066: 带分数 题意: 给定一个数NNN,问有多少组a,b,ca,b,ca,b,c满足abcNa\dfrac bcNacb​N,且a,b,ca,b,ca,b,c三个数不重不漏地涵盖1−91-91−9这999个数字,输出总组数 解题思路: 暴力枚举出999个数的全排列…

sql数据库入门(1)

前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>: 本篇记录一下牛牛在学校学习的sql serve数据库知识,内…

学了PS了还用学习AI吗,有什么区别

AdobeIllustrator和AdobePhotoshop它是目前市场上设计师使用最广泛的两种软件。很多刚接触的同学会发现,两者都可以达到一些效果,导致一种错觉,认为任何人都可以使用,所以他们可以随意使用。 虽然在PS和Ai它确实可以用来做类似的…

顶刊示例-经济研究数据-全国、省、市-城市人均收入、农村人均收入面板数据

(1)全国城乡居民人均收入 1、数据来源:中国统计年鉴 2、时间跨度:1978-2020 3、区域范围:国家 4、指标说明: 包含如下指标: 全国居民人均可支配收入 城镇居民人均可支配收入 农村居民人均…

深入浅出解析——MYSQL|触发器

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

AtCoder Beginner Contest 279 F BOX 并查集 (大意失荆州

前言 赛时一直RE,思路很清晰,不知道RE哪里。。qwq 赛后开断点发现,map的大小不变, 最后发现是一个if条件写错了,寄。 不知道为什么会想起 银河英雄传说 题意: 初始n个盒子,盒子iii放着编号为i…

2023年天津财经大学珠江学院专升本退役士兵免试职业技能考查大纲

天津财经大学珠江学院2023年高职升本科职业技能综合考查考试大纲 (仅适用于符合条件的退役士兵考生)《管理学原理》 一、本大纲系天津财经大学珠江学院2023年高职升本科《管理学原理》职业技能综合考查考试大纲,仅适用于符合条件的退役士兵考…

面试官:synchronized与Lock有什么区别?

作为一名程序员,在求职面试时,不知道你在求职面试时常会遇到关于线程的问题。张工是一名java程序员,3年多工作经验,有次到一家互联网公司面试软件开发工程师岗位,面试官就问了他这样一个问题。synchronized与Lock有什么…

Android APP深度优化—内存映射机制(mmap)

mmap原理 open一个文件,然后调用mmap系统调用,将文件的内容的全部或一部分直接映射到进程虚拟空间中文件存储映射部分;完成映射关系后,mmap返回值是一个指针,进程可以通过采用指针方式读写操作这一段内存;…

vue3 antd项目实战——使用filter实现简单的table表格搜索功能

零基础filter实现最简单的table表格知识调用核心干货下期预告关键字模糊查找(纯前端)关键字模糊查找(前后交互)知识调用 功能实现可能要用到的知识:vue3ant design vuets实战【ant-design-vue组件库引入】vue3项目实战…

MyBatis-Plus删除操作知识点总结

系列文章目录 Mybatis-Plus知识点[MyBatisMyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客 Mybatis-PlusSpringBoot结合运用_心态还需努力呀的博客-CSDN博客MyBaits-Plus中TableField和TableId用法_心态还需努力呀的博客-CSDN博客MyBatis-Plus中的更新操作&#xf…

移动无线点餐客户端的研究与实现(Java+Android)

目录 1 绪 论 2 1.1 研究的背景及意义 2 1.2 本文主要内容 2 2.1 系统架构 3 2.2 关键技术 3 2.2.1 JDBC 3 2.2.2 Jquery 4 2.2.3 Ajax 4 2.3 开发环境及平台 5 2.3.1 Eclipse 5 2.3.2 MyEclipse 6 2.3.3 Tomcat服务器 6 2.3.4 应用平台Android 7 3 订餐系统分析与设计 9 3.1需…

机器学习:图文详解密度聚类DBSCAN算法(附Python实现)

目录0 写在前面1 密度聚类2 DBSCAN算法3 Python实现3.1 算法复现3.2 可视化实验0 写在前面 机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型:决策树…

C#线程间操作无效:从不是创建控件“textbox1”的线程访问它

在C#的多线程访问中,在线程间的相互访问时因为线程安全问题有访问限制,在创建一般线程时,对于界面元素访问时这样的问题比较常见。 比如,创建一个form1,上面放置一个textbox控件,创建一个线程去访问textbox…

3_SpringMVC_执行流程

1DispatcherServlet:前端控制器 用户请求到达前端控制器,它就相当于 mvc 模式中的 c,dispatcherServlet 是整个流程控制的中心,由 它调用其它组件处理用户的请求,dispatcherServlet 的存在降低了组件之间的耦合性。 2…

【学习笔记43】JavaScript的事件

JavaScript的事件一、JS的事件1、事件的三要素2、DOM 0级事件绑定3、DOM 2级事件绑定(事件监听)二、浏览器事件三、鼠标事件1. 左键单击:click2. 双击事件:dblclick3.右键事件:contextmenu4. 鼠标按下事件:mousedown5. 鼠标抬起事…

编写Servlet代码获取页面body中json数据

目录 1、在 maven 项目中引入 jackson 2、编写代码 ① 介绍 jackson 提供操作 json 数据的类和方法 ② 确定 json 数据格式,并写出对应的类 ③ 编写servlet代码 3、使用 postman 发送数据观察结果 4、拓展 readValue 方法返回构造对象的过程 本文使用maven项目&…

HTML5详解

文章目录1 网页基本标签1.2 标题标签1.3 段落标签1.4 换行标签1.5 水平线标签1.6 字体样式标签1.7 注释和特殊符号2 图像、超链接、网页布局2.1 图像2.2 超链接标签2.3 块元素和行内元素2.4 网页布局3 列表、表格、媒体元素、iframe内联框架3.1 列表3.2 表格3.3 媒体元素3.4 if…