猿创征文 |汇编语言基础知识
目录
1.0小结
1.5小结
1.1汇编语言的“前身”——机械语言
非书本:
书本原图内容:
共两页
编辑1.2汇编语言的产生
经典图例
汇编语言与机器语言之间的关系(书本)
高级语言和汇编之间的关系(非书本)
书本原文
1.3汇编语言的组成(书本知识点)
3种指令
汇编语言的核心
1.4存储器(CPU)
存储器的种类
关于磁盘,内存和cpu之间的关系
1.5指令和数据
1.6储存单元
关于堆栈
堆是先进先出,栈是先进后出
1.7cpu对存储器的读写
书本图片介绍:
3类信息交互
总线
传递过程(书本知识点):
书本内容
1.8地址总线(寻址能力)
书上的一个思考问题
1.9数据总线
补充完善:
数据总线图例
1.10控制总线
1.11 内存地址空间(概述)
1.12 主板
1.13 接口卡
1.14各类存储器芯片(硬盘和内存与缓存)
从读写属性上分为两类
从功能和连接上分成下面三类
随机存储器:
装有BIOS的ROM
接口卡上的RAM
1.15内存地址空间
1.0小结
1.汇编指令是机器指令的助记符,同机器指令一一对应
2.每一种cpu都有自己的汇编指令集(原因是内部组成结构的排序和数量等不相同,也就是cpu型号不同)
3,cpu可以直接使用的信息在存储器中存放
4.在存储器中指令和数据没有任何区别,都是二进制信息
5.存储单元从零开始顺序编号
6.一个存储单元可以存储8个bit,即8位二进制数
7.1 Byte=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB
8.每一个cpu芯片都有许多管脚,这些管脚和总线相连。也就是说,这些管脚引出总线。一个cpu可以引出3种总线的宽度标志了这个cpu的不同方面的性能地址总线的宽度决定了cpu的寻址能力数据总线的宽度决定了cpu与其他器件进行传送时的一次数据传送量控制总线的宽度决定了cpu对系统中其他器件的控制能力在汇编课程中,我们从功能角度介绍了3类总线,对实际的连接情况不做讨论
1.5小结
最终运行程序的是cpu,我们用汇编语言的时候,必须要从cpu的角度考虑问题。对cpu来讲,
系统中的所有存储器的存储单元都处于一个统一的逻辑存储器中,他的容量受cpu寻址能力的限制。这个逻辑存储器即使我们所说的内存地址空间
汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。
——摘抄自百度
https://baike.baidu.com/item/计算机汇编语言/8786633?fr=aladdin
1.1汇编语言的“前身”——机械语言
提示:不喜欢看书本的,每部分都有笔者自己的理解和总结,可以跳到“非书本”(特别凝练)
同时书本也代表了专业和权威,有时间也希望大家能沉下心来,早日在学术上登峰造极。
非书本:
笔者以为:
机器语言:二进制
汇编语言:键盘字母代替一连串二进制
高级语言:封装了一连串字符串(字母组合)
以下是机器语言,汇编语言和高级语言的区别(其他博主写的很详细了)
https://blog.csdn.net/ling12abc/article/details/102993550?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166133785316782395350372%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166133785316782395350372&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-102993550-null-null.142^v42^pc_ran_alice,185^v2^control&utm_term=机器语言和汇编语言&spm=1018.2226.3001.4187https://blog.csdn.net/ling12abc/article/details/102993550?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166133785316782395350372%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166133785316782395350372&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-102993550-null-null.142%5Ev42%5Epc_ran_alice,185%5Ev2%5Econtrol&utm_term=%E6%9C%BA%E5%99%A8%E8%AF%AD%E8%A8%80%E5%92%8C%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80&spm=1018.2226.3001.4187
书本原图内容:
共两页
1.2汇编语言的产生
经典图例
汇编语言与机器语言之间的关系(书本)
高级语言和汇编之间的关系(非书本)
书本原文
非书本
关于寄存器后面会提到
1.3汇编语言的组成(书本知识点)
3种指令
1.汇编指令:机器码的助记符,有对应的机器码2.伪指令:没有对应的机器码,由编译器执行,计算机不执行(突然联想到力扣刷题的伪代码)3.其他符号:如加减乘除(...+-*/),由编译器识别,没有对你应的机器码
汇编语言的核心
汇编语言的核心 是汇编指令,他决定了汇编语言的特性
1.4存储器(CPU)
注意:这里的存储器并非指CPU,而是他们之间的关系很密切(实际上是内存)
cpu作为计算机核心部件,控制着计算机(运作和计算),而让cpu工作就需要发送和接收指令和数据
而这些指令和数据在存储器释放(你可以理解为缓冲区)
内存对于cpu处理器的重要性就如同思考对于大脑的重要
存储器的种类
ROM 只读存储器
RAM 随机存储器
Cache 高速缓存存储器
关于磁盘,内存和cpu之间的关系
磁盘中不像内存可以下一步被cpu处理
也就是说
磁盘-->寄存器(内存)-->cpu
但笔者想 寄存器不直接叫内存可能是还有些细微的区别,因此查询了其他笔者的博客,如下:
什么是随机存取_内存和存储器有什么区别?_weixin_39777163的博客-CSDN博客
下面了解cpu如何从内存中读取信息,以及向内存中写入信息的
1.5指令和数据
指令和数据是应用上的概念;在内存或磁盘上,指令和数据都是二进制
如
10011010101(随便打的,可能是二进制,也可能是16进制)
既可以代表数如69,也可以是MOV ax,[3](机器码转换成的汇编指令)
1.6储存单元
存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号
关于堆栈
写完汇编笔者准备写算法的内容,现在笔者一直也分不很清,只知道,堆不是垃圾堆那种封底的
堆是先进先出,栈是先进后出
好像大学要记住这句话,但是就像笔者们对堆栈的描述没有把这句话当重点的,反而大家对堆栈底部作用的解析更容易让我们明白堆栈的区别
换算单位
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024KB
1GB=1024MB
1TB=1024GB
磁盘的容量单位同内存一样,以上单位是微机中常用的计量单位
1.7cpu对存储器的读写
书本图片介绍:
3类信息交互
cpu想要进行数据的读写,必须和外部的器件(标准的说法是芯片),进行3类信息交互
存储单元的地址(地址信息)器件的选择,读或写的命令(控制信息)读或写的数据(数据信息)
总线
计算机中专门连接CPU和其他芯片的导线(bus)
总线从物理上来讲就是一根根导线的集合
逻辑上分三类
地址总线(address bus),控制总线(contorl bus),数据总线(data bus)
由图可见
总线(传递公共信息)连接了CPU和内存,
传递过程(书本知识点):
1.cpu通过地址线将地址信息3发出(这个发出具体是复制一份还是后面的送出,这件事可能和指针有关)
2.cpu通过控制线发出让内存读取命令,去选择存储芯片,通知他,将要从中读取数据
3.存储器将3单元中的数据8通过数据线送入cpu
注意:这里的3.8是单元格序号(类似于数组下标,从0开始,里面有不同的值)
书本内容
讲的就是 一串机械码如何对应汇编指令
1.8地址总线(寻址能力)
寻址,地址里储存的就是数据
既然 cpu通过地址总线来指定存储单元的,那么 地址总线上能传递多少个不同的信息,cpu就可以对多少个存储单元进行寻址
同时机器码中的0,1在导线中的稳定状态,只有两种,高低电平,因此假设10根导线,就可以传送10位二进制数据,也就是表示2的10次方个不同的数据,(最大1023,最小0,一共1024也就是2的10次方个)
书上的一个思考问题
问了下大佬,等他的回复
1.9数据总线
补充完善:
cpu与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了cpu和外界数据传送速度
数据总线图例
8根数据总线的,要传两次,
16根数据总线的传一次
1.10控制总线
cpu对外部器件的控制是通过控制总线来进行的。
在这里控制总线是个总称,控制总线是一些不同控制线的集合,、
同理,多少根控制总线,也意味着cpu提供多少种对外部器件的控制。
1.11 内存地址空间(概述)
cpu的地址总线为n,寻址能力为2的n次方
这2的n次方个内存单元构成了cpu的内存地址空间
1.12 主板
每一台pc机都有一个主板
主板<===>总线(地址/数据/控制)<===>内外部器件(cpu/存储器/外围芯片组/扩展插槽(其上一般有RAM内存条和各类接口卡)”)
1.13 接口卡
由于cpu对外部设备无法直接控制,如:显示器/音箱/打印机因此用插在扩展插槽上的接口卡间接控制扩展插槽通过总线与cpu取得联系
cpu===>接口卡===>外部设备
1.14各类存储器芯片(硬盘和内存与缓存)
一台pc机上有很多存储器芯片,在物理上连接是独立的
从读写属性上分为两类
RAM随机存储器(硬盘) | ROM只读存储器(内存,显存) |
可读可写 | 只读去不能写入 |
带电储存,关机后存储内容丢失 | 关机后内容不丢失 |
提示:显存就是高速内存,缓存是内存的一部分
从功能和连接上分成下面三类
随机存储器:
存放cpu使用的绝大部分程序和数据
其中,主存储器一般由两个位置上的RAM组成:主板上的RAM和扩展槽上的RAM
装有BIOS的ROM
什么是BIOS?
BIOS是厂商提供的软件,控制硬件进行基本的输入输出
例如:
主板和接口卡上有存储相应BIOS的ROM |
主板上的ROM存储着主板的BIOS |
显卡的ROM上存储着显卡的BIOS |
如果网卡上装有ROM,其中就可以存储网卡的BIOS |
BIOS和ROM之间就是这样的关系
接口卡上的RAM
由于某些接口卡需要大量输入输出(显示器的),对数据进行暂时存储,其上RAM,一般称为显存(高速缓存)
也就是当我们把需要显示的内容写入显存,然后就会出现在显示器上
因为是手机拍的,将就看(不会用补帧软件)
1.15内存地址空间
1.14中提到的存储器,在物理上是独立的器件,但是有两点相同的
1.都与CPU的“总线”相连
2.cpu对它们进行读或写的时候都通过控制线发出内存读写命令
也就是在cpu眼中,存储器就相当于内存(即内存地址空间)
如图所示:
由图我们可以想象到,所有的物理存储器都可以假想成一个具有若干存储单元组成的“逻辑存储器”,而这些物理存储器在假想的逻辑存储器中各自占有一段地址空间,cpu在这段空地址中间读写
数据,实际上就是在对应的物理存储器中读写数据
猿创征文 |汇编语言基础知识相关推荐
- 猿创征文|我的前端学习之旅【来自一名大四老学长的真情流露】
猿创征文 | 我的前端学习之旅 自我介绍 我浑噩的大一大二(是不是另一个你) 我的大三生活 大三上(学习过程.学习方法.推荐网站) 大三下(技术提升.荣誉证书.推荐比赛) 我与 CSDN 的机缘(从小 ...
- 猿创征文|收到谷歌开发者大会正式邀请(Java学生的自学之路)
文章目录 一.前言 二.收到谷歌邮件 三.感想 四.学习之路 1. 坚持看网课并整理笔记 2.勤加练习 3.坚持总结 4.刷题技巧 5.心态调整 五.结语 一.前言 上一次通过了CSDN内部筛选后,在 ...
- 猿创征文|前路有光,初心莫忘,从编程小白,到如今小有所成,我这一路是如何走来的?
前言 无论是谁,对于编程来说,一开始看都很难看懂的,这也是为什么这个行业,属于互联网高薪行业代表的原因之一. 我是属于自学编程的非科班码农,在我看来,自学编程应该重点思考下自己的学习方式以及是否对 J ...
- 猿创征文 | Linux运维工程师的10个日常使用工具分享
猿创征文 | Linux运维工程师的10个日常使用工具分享 一.本次分享工具导航 二.Adminer数据库管理工具 1.Adminer介绍 2.Adminer的特点 3.Adminer的使用 4.Ad ...
- 猿创征文|OpenCV 如何提高条形码识别率
猿创征文|OpenCV 如何提高条形码识别率 今天介绍一个使用OpenCV提高条形码识别率的算法 平台及OpenCV库简介 强烈建议:先学习一下OpenCV的课程 步入正题:从图片读取到条码截取部分( ...
- 猿创征文|当我在追光 我与光同航--我与Java的技术成长之路
文章目录 前言 材料转码 初识JAVA 大学建议 1. 参加比赛 2. 坚持创作 3.养成看书的习惯 Java路线 1. java基础 2. 数据库 3. javaWeb 4. 框架 前言 今天借着官 ...
- 猿创征文 | 国产数据库实战之TiDB 数据库快速入门
猿创征文 | 国产数据库实战之TiDB 数据库快速入门 一.系统检查 1.检查系统版本 2.查看本地IP地址 3.TiDB集群介绍 二.快速部署本地测试集群 1.安装 TiUP工具 2.声明全局环境变 ...
- 猿创征文 | 使用Docker部署openGauss国产数据库
猿创征文 | 使用Docker部署openGauss国产数据库 一.openGauss介绍 1.openGauss简介 2.openGauss产品定位 3.支持的架构和操作系统版本 二.检查宿主机环境 ...
- 猿创征文 | 国产数据库实战之使用Docker部署OceanBase 数据库
猿创征文 | 国产数据库实战之使用Docker部署OceanBase 数据库 一.OceanBase 介绍 1.OceanBase介绍 2.OceanBase特点 3.OceanBase 数据库基础概 ...
最新文章
- 专访中国移动钱岭:大数据更像是一种“倍增器”
- php轮播代码生成器,最简单的Banner轮播左右切换效果代码及实现思路(附带源码)...
- 【Python教程】dict字典的使用方法
- 你犯了没?电脑最忌讳的18个小动作之三
- b树范围查找_使用段树查找最大查询范围
- SinGAN实现的单图动画,ICCV 2019 Best Paper
- java+mysql中文乱码解决
- 微信红包惊人秘密:谁最容易抢到大红包?
- 鸿蒙系统的软件怎么下载,鸿蒙系统官网下载软件电脑版
- 完成知乎项目的登录和注册功能(一)
- dw写HTML怎么设置背景颜色,dreamweaver cs6设置div背景颜色的具体操作教程
- SVN更新报the working copy needs to be upgraded解决办法
- 解决 required a bean of type ‘com.aliyun.oss.OSSClient‘ that could not be found
- Java基础(32)
- 掌握这个技能,再也不用为面试发愁了
- python列表查找整数_Python:找出整数列表是否为coheren
- 微信小程序如何获取云存储中指定文件夹下所有图片
- java pgp 加密_java – 如何解密签名的pgp加密文件?
- 怎么把柱形图和折线图放在一起_EXCEL中统计图表怎么合并在一起?(如柱形图和折线图)...
- java流式编程(六)Collector接口