1.前言

该系列文章为我学习汇编语言时的一些总结以及读书笔记,分享出来与大家共勉,如有错误还请不吝赐教

2.机器语言

机器语言就是机器指令的集合。机器指令就是一台机器能够理解的并正确执行的命令,电子计算机的机器指令是一串二进制数字,计算机将之翻译成一列高低电平,使计算机的电子器件受到驱动,执行相关运算。不同的计算机硬件需要不同的电平来驱动,所以不同的计算机的机器指令是不同的。

3.汇编语言相关

1.汇编语言的产生

由于早期程序员们编程都是直接使用机器指令,也就是一串串二进制数字,这样不仅效率低下,而且还特别容易出错,所以汇编语言应运而生,汇编语言将一串串二进制指令转换为了人类相对来说更加容易读懂的汇编指令,来看一个例子:

2.工作流程

但是计算机只能理解机器指令,所以我们直接给计算机看汇编指令,计算机是不懂的,这时候就需要编译器登场了,编译器的工作就是讲汇编指令转换为计算机易懂的机器指令。大体流程如下:

3.汇编语言的组成

  1. 汇编指令:机器码的助记符,有对应的机器码
  2. 伪指令:没有对应的机器码,由编译器执行
  3. 其它符号:+、-、*、%由编译器识别

4.cpu与存储器之间的信息交换

4.1

寄存器:位于cpu中,读写速度最快
存储器:区别于硬盘、u盘等外部存储器,他们不是一种东西

4.2

cpu的工作就是对数据进行处理,数据从哪里来呢?这时候就需要存储器了,硬盘等的数据必须先读入到内存才能被cpu处理。那cpu又是怎么与存储器进行信息交换的呢?我们只需要关注三点:

  1. 要对那一块存储单元(存储器中一个字节为一个存储单元)进行操作?
  2. 怎么操作?
  3. 数据怎么传送过来?

前辈们是怎么处理的呢?
他们分别用了三种线来传输这些数据:地址总线、控制总线、数据总线
工作方式如下:

5.地址总线

注:cpu通过地址总线来确定将要操作的存储单元
注:总线并不是只有一根线,而是由很多线组合而成。

地址总线的条数决定了cpu能够访问存储单元的范围,例如有十根地址线,那么cpu就能够访问1024块存储单元。一个cpu有N根地址线就说该cpu的地址总线的宽度为N,最多能够访问的存储单元的个数为2的N次方。

6.数据总线

数据总线的条数决定了cpu一次能够传输的数据的位数。

7.控制总线

控制总线的条数决定了cpu对外部设备有多少种控制

汇编1-地址总线、数据总线与控制总线详解相关推荐

  1. 数据总线, 地址总线, 控制总线详解.

    ◆ 总线的概念       所谓总线(Bus),一般指通过分时复用的方式,将信息以一个或多个源部件传送到一个或多个目的部件的一组传输线.是电脑中传输数据的公共通道. ◆ 工作原理 当       总线 ...

  2. arm汇编指令详细整理及实例详解

    目录 一.简介 二.ARM 汇编指令说明 2.1 32位数据操作指令 2.2 32位存储器数据传送指令 2.3 32位转移指令 2.4 其它32位指令 三.实例讲解 3.1 MRS 3.2 MSR 3 ...

  3. CTF PWN基础知识(寄存器、栈、汇编指令、标志位)详解

    本文中寄存器缩写都有标注上中文含义,方便初学者理解记忆. 寄存器: 寄存器是计算机暂存指令.数据和地址的地方. 常用寄存器及其功能整理: RIP:程序计数寄存器,来存放下一条即将用来执行的指令的地址, ...

  4. ARM汇编压栈出栈具体详解

    参考:https://blog.csdn.net/u012874587/article/details/78843940?utm_source=app&app_version=4.8.0 先看 ...

  5. 汇编指令:LDM、STM详解

    LDM:(load  much)多数据加载,将地址上的值加载到寄存器上 STM:(store much)多数据存储,将寄存器的值存到地址上 (1)IA:(Increase After) 每次传送后地址 ...

  6. 汇编ret ,retf ,iret ,int指令详解

    ** ret指令 ** 执行过程 ret指令用栈中的数据,修改IP的值,从而实现近转移. CPU执行ret指令时,进行下面两步操作: (IP)=((SS)*16+(SP)) (SP)=(SP)+2; ...

  7. 关于二进制位测试 汇编指令 bt btr btc bts 详解

    // asm_bt.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. // #include /* bt 位测试 bts 位测试并置位 btc 位测试并复位 ...

  8. java opcode 反汇编,OPCode详解及汇编与反汇编原理

    1. 何为OPCode 在计算机科学领域中,操作码(Operation Code, OPCode)被用于描述机器语言指令中,指定要执行某种操作的那部分机器码,构成OPCode的指令格式和规范由处理器的 ...

  9. gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解

    例子:由多个源文件组成的C程序,经过编辑.预处理.编译.链接等阶段才能生成最终的可执行程序.此过程中,在__c__阶段可以发现被调用的函数未定义. A. 编辑和预处理 B. 预处理 C. 编译 D. ...

  10. c++ 代码_C代码对汇编代码中声明的全局符号的访问方式详解

    首先声明一点:符号的值是地址,该地址上存储的值才是变量,不明白的话看另一篇文章: "静态链接与动态链接的宏观概述及微观详解". (1)对非数组符号的访问,编译器生成访存指令,要想寻 ...

最新文章

  1. 说了低调...这下百度知道了...
  2. 作品[RFileRead/WriteStream 练习] for s60 fp2
  3. malloc 不能返回动态内存
  4. 推荐系统遇到曝光偏差怎么办?用对比学习!
  5. python2和python3解释器的区别
  6. 如何简化React应用程序中的状态-轻松实现Redux
  7. Webpack实战(九):实现资源按需加载-资源异步加载
  8. 拓端tecdat|R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题
  9. et中计算机的快捷键,ET制版快捷键
  10. vb运行环境linux,VB.Net开发环境安装配置
  11. 30天自制操作系统——Day8实验报告
  12. 麒麟V10系统密码策略修改
  13. ascii码二进制十进制十六进制对照表
  14. ad10搜索快捷键_PCB工程师必备:AD常用快捷键总结,超级实用
  15. 用组合机床加工铸造模具
  16. C#实现将DataTable数据转为Html内容保存为一张图片
  17. unity学习路上....
  18. 从0到1CTFer成长之路-第二章-Web文件上传漏洞
  19. R语言绘图—快速绘制Lollipop图
  20. sklearn.neighbors.KNeighborsClassifier()函数解析

热门文章

  1. 云计算与海量数据处理技术
  2. resin 系统日志_resin日志
  3. 【PowerDesigner】PowerDesigner的下载及安装
  4. JSP技术的优缺点介绍
  5. 【读书笔记】淘宝技术这十年
  6. 什么是DOS操作系统
  7. h264 java_Java解码H264格式视频流中的图片
  8. 强制删除文件处理程序
  9. LoadRunner视频教程
  10. 在Linux下进入目录,目录下创建、修改、删除文件所需权限