【开篇】汇编语言之基础知识篇

news2024/11/21 1:39:46

文章目录

  • 📋前言
  • 一. ⛳️机器语言
  • 二. ⛳️汇编语言的产生
  • 三. ⛳️汇编语言的组成
  • 四. ⛳️存储器
  • 五. ⛳️指令和数据
  • 六. ⛳️存储单元
  • 七. ⛳️CPU 对存储器的读写
    • 7.1 地址总线
    • 7.2 数据总线
    • 7.3 控制总线
  • 📝总结


📋前言

🏠 个人主页:@聆风吟的个人主页
⏰寄语:少年有梦不应止于心动,更要付诸行动。
☀️欢迎大家关注🔍点赞👍收藏⭐️留言📝
🌈作者留言:文章创作不易,可能会有些地方出现错误,还希望广大读者们能够帮忙指出,让我们大家一起共同进步。



一. ⛳️机器语言

    机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一系列二进制的数字。
在这里插入图片描述


    早期计算机就是指可以执行机器指令,进行运算的机器。在我们常用的PC机中,有一个芯片,就是我们常说的CPU(Central Processing Unit,中央处理单元)可以完成前面所说的计算机的功能,但是每一种这样的微处理器(CPU)由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。

    早期的程序设计均使用机器语言。程序员们将用0, 1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。如下图:
在这里插入图片描述
上面这个非常简单的程序,就可以暴露机器码的晦涩难懂和不易查错。如果要写上一个大的程序,你的内心会如何呢?如果当中有 “1” 写成了 “0”,你又如何修改呢?这时候汇编语言便产生了。



二. ⛳️汇编语言的产生

    汇编语言的主体是汇编指令。汇编指令和机械指令的差别在于指令的表示方法上。汇编指令是机械指令便于记忆的书写格式(即汇编指令是机器指令的助记符)。例如:机器指令 1000100111011000 表示把寄存器 BX 的内容送到 AX 中。汇编指令则写成 mov ax, bx。这样的写法与人类语言接近,便于阅读和记忆。

小知识拓展:
    寄存器:简单的讲就是 CPU 中可以存储数据的器件,一个 CPU 中有多个寄存器。AX 是其中一个寄存器的代号,BX 是另一个寄存器的代号。更多详细内容我们将会下寄存器那张讲解。

    汇编语言出现以后,程序猿都开始用汇编编写成源程序。但是问题又来了,计算机只能识别机器指令,那么如何让计算机执行程序猿用的汇编指令编写的程序呢?这时,就需要一个能够将汇编指令转换成机器指令的翻译程序,这样的程序我们称其为编译器。程序猿用汇编语言编写出源程序,再用汇编编译器将其翻译成机器码,由计算机最终执行。如下图:
在这里插入图片描述



三. ⛳️汇编语言的组成

汇编语言发展至今,有以下 3 类指令组成。

  1. 汇编指令:机器码的助记符,有对应的机器码;
  2. 伪指令:没有对应的机器码,有编译器执行,计算机并不执行;
  3. 其他符号:如+-*/ 等,由编译器识别,没有对应的机器码。

汇编语言的核心是汇编指令,它决定了汇编语言的特性。



四. ⛳️存储器

     CPU 是计算机的核心部件,它控制整个计算机的运作并进行运算。要想让一个 CPU 工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是平时所说的内存。

  • 在一台PC机中内存的作用仅次于CPU。离开了内存,性能再好的CPU也无法工作。
  • 磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU使用。


五. ⛳️指令和数据

     指令和数据是应用上的概念。在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。CPU 在工作的时候把有的信息看作指令,有的信息看作数据,为同样的信息赋予不同的意义。例如:内存中的二进制信息 1000100111011000,计算机可以把它看作大小为 89D8H 的数据来处理,也可以将其看作指令 mov ax, bx 来执行。
在这里插入图片描述



六. ⛳️存储单元

存储单元被划分成若干存储单元,每个存储单元从 0 开始顺序编号。例如一个存储器有 128 个存储单元,编号从 0 ~ 127,如下图:
在这里插入图片描述
     我们知道电子计算机中的最小单元是 bit(音译为比特),也就是一个二进制位。8 个bit 组成一个 Byte, 也就是通常讲的一个字节。微型机存储器的存储单元可以存储一个 Byte,即 8 个二级制位。一个存储器有 128 个存储单元,它可以存储 128 个Byte。

对于大容量的存储器一般还用以下单位来计量容量(以下用 B 来代表 Byte):

单位换算关系
千字节(KB)1 KB = 1024 B = 2^10 B
兆字节(MB)1 MB = 1024 KB = 2^20 B
吉字节(GB)1 GB = 1024 MB = 2^30 B
太字节(TB)1 TB = 1024 GB = 2^14 B


