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

 

 

 

相关推荐

  1. 计算机基础1-汇编基础

    2024-04-09 12:12:04       19 阅读
  2. MATLAB初学者入门1)—— 基础知识和功能介绍

    2024-04-09 12:12:04       20 阅读
  3. React基础知识入门

    2024-04-09 12:12:04       48 阅读
  4. 电脑入门基础知识

    2024-04-09 12:12:04       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 12:12:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 12:12:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 12:12:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 12:12:04       20 阅读

热门阅读

  1. x264 8x8 水平预测汇编分析

    2024-04-09 12:12:04       12 阅读
  2. 【已解决】解决前端模块与Node.js版本不兼容问题

    2024-04-09 12:12:04       12 阅读
  3. elasticsearch常见面试题

    2024-04-09 12:12:04       12 阅读
  4. 推荐系统学习记录——BERT、SBERT

    2024-04-09 12:12:04       12 阅读
  5. 【算法基础】第一章:基础算法

    2024-04-09 12:12:04       14 阅读
  6. go语言学习--2.函数

    2024-04-09 12:12:04       14 阅读
  7. mysql基础命令和json类型

    2024-04-09 12:12:04       18 阅读
  8. reids自定义RedisTemplate以及乱码问题解决

    2024-04-09 12:12:04       16 阅读
  9. Gitea:轻量级自托管Git服务的简介

    2024-04-09 12:12:04       12 阅读
  10. ubuntu23 安装nodejs

    2024-04-09 12:12:04       13 阅读