【汇编语言学习笔记】一、基础知识

引言

汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。

1.1机器语言

机器语言是机器指令的集合。
机器指令展开来讲就是一台机器可以正确执行的命令。

1.2汇编语言

汇编语言的主体是汇编指令。
汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式 。
汇编指令是机器指令的助记符。
寄存器:单件的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。
AX是其中一个寄存器的代号,
BX是另一个寄存器的代号。

1.3汇编语言的组成

汇编语言由以下3类组成:

  • 汇编指令(机器码的助记符)
  • 伪指令(由编译器执行)
  • 其他符号(由编译器识别)

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

1.4存储器

CPU是计算机的核心部件,它控制整个计算机的运作并进行运算,要想让一个CPU工作,就必须向他提供指令和数据
指令和数据在存储器中存放,也就是平时所说的内存。
在一台PC机中内存的作用仅次于CPU
离开了内存,性能再好的CPU也无法工作
磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU使用。

1.5指令和数据

指令和数据是应用上的概念。
在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。

1.6存储单元

存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号。
例如:
一个存储器有128个存储单元,编号从0~127。
对于大容量的存储器一般还用一下单位来计算容量(下面用B来代表Byte):
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB

磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位。

1.7CPU对存储器的读写

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

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

电子计算机能处理、传输的信息都是电信号,电信号要用导线传输。
在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。
物理上:一根根导线的集合。
逻辑上划分为:

  • 地址总线
  • 数据总线
  • 控制总线

总线在逻辑上划分的图示:
在这里插入图片描述

1.8地址总线

CPU是通过地址总线来指定存储单元的。
地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。
一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N。
这样的CPU最多可以寻找2的N次方个内存单元。

1.9数据总线

CPU与内存或其他器件之间的数据传送是通过数据总线来进行的
数据总线的宽度决定了CPU和外界的数据传输速度。

1.10控制总线

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

内存读或写是由几根控制线综合发出的

  • 其中有一根名为读信号输出控制线负责由CPU向外传送读信号,CPU向该控制线上输出低电平表示要读取数据。
  • 有一根名为写信号输出控制线负责由CPU向外传送写信号。

小结

  • 汇编指令是机器指令的助记符,同机器指令一一对应
  • 每一种CPU都有自己的汇编指令集
  • CPU可以直接使用的信息在存储器中存放
  • 在存储器中指令和数据没有任何区别,都是二进制信息
  • 存储单元从0开始顺序编号
  • 一个存储单元可以存储8bit,即8位二进制数
  • 1B=8b
  • 1KB=1024B
  • 1MB=1024KB
  • 1GB=1024MB
  • 每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出三种总线的宽度标志了这个CPU不同方面的性能
  • 地址总线的宽度决定了CPU的寻址能力
  • 数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量
  • 控制总线宽度决定了CPU对系统中其它器件的控制能力

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

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

相关文章

【云计算】相关解决方案介绍

文章目录 1.1 云服务环境 Eucalyptus1.1.1 介绍1.1.2 开源协议及语言1.1.3 官方网站 1.2 开源云计算平台 abiCloud1.2.1 开源协议及语言1.2.2 官方网站 1.3 分布式文件系统 Hadoop1.3.1 开源协议及语言1.3.2 官方网站 1.4 JBoss云计算项目集 StormGrind1.4.1 开源协议及语言1.4…

uniapp打包配置

安卓: 首先不管是什么打包都需要证书,安卓的证书一般都是公司提供或者自己去申请。然后把包名等下图框住的信息填上,点击打包即可。 ios:ios需要使用mac到苹果开发者平台去申请证书,流程可以参考下边的链接 参考链接…

解决git在window11操作很慢,占用很大cpu的问题

【git在window11操作很慢,占用很大cpu,最后也执行失败】 在谷歌输入:git very slow in window 11。通过下面链接终于找到了解决方案: https://www.reddit.com/r/vscode/comments/sulebx/slow_git_in_wsl_after_updating_to_window…

【Java基础知识】

文章目录 前言1. 添加环境变量的方法2.JDK JRE JVM3.main方法4.注释5.标识符6.数据类型与变量6.1字节:6.2变量6.3找最大值和最小值范围整型变量浮点型变量字符型变量布尔型变量 前言 最近焦虑迷茫,学习过程中遇到了困难,所以想重新复习一遍S…

【C++】适配器模式 - - stack/queue/deque

目录 一、适配器模式 1.1迭代器模式 1.2适配器模式 二、stack 2.1stack 的介绍和使用 2.2stack的模拟实现 三、queue 3.1queue的介绍和使用 3.2queue的模拟实现 四、deque(不满足先进先出,和队列无关) 4.1deque的原理介绍 4.2dequ…

在线兴趣教学类线上学习APP应用开发部署程序组建研发团队需要准备什么?

哈哈哈,同学们,我又来了,这个问题最近问的人有点多,但是说实话我也不知道,但是我还是总结了一下,毕竟我懂点代码的皮毛,同时我检索内容的时候,都是一些没有很新鲜的文案,…

大数据笔记-大数据处理流程

大家对大数据处理流程大体上认识差不多,具体做起来可能细节各不相同,一幅简单的大数据处理流程图如下: 1)数据采集:数据采集是大数据处理的第一步。 数据采集面对的数据来源是多种多样的,包括各种传感器、社…