七. ⛳️CPU 对存储器的读写

CPU 想要进行数据的读写,必须和外部器件(标准的说法是芯片)进行三类信息的交互:

  • 存储单元的地址(地址信息)
  • 器件的选择,读或写命令(控制信息)
  • 读或写的数据(数据信息)

    那么 CPU 是通过什么将地址、数据和控制性信息传到存储芯片中的呢?电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。在计算机中专门有连接 CPU 和其他芯片的导线,通常称为总线。总线分类:

  1. 从物理上来讲:就是一根根导线集合;
  2. 从逻辑上又可以划分为:地址总线、控制总线和数据总线。
    在这里插入图片描述

7.1 地址总线

    CPU 是通过地址总线来指定存储器单元的。可见地址总线上能传送多少个不同的信息,CPU 就可以对多少存储单元进行寻址。那地址总线如何发送信息的呢?
在这里插入图片描述

重点:一个CPU有 N 根地址总线,则可以说这个CPU的地址总线的宽度为 N。这样的CPU最多可以寻找 2^N 个内存单元。


7.2 数据总线

    CPU 与内存或其它器件之间的数据传送是通过数据总线来进行的。数据总线的宽度数据总线的宽度决定了 CPU 和外界的数据传送速度。例如:8根数据总线一次可以传送一个8位的二进制数据(即一个字节)。16根数据总线一次可以传送两个字节。
在这里插入图片描述

7.3 控制总线

    CPU 对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制的线的集合。有多少根控制总线,就意味着CPU提供了对外部器件的多少控制。所以,控制总线的宽度决定了 CPU 对外部器件的控制能力



📝总结

本文回顾:

  1. 汇编指令是机器指令的助记符,同机器指令一 一对应;
  2. 每一种CPU都有自己的汇编指令集;
  3. CPU可以直接使用的信息在存储器中存放;
  4. 在存储器中的指令和数据没有任何区别,都是二进制信息;
  5. 存储单元从零开始顺序编号;
  6. 一个存储单元可以存储8个bit,即8个二进制位;
  7. 1Byte = 8bit、1KB = 1024B、1MB = 1024KB、1GB = 1024MB、1TB = 1024GB
  8. 地址总线的宽度决定了CPU的寻址能力;
  9. 数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;
  10. 控制总线的宽度决定了CPU对系统中其他器件的控制能力。

    今天的内容就到这里了,你们都学会了吗?如果还有疑问的话请在评论区里多多提问,大家可以一起帮你解决,让我们共同进步。创作不易,如果对你有用的的话点个赞支持下作者,你们的支持是作者创作最大的动力。关注我不迷路。


文献参考:
《汇编语言》由郑爽老师著作。

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

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

相关文章

OOA/D 时统一过程(UP)中的 迭代、 进化 和 敏捷

一、迭代和进化式开发的优势 相对于顺序或“瀑布”软件开发模型,迭代和进化式开发(iterative and evolutionary development )对部分系统及早地引入了编程和测试,并重复这一循环。这种方式通常会还没有详细定义所有需求的情况下假…

阿里云易立:以云原生之力,实现大模型时代基础设施能力跃升 | KubeCon 主论坛分享

今天,由云原生计算基金会 CNCF 主办的 KubeConCloudNativeConOpenSourceSummit China 2023 主论坛在上海举办。阿里云容器服务负责人易立在主论坛发表演讲,介绍阿里云为大模型提供的基础设施能力,以及通过云原生 AI 的方式助力大模型普惠提效…

【Eclipse】设置自动提示

前言: eclipse默认有个快捷键:alt /就可以弹出自动提示,但是这样也太麻烦啦!每次都需要手动按这个快捷键,下面给大家介绍的是:如何设置敲的过程中就会出现自动提示的教程! 先按路线找到需要的页…

[计算机提升] 用户和用户组

1.1 用户和用户组 1.1.1 用户 用户账户是计算机操作系统中用于标识和管理用户身份的概念。 每个用户都拥有一个唯一的用户账户,该账户包含用户的登录名、密码和其他与用户身份相关的信息。 用户账户通常用于验证用户身份,并授权对系统资源的访问权限。…

Ourphp建站系统存在SQL注入

查询用户 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任…

时间显示相关

显示当前的时间 显示当前的年份 date %Y date %y 显示当前的月 date %m 显示当前的日 date %d 显示小时 date %H 显示分钟 date %M 显示秒 date %S 组合显示 date …

掌握优先级队列:提升效率的关键技巧

目录 优先级队列的概念优先级队列的模拟实现堆的创建堆的插入与删除堆的插入堆的删除 用堆模拟实现优先级队列 常见接口了解PriorityQueue的几种常见构造方法 优先级队列的概念 队列是一种先进先出的数据结构,但在一些情况下我们要优先处理一些情况,比如…

B2R Raven: 2靶机渗透

B2R Raven: 2靶机渗透 视频参考:ajest :https://www.zhihu.com/zvideo/1547357583714775040?utm_id0 原文参考:ajest :https://www.zhihu.com/column/c_1403138803561816064 原文参考:ajest https://zhuanlan.zhih…

从0备战蓝桥杯:找出只出现一次的数字,数单身狗

前言:在部分大厂笔试时经常会使用OJ题目,这里对《剑指offer》中的俩个题目进行思路分析和讲解,希望对各位读者有所帮助。 题目来源选自力扣网 目录: 单个只出现一次的数字: 力扣链接: 题目描述 &#xf…

1.Vue-在独立页面实现Vue的增删改查

题记 在独立页面实现Vue的增删改查&#xff0c;以下是具体的代码&#xff0c;和操作流程。 编写index.html页面 index.html文件如下&#xff1a; <!DOCTYPE html> <html> <head><title>Vue CRUD Example</title><!--在线导入vue文件-->&l…

【网络协议】聊聊网络分层

常用的网络协议 首先我们输入www.taobao.com&#xff0c;会先经过DNS进行域名解析&#xff0c;转换为59.82.122.115的公网IP地址。然后就会发起请求&#xff0c;一般来说非加密的使用http&#xff0c;加密的使用https。上面是在应用层做的处理&#xff0c;那么接下来就是到传输…

Ansible运行临时命令及常用模块介绍

目录 一.运行临时命令 1.基本语法格式 2.查看当前版本已安装的所有模块 二.ansible常见模块 1.command模块 2.shell模块 3.raw模块 4.script模块 5.file模块 参数列表&#xff1a; 示例&#xff1a; 6.copy模块 参数列表&#xff1a; 示例&#xff1a; 7.fetch模…

SSL证书能选择免费的吗?

当涉及到保护您的网站和您的用户的数据时&#xff0c;SSL证书是必不可少的。SSL证书是一种安全协议&#xff0c;用于加密在Web浏览器和服务器之间传输的数据&#xff0c;例如信用卡信息、登录凭据和个人身份信息。 但是&#xff0c;许多SSL证书都是付费的&#xff0c;这可能会…

Java应用的混淆、加密以及加壳

文章目录 前言问题代码混淆存在的问题Java类文件加密存在的问题虚拟化保护存在的问题AOT编译存在的问题 Java应用的打包混淆器类加载与类加密Bootstrap Class LoaderExtension Class LoaderSystem Class Loader自定义ClassLoaderprotector4j 加壳采用Golang打包Java程序xjar 参…

基于未来搜索优化的BP神经网络(分类应用) - 附代码

基于未来搜索优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于未来搜索优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.未来搜索优化BP神经网络3.1 BP神经网络参数设置3.2 未来搜索算法应用 4.测试结果…

2023年四川省安全员B证证考试题库及四川省安全员B证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年四川省安全员B证证考试题库及四川省安全员B证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大…

Filebeat 采集 k8s Pod 和 Events 日志实战操作

文章目录 一、概述1&#xff09;采集 Pod 日志流程介绍3&#xff09;采集 Events 日志流程介绍 二、K8s 集群部署三、ElasticSearch 和 kibana 环境部署四、Filebeat 采集配置1&#xff09;采集 Pod 日志配置2&#xff09;采集 Events 日志配置1、创建 filebeat 授权 token2、f…

网络 | 排错五大步骤,没有解决不了的网络故障准达信息准达信息

网络故障是我们工作中最易常见的问题&#xff0c;那么如何才能进行网络排查&#xff0c;快速解决问题呢&#xff1f; 一、网络排错五大基本步骤与命令 五大基本思路如下&#xff1a; &#xff08;1&#xff09;检查物理链路是否有问题&#xff1b; &#xff08;2&#xff09;…

【总结】两个独立同分布的随机变量相加还是原来的分布吗?

二项分布&#xff0c;泊松分布&#xff0c;正态分布&#xff0c;卡方分布&#xff0c;具有独立可加性。 图源自没咋了&#xff0c;面哥课程。

【软考】9.3 二叉树存储/遍历/线索/最优/查找/平衡

《树与二叉树》 二叉树的顺序存储结构 顺序存储只适用于完全二叉树和满二叉树&#xff0c;一般二叉树不适用i 2 的左孩子为 2i 4&#xff0c;右孩子为 2i 1 5 二叉树的链式存储结构 链式存储适用于二叉树&#xff1b;空结点用“∧”表示二叉链表&#xff1a;左孩子&#xff0…