汇编入门--基础知识(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

 

 

 

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

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

相关文章

linux系统上做性能压力测试 —— 筑梦之路

这里主要使用stress 和 stress-ng。 简介 stress: stress 是一款简单但功能强大的工具,可对 Linux 系统施加可配置的 CPU、内存、I/O 或磁盘压力。通过模拟繁重的工作负载,系统管理员可以观察系统在压力下的表现反应。 这一工具的价值在于找出系统潜在的…

12.java openCV4.x 入门-HighGui之图像窗口显示

专栏简介 💒个人主页 📰专栏目录 点击上方查看更多内容 📖心灵鸡汤📖我们唯一拥有的就是今天,唯一能把握的也是今天建议把本文当作笔记来看,据说专栏目录里面有相应视频🤫 🧭文…

Qt-线程2-moveToThread

0. 写在前面 Qt-线程1-Run-CSDN博客 上一篇介绍了为何要使用线程,这篇介绍第二种线程编写方式;这种方式代码写起来复杂一些,硬币总是有两个面,虽然写起来复杂,但是逻辑是很清晰的。 (1)新…

算法刷题Day29 |491.递增子序列、46.全排列、47.全排列 II

目录 0 引言1 递增子序列1.1 我的解题 2 全排列2.1 我的解题 3 全排列 II3.1 我的解题 🙋‍♂️ 作者:海码007📜 专栏:算法专栏💥 标题:算法刷题Day29 |491.递增子序列、46.全排列、47.全排列 II❣️ 寄语&…

linux安装dubboAdmin

1.环境准备: jdk-8u391-linux-x64apache-maven-3.9.6apache-tomcat-8.5.100 2.安装注册中心zookeeper zookeeper的安装看我的另一篇文章,安装完成后保持启动状态 linux安装Zookeeper的详细步骤-CSDN博客 3.安装dubboadmin 源码下载地址:R…

vue快速入门(十四)reduce求和

注释很详细&#xff0c;直接上代码 新增内容 非嵌套情况求和嵌套情况求和 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale…

C++第十五弹---string基本介绍(一)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、什么是STL 2、STL的版本 3、STL的六大组件 4、STL的重要性 5、如何学习STL 6、STL的缺陷 7、为什么学习string类 7.1、C语言中的字符串…

[C++][特殊类设计][单例模式]详细讲解

目录 1.[不能被拷贝]2.[只能在堆上创建对象]3.[只能在栈上创建对象]4.[请设计一个类&#xff0c;不能被继承]5.[只能创建一个对象(单例模式)]0. 设计模式1.单例模式2.饿汉模式3.懒汉模式4.单例对象释放问题 1.[不能被拷贝] 拷贝只会发生在两个场景中&#xff1a; 拷贝构造函数…

Google play开发者新手必看:2024最新最全的谷歌上架避坑指南

Google Play作为一个全球性的Android应用分发平台&#xff0c;吸引了无数开发者的目光。据统计&#xff0c;该平台的月活跃用户数已超过20亿&#xff0c;这无疑是一个巨大的市场。 但随着行业的发展&#xff0c;谷歌风控和审核机制不断升级&#xff0c;即便是经验丰富的开发者也…

Nginx配置文件修改结合内网穿透实现公网访问多个本地web站点

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

抖音评论ID提取工具|视频关键词评论批量采集软件

抖音评论ID提取工具&#xff1a;批量抓取抖音评论 抖音评论ID提取工具是一款功能强大的软件&#xff0c;可以帮助您批量抓取抖音视频下的评论信息。通过输入关键词和评论监控词&#xff0c;即可进行评论的抓取&#xff0c;并提供评论昵称、评论日期、评论内容、命中关键词以及所…

C++更改文件名称,在文件名增加字符

void ChangeName(string filename) {char flagcharacter a; // 要在文件名前添加的标志字符int filelocation 0 ; // 暂存文件名起始下标int directoryend 0 ; // 暂存文件夹名结束下标for(int i (filename.length() - 1); i>0; i--)if(filenam…

嵌入式系统在智能家居与工业自动化等领域的应用创新

嵌入式系统在智能家居与工业自动化等领域的应用创新 随着科技的飞速发展&#xff0c;嵌入式系统已经渗透到我们生活的方方面面&#xff0c;特别是在智能家居和工业自动化领域&#xff0c;嵌入式系统的应用正带来前所未有的变革和创新。本文将深入探讨嵌入式系统在这两个领域的…

【CSDN活动】人工智能:前沿科技中的创业机遇与挑战

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 人工智能&#xff1a;前沿科技中的创业机遇与挑战一、AI技术的快速发展与应用拓…

QML学习记录:并排页面切换效果的实现

定义一个ApplicationWindow窗口&#xff0c;通过添加SwipeView和PageIndicator来实现页面切换效果和显示当前页面位置的指示器。 ApplicationWindow {id:rootvisible: truewidth: 340height: 480title: qsTr("SwipeView") // 定义一个SwipeView用于页面切换效果 Swip…

Oracle ADG主备切换

文章目录 一、主库切换备库二、备库切换主库三、新备库&#xff08;原主库&#xff09;启用实时日志应用四、新主库切换日志五、查看当前主备库状态 一、主库切换备库 # 查看切换前的状态&#xff0c;确认当前从操作的是主库 select name,open_mode,switchover_status from v$…

Java每日一题

我的思路是: 通过示例我们可以判断出一共会有四种情况1.正常情况、2.负数、3.最后一位是0、4.反转后越界。 所以我就打算分为四步进行处理&#xff1a;首先我会创建两个StringBulider&#xff0c;一个用来存储原数字&#xff0c;一个用来存储结果集。 第一种情况进行处理的思路…

无人机倾斜摄影技术在智慧城市中的应用

随着智慧城市的不断发展和完善&#xff0c;新兴热门技术也不断崛起。无人机技术作为其中之一&#xff0c;具有操作简单、应用灵活等优势&#xff0c;受到了各个行业的青睐。现阶段&#xff0c;无人机技术与5G移动通信系统、人工智能系统深度融合&#xff0c;实现了无人机技术的…

LLMs之FreeGPT35:FreeGPT35的简介、安装和使用方法、案例应用之详细攻略

LLMs之FreeGPT35&#xff1a;FreeGPT35的简介、安装和使用方法、案例应用之详细攻略 目录 FreeGPT35的简介 FreeGPT35的安装和使用方法 1、部署和启动服务 Node 2、使用 Docker 部署服务&#xff1a; 运行 Docker 容器以部署服务 使用 Docker Compose 进行更方便的容器化…

抖音视频无水印采集软件|视频关键词批量提取工具

轻松实现抖音视频批量下载&#xff0c;让营销更高效&#xff01; 随着抖音视频在营销领域的日益普及&#xff0c;如何高效地获取并管理大量视频资源成为了市场人员的重要挑战。针对这一需求&#xff0c;我们推出了一款强大的音视频无水印采集软件&#xff0c;帮助您轻松实现批量…