汇编入门--基础知识(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.rhkb.cn/news/306338.html

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

相关文章

CCD机器视觉在工业生产中起到什么作用?

CCD机器视觉尺寸测量是基于相对测量方法,通过可追溯性、放大校准、自动边缘提升和屏幕图像测量来计算实际尺寸。在精密测量中,放大倍数必须达到35倍或更高,才能达到微米级的精度。此时,视线宽度小于5mm。对于大于5mm的物体&#x…

小型时间继电器ST3PA-C DC24V 带插座PF085A 导轨安装 JOSEF约瑟

ST3P系列时间继电器 系列型号 ST3PF-2Z(JSZ3F-2Z) 5s AC110V ST3PF(JSZ3F) 10s AC48V ST3PC-1(AH3-3) 5s DC24V ST3PC-1(AH3-3) 2h AC220V ST3PC-F(JSZ3C-F) AC380V ST3PA-E(JSZ3A-E) DC24V ST3PA-F(JSZ3A-F) DC24V ST3PF(JSZ3F) 10s AC36V ST3PC-1(AH3-3) 10s AC24V ST3PC-1…

Linux使用C语言实现Socket编程

Socket编程 这一个课程的笔记 相关文章 协议 Socket编程 高并发服务器实现 线程池 网络套接字 socket: (电源)插座(电器上的)插口,插孔,管座 在通信过程中, 套接字是成对存在的, 一个客户端的套接字, 一个…

【算法】求{1,2,3}序列的全排列,邻里交换法(Java)

【算法】求{1,2,3}序列的全排列,邻里交换法(Java) 代码如下: public class Main{static int count;static int a[] {1,2,3};public static void main(String[] args) {f(a,0);System.out.println(count);}p…

MAC苹果电脑如何使用Homebrew安装iperf3

一、打开mac终端 找到这个终端打开 二、终端输入安装Homebrew命令 Homebrew官网地址:https://brew.sh/ 复制这个命令粘贴到mac的终端窗口,然后按回车键 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/in…

未来汽车硬件安全的需求(1)

目录 1.概述 2.EVITA 2.1 EVITA HSM 2.2 EVITA保护范围 3.市场变化对车载网络安全的影响 3.1 非侵入式攻击的风险 3.2 量子计算机的蛮力攻击 3.3 整车E/E架构的变化 3.4 网络安全标准和认证 3.5 汽车工业的网络安全措施 4.汽车安全控制器 4.1 TPM2.0 4.2 安全控…

数据分析案例(一):地区收入的PCA主成分分析

练习1 地区收入的PCA主成分分析 0.变量说明 1.导包操作 核心思路:导入基础数据操作库包,PCA、k-means 库包,数据可视化库包 import pandas as pd import numpy as np from sklearn.decomposition import PCA from sklearn.preprocessing i…

Go语言中channel和互斥锁的应用场景

面对一个并发问题,我们的解决方案是使用channel还是互斥锁来实现并不总是很清晰。因为Go提倡使用通信来共享内存,所以一个常见的错误就是总是强制使用channel,不管实际情况如何。但是我们应该把这两种选择作为互补手段。 首先,简单回顾一下Go语言中的channel:channel是一种交…

软件设计师-基础知识科目-算法设计与分析8

八、算法设计与分析: 常见算法: 回溯方法: 用深度优先的探索问题的解空间。应用场景:N皇后问题。(背) 分支界限法: 用广度优先的探索问题的解空间,采用的是分支界限法算法设计策…

小程序开发SSL证书下载和安装

在开发小程序时,确保数据的安全传输至关重要,而实现这一目标的关键在于正确获取与安装SSL证书。以下详细介绍了从获取到安装SSL证书的完整流程,以助您为小程序构建可靠的加密通信环境。 一、小程序SSL证书类型选择: 域名验证型D…

互联网轻量级框架整合之设计模式

反射技术 Java的反射技术能够通过配置类的全限定名、方法和参数完成对象的初始化,甚至反射某些方法,大大的增强了Java的可配置型,这也是Spring IoC的底层原理,Java的反射技术覆盖面很广,包括对象构建、反射方法、注解、…

备战蓝桥杯---刷杂题2

显然我们直接看前一半&#xff0c;然后我们按照斜行看&#xff0c;我们发现斜行是递增的&#xff0c;而同一行从左向右也是递增的&#xff0c;因此我们可以直接二分&#xff0c;同时我们发现对称轴的数为Ck,2k. 我们从16斜行枚举即可 #include<bits/stdc.h> using name…

YOLOV5训练KITTI数据集实践

目录 一、YOLOV5下载安装二、KITTI数据集三、标签格式转换四、修改配置文件五、训练六、测试 一、YOLOV5下载安装 git clone https://github.com/ultralytics/yolov5.git conda create -n yolov5 python3.8 -y conda activate yolov5 cd yolov5 pip install -r requirements.t…

一文了解ERC404协议

一、ERC404基础讲解 1、什么是ERC404协议 ERC404协议是一种实验性的、混合的ERC20/ERC721实现的&#xff0c;具有原生流动性和碎片化的协议。即该协议可让NFT像代币一样进行拆分交易。是一个图币的互换协议。具有原生流动性和碎片化的协议。 这意味着通过 ERC404 协议&#xf…

gitlab、jenkins安装及使用文档一

gitlab-jenkins安装文档 IP地址操作系统服务版本192.168.75.137Rocky9.2jenkins 2.450-1.1 jdk 11.0.22 git 2.39.3192.168.75.138Rocky9.2gitlab-ce 16.10.0 gitlab安装 前期准备: 关闭防火墙及 SELinuxsystemctl disable --now firewalld sed -i s/^SELINUXenforcing$…

谷歌seo自然搜索排名怎么提升快?

要想在谷歌上排名快速上升&#xff0c;关键在于运用GPC爬虫池跟高低搭配的外链组合 首先你要做的&#xff0c;就是让谷歌的蜘蛛频繁来你的网站&#xff0c;网站需要被谷歌蜘蛛频繁抓取和索引&#xff0c;那这时候GPC爬虫池就能派上用场了&#xff0c;GPC爬虫池能够帮你大幅度提…

短剧小程序系统开发,让短剧观看与创作更加便捷。短剧系统源码搭建

一、目前短剧发展趋势 1. 市场规模&#xff1a;根据数据来看&#xff0c;2023年中国微短剧市场规模达到了373.9亿元&#xff0c;同比上升了267.65%。预计2024年市场规模将超过500亿元。这一市场规模的增长速度非常显著&#xff0c;显示出短剧行业的巨大潜力和发展前景。 2. 投…

RabbitMQ消息模型之Fanout消息模型

Fanout消息模型 * 广播模型&#xff1a;* 一个交换机绑定多个队列* 每个队列都有一个消费者* 每个消费者消费自己队列中的消息&#xff0c;每个队列的信息是一样的生产者 package com.example.demo02.mq.fanout;import com.example.demo02.mq.util.ConnectionUtils; impor…

Python异常处理try与except跳过报错使得程序继续运行的方法

本文介绍基于Python语言的异常处理模块try与except&#xff0c;对代码中出现的报错加以跳过&#xff0c;从而使得程序继续运行的方法。 在Python语言中&#xff0c;try语句块用于包含可能引发异常的代码&#xff0c;而except语句块则用于定义在出现异常时要执行的代码。其基本结…

Windows下编译boost库

官网&#xff1a;https://www.boost.org/ 下载地址&#xff1a;https://github.com/boostorg/boost 这里使用github下载 使用git bash运行bootstrap.sh 运行b2.exe,会生成bin.v2和stage文件夹 Cmake引入