极简c++(4)类的静态成员

静态数据成员 ::是作用域操作符&#xff01; #include<iostream> using namespace std;class Point{private:int x,y;public:point(int x 0,int y 0):x(x),y(y){}~point();int getX(){return x;}int getY(){return x;} }假设需要统计点的个数&#xff0c;考虑添加一个…

计算机网络 | 网络层

计算机网络 | 网络层 计算机网络 | 网络层功能概述SDN&#xff08;Software-Defined Networking&#xff09;路由算法与路由协议IPv4IPv4 分组IPv4 分组的格式IPv4 数据报分片 参考视频&#xff1a;王道计算机考研 计算机网络 参考书&#xff1a;《2022年计算机网络考研复习指…

【VSCode】Windows环境下,VSCode 搭建 cmake 编译环境(VSCode 插件配置)

目录 一、下载编译器 1、下载 Windows GCC 2、选择编译器路径 二、下载插件 三、配置 cmake generator 四、编译工程 一、下载编译器 1、下载 Windows GCC 这里是在Windows环境下&#xff0c;所以下载的是 Windows 环境使用的 gcc 编译器。 下载地址: MinGW-w64 - for…

【mfc/VS2022】计图实验:绘图工具设计知识笔记

绘制曲线&#xff08;贝塞尔曲线&#xff09;&#xff1a; 转自&#xff1a;CDC 类 | Microsoft Learn 绘制一条或多条贝塞尔曲线。 BOOL PolyBezier(const POINT* lpPoints,int nCount);参数 lpPoints 指向包含曲线端点和控制点的 POINT 数据结构数组。 nCount 指定 lpPo…

伦敦金的交易时间究竟多长?

接触过伦敦金交易的投资者&#xff0c;应该都知道自己根本不用担心市场上没有交易的机会&#xff0c;因为它全天的交易时间长达20多个小时&#xff0c;也就是在每一个正常的交易日&#xff0c;除去交易平台中途短暂的系统维护时间&#xff0c;投资者几乎全天都可以做盘。 伦敦金…

mssql还原数据库失败

标题: Microsoft SQL Server Management Studio ------------------------------ 服务器 "192.168.31.132" 的 附加数据库 失败。 (Microsoft.SqlServer.Smo) 有关帮助信息&#xff0c;请单击: https://go.microsoft.com/fwlink?ProdNameMicrosoftSQLServer&…

第四篇Android--TextView使用详解

TextView是View体系中的一员&#xff0c;继承自View&#xff0c;用于在界面中展示文字。 基本用法&#xff1a; <TextViewandroid:id"id/textview"android:layout_width"wrap_content"android:layout_height"wrap_content"android:padding&q…

VScode运行C/C++

VScode运行C/C VScode的安装这里不讲 一、mingw64的下载 二、VS code打开文件夹与创建C文件 ----------------这一步给萌新看&#xff0c;有C和VScode的基础可跳过---------------- 1.创建一个文件夹 2.vscode打开刚刚创建的文件夹 3.新建文件&#xff0c;在输入文件名1.c后…

一种更具破坏力的DDoS放大攻击新模式

近日&#xff0c;内容分发网络&#xff08;CDN&#xff09;运营商Akamai表示&#xff0c;一种使网站快速瘫痪的DDoS放大攻击新方法正在被不法分子所利用。这种方法是通过控制数量巨大的中间设备&#xff08;middlebox&#xff0c;主要是指配置不当的服务器&#xff09;&#xf…

Git 回退代码的两种方法对比

Git 回退代码版本 在项目的开发中&#xff0c;有时候还是会出现&#xff0c;一些误提交了一些代码&#xff0c;这时候就会想撤回提交的代码&#xff0c;在Git中有两种方法可以使用&#xff0c;现在通过对比方法比较这两种方法的区别&#xff0c;分别适用于哪些情况&#xff1f…

软件架构设计(业务架构、应用架构、数据架构、技术架构)

一、架构相关概念 1、系统 系统&#xff1a;由一群有关联的个体组成&#xff0c;根据某种规则运作&#xff0c;能完成个别原件不能独立完成的工作的群体。大的系统可以嵌套小系统&#xff0c;被嵌套的小系统往往称为大系统的子系统。 2、模块 模块是从逻辑上将系统分解&#…

一种针对嵌入式KEIL工程的版本管理和跟踪的python脚本

这是去年写的一个python脚本&#xff0c;和KEIL V5配套使用的&#xff0c;借助git对工程文件进行版本管理和跟踪。打包后的exe和源文件整理到网盘了&#xff0c;有需要的可以自取&#xff0c;链接&#xff1a;https://pan.quark.cn/s/6c28fb43e8dc 提取码&#xff1a;R17N 关于…

案例研究|DataEase助力无锡布勒业务数据可视化建设

布勒集团是一家来自瑞士的家族企业&#xff0c;在谷物与食品以及先进材料制造等领域深耕超过160年。布勒大中华区的总部位于江苏无锡。无锡布勒是一家集研发、生产、销售于一体的综合性公司&#xff0c;拥有先进的生产设备及高素质的科技研发人员&#xff0c;以谷物深加工、谷物…