汇编入门--基础知识(1)

1.汇编语言的概念

        汇编语言是一种低级编程语言,它与计算机的机器语言非常接近,但比机器语言更易于人类阅读和理解。汇编语言是用一系列的助记符来表示机器语言的操作码和操作数。每种计算机体系结构(如x86、ARM等)都有自己的汇编语言版本,因为每种体系结构的机器语言都是特定于该体系结构的。

2.汇编语言的特点

    •    接近硬件:汇编语言允许程序员直接操作计算机的硬件资源,如处理器寄存器、内存地址等。
    •    高效:由于汇编语言几乎直接转换为机器码,它能够生成非常高效的代码,这在性能敏感的应用程序(如嵌入式系统、游戏开发和系统编程)中非常重要。
    •    体系结构特定:每种类型的处理器都有其自己的汇编语言,这意味着为一种体系结构编写的汇编程序通常不能在另一种体系结构上运行,除非进行修改或通过模拟器。
    •    可控性和灵活性:汇编语言提供了对计算机硬件的精确控制,使程序员能够编写非常精细和优化的代码。
    •    可读性低:相对于高级编程语言,汇编语言的可读性较差,学习和编写汇编程序需要深入了解计算机的硬件和体系结构。

下面是汇编语言在程序设计里的地位

我们写的程序都是先变成汇编语言,然后通过编译器变成机器语言,最后变成计算机执行的东西 

3.汇编语言的组成

汇编语言由三部分组成的

a.汇编指令(能直接翻译成机器码的,实质就是机器码的助记符)

b.伪指令(编译器执行)

c.其他符号 (编译器识别)

汇编语言的核心就是汇编指令,伪指令和其他符号cpu都是不认识的,通过编译器去执行。

4.存储器

        cpu工作时,要给他提供指令和数据,指令和数据就放在存储器里,简单的说就是内存,这里的内存要和硬盘区别开,内存(RAM)能够直接被cpu读取,可以临时储存数据,其访问速度是要高于硬盘的,但是缺点就是,如果断电,内存中的数据就没了。硬盘(HDD)相比于内存来说,读写速度慢,但是断电也可以保存数据。

         三者的关系:

     •    当计算机启动时,操作系统从硬盘加载到内存中。随后,CPU从内存中读取操作系统的指令来执行。
    •    当运行程序时,程序的代码和所需数据从硬盘加载到内存中,以便CPU可以直接访问它们。这样做是因为访问内存比访问硬盘快得多。
    •    CPU执行程序时,可能需要读取或写入数据。如果这些数据当前不在内存中,则系统会从硬盘中检索它们,并将它们加载到内存中以供CPU使用。
    •    在处理数据时,CPU可能会将结果暂时存储在内存中。如果需要长期保存这些结果,它们会被写回硬盘。

而且,cpu不能直接访问硬盘,硬盘数据是加载到内存后才被cpu读取的

 

5.指令和数据

指令和数据只是对于我们人来说,可以这么去区分,对于电脑来说其实都是0和1,一个数可以表示一个二进制数字,也可以是一个指令,具体由人去决定。

6.存储单元

存储器被划分为若干个存储单元,每个存储单元从0开始编号,为0~127;

7.cpu对数据的读写

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

要有:存储单元的地址,器件的选择,读和写的数据的地址

计算机里有专门链接cpu和其他芯片相连的导线,通常称为总线,分为地址总线,数据总线,控制总线

这里的内存是广义的内存 

 那么cpu如何在内存读或写一个数据呢?我们以读取为例子

首先控制总线表示为读取,地址总线输入需要读取数据的地址,然后数据通过数据总线被读取到cpu

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring】一问详解什么是Spring IoC和DI

目录 一、IoC & DI入门1.1、Spring1.1.1、什么是容器1.1.2、什么是IoC 1.2、IoC介绍1.2.1、传统程序开发1.2.2、问题分析1.2.3、问题解决1.2.4、 IoC优势 1.3、Bean的作用域1.4、DI介绍 二、IoC详解2.1、Bean的存储2.1.1、类注解的使用2.1.2、获取bean对象的其他方式2.1.3、…

【数据结构】数组(稀疏矩阵、特殊矩阵压缩、矩阵存储、稀疏矩阵的快速转置、十字链表)

稀疏矩阵、矩阵压缩、稀疏矩阵的快速转置、十字链表 目录 稀疏矩阵、矩阵压缩、稀疏矩阵的快速转置、十字链表1.数组2.数组的顺序表示和实现3.特殊矩阵的压缩存储(1). 上三角矩阵—列为主序压缩存储(2). 下三角矩阵—**行为主序压…

uni-app项目创建方式

原生小程序与uni-app的区别 创建uni-app的方式 1.通过HBuilderX创建 2.通过命令行创建 vue3ts版:npx degit dcloudio/uni-preset-vue#vite-ts 项目名称 用vscode开发uni-app项目 安装命令:npm i -D types/wechat-miniprogram uni-helper/uni-app-typ…

HarmonyOS 应用开发-边缓存边播放案例

介绍 OhosVideoCache是一个支持边播放边缓存的库,只需要将音视频的url传递给OhosVideoCache处理之后再设置给播放器, OhosVideoCache就可以一边下载音视频数据并保存在本地,一边读取本地缓存返回给播放器,使用者无需进行其他操作…

【爬虫+数据清洗+可视化】用Python开发舆情分析文本挖掘“淄博烧烤“可视化大屏

先上效果截图: 动态演示效果: 【大屏演示】Python可视化舆情大屏「淄博烧烤」 主要用到的技术栈: requests 爬虫发送请求json 解析返回数据re 正则表达式清洗文本pandas保存csv文件sqlalchemy 保存MySQL数据pyecharts 可视化开发snownlp 情感…

17 - 微程序控制

---- 整理自B站UP主 踌躇月光 的视频 1. 实验目标 将 RAM 中 0 地址内容和 1 地址内容相加,结果存入 2 地址。 需要从 RAM 读取数据 需要寄存器暂存数据 需要从 ROM 中读取控制程序 3 4 > 7 2. 实验过程 【17 - 微程序控制】 2.1 改造 ALU 2.2 程序计数…

成都欣丰洪泰文化传媒有限公司电商服务的新锐力量

在当今电商行业风起云涌的时代,成都欣丰洪泰文化传媒有限公司以其独特的视角和专业的服务,成为了业内的佼佼者。该公司专注于电商服务,致力于为广大商家提供全方位、多层次的解决方案,助力商家在激烈的市场竞争中脱颖而出。 一、…

位置编码学习

基本概念 关于位置编码的一切:https://kexue.fm/archives/8130#T5%E5%BC%8F 残差连接 Post Norm 关注深度 残差的意思是给前面的层搞一条“绿色通道”,让梯度可以更直接地回传,但是在Post Norm中,这条“绿色通道”被严重削弱…

今日arXiv最热大模型论文:人民大学发布,拯救打工人!Office真实场景下的大模型表格处理

引言:大语言模型事实召回机制探索 该论文深入研究了基于Transformer的语言模型在零射击和少射击场景下的事实记忆任务机制。模型通过任务特定的注意力头部从语境中提取主题实体,并通过多层感知机回忆所需答案。作者提出了一种新的分析方法,可…

牛客 2024春招冲刺题单 ONT82 腐烂的苹果【中等 BFS Java,Go】

题目 题目链接: https://www.nowcoder.com/practice/54ab9865ce7a45968b126d6968a77f34 思路 广度优先搜索。首先找到2坐标集合,然后每次往四周为1的坐标扩展参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数…

RAG基础知识及应用

简单介绍下RAG的基础知识和RAG开源应用 “茴香豆" 一. RAG 基础知识 1. RAG工作原理 RAG是将向量数据库和大模型问答能力的有效结合,从而达到让大模型的知识能力增加的目的。首先将知识源存储在向量数据库中,当提出问题时,去向量数据库…

客户案例丨拓数派向量计算引擎PieCloudVector助力东吴证券AIGC应用升级

1.项目背景 随着人工智能技术的不断创新和应用,我们可以看到人工智能在各个领域的应用越来越广泛。深度学习技术在图像识别、语音识别、自然语言处理等领域表现出色。机器学习算法的改进将解决更多实际问题,如增强学习、迁移学习和联合学习等&#xff…

学生用什么品牌的台灯好,学生护眼台灯推荐品牌

在童年的岁月里,我们常常无知于如何正确地使用眼睛,对于何种光线最有益眼睛健康也缺乏了解。这些年轻时的疏忽,如今在我的眼镜度数上得到了反映,近视已接近千度,这是许多同样经历的视友都能共鸣的体验。随着时间的推移…

MoonBit 最新动态:MoonBit 引入实验性的测试覆盖率统计工具

MoonBit更新 支持 array.iter intrinsic 并且已经对标准库中的函数进行标注&#xff0c;从而可以在特定情况下将循环进行内联&#xff0c;以提升运行效率 /// intrinsic %array.iter pub fn iter[T](self : Array[T], f : (T) -> Unit) -> Unit {for i 0; i < self…

pymilvus创建IVF_FLAT向量索引

索引简介 索引的作用是加速大型数据集上的查询。 目前&#xff0c;向量字段仅支持一种索引类型&#xff0c;即只能创建一个索引。 milvus支持的向量索引类型大部分使用近似最近邻搜索算法(ANNS,approximate nearest neighbors search) 。ANNS 的核心思想不再局限于返回最准确…

棋牌室计时吧台计费收费灯控管理系统软件操作流程

棋牌室计时吧台计费收费灯控管理系统软件操作流程 一、前言 以下软件操作教程以&#xff0c;佳易王棋牌桌球计时计费管理系统软件灯控版V17.87为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 该计时计费软件可以是棋牌和桌球混合同时计时计费 …

uniapp:Hbuilder没有检测到设备请插入设备或启动模拟器的问题解决

问题 使用模拟器调试运行项目时&#xff0c;出现以下提示&#xff0c;“没有检测到设备&#xff0c;请插入设备或启动模拟器后点击刷新再试”。排查了一天最终找到原因。 解决 已确认模拟器是已经正常启动&#xff0c;并且Hbuilder设置中的adb路径和端口都配置没有问题&#…

123124

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

如何挂载img镜像以及lvm分区

上一章节&#xff0c;我在win10下利用qemu安装了一个aarch64的 kylin-server-v10的ISO系统镜像包。安装时将系统安装到了虚拟硬盘kylin-server-v10.img 里&#xff0c;现在有个需求&#xff0c;要读出kylin-server-v10.img中文件系统的内容。 通过fdisk命令可以看到 kylin-ser…

element-ui drawer 组件源码分享

今日简单分享 drawer 组件的源码实现&#xff0c;从以下五个方面来分享&#xff1a; 1、drawer 组件页面结构 2、drawer 组件属性 3、drawer 组件 slot 4、drawer 组件方法 5、drawer 组件事件 一、drawer 组件页面结构 二、drawer 组件属性 2.1 append-to-body 属性&am…