汇编(1)_基础知识

  • CPU对存储器的读写

  如果你的程序要对某个内存进行操作那么你要知道几点信息:

  1.内存地址;

  2.需要执行操作(此处假设为读);

  3.操作的大小

  那么CPU是如果帮助你执行这些操作呢?

  1.CPU通过地址总线传输内存地址到内存

  2.CPU通过控制总线传输读命令和大小到内存

  3.内存通过数据总线返回请求的数据到CPU

  • 3类总线描述

  上述的3类总线,地址/控制/数据总线是指CPU同其他芯片(内存)连接的导线,其根据不同的功能进行划分.

  首先来看地址总线

      由上面我们看出,地址总线主要用于指定内存位置.因此地址线的个数就和当前计算机的寻址相关了,

  通常我们所描述的32位/64位表示的就是地址总线.

  因此32位系统下可寻址范围为:0~2^32=2^2 * 2^30 = 0~4 GB ,64位为:0~2^64

  以图形来表示一个8位系统寻址11时情况:

  

  接着来看数据总线

  如你所见数据总线用来传输数据,因此多少数量的数据总线决定一次能传输的数据量.

  相应的计算方式同地址总线.

  以16位系统传输89D8的情况为例:

  

  最后来看控制总线

  控制总线用于控制操作类型的个数.

  • 外设IO描述

  物理连接:

  一般的外设采用插槽的方式进行物理连接,本质上CPU可以控制外设就是通过CUP<->槽<->外设而进行的.

  内存连接:

  系统将所以连接的外设的内存进行统一管理形成一个列表.

  CPU通过地址总线的方式传输相应的内存地址,控制相对应外设.

  余下操作就同CPU控制本机一样了.

  • 参考

  <<汇编语言>> 王爽

时间: 2025-01-01 20:50:43

汇编(1)_基础知识的相关文章

汇编第二章--基础知识梳理与总结

第一章,我们介绍了有关汇编语言的基础知识,在第二章我们主要介绍寄存器. CPU的主要部件是寄存器,在8086CPU有14个寄存器,它们分别是:AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW.8086CPU的所有寄存器都是16位的,可以存放两个字节.AX.BX.CX.DX这4个寄存器通常用来存放一般性的数据,称为通用寄存器.由于8086CPU的上一代CPU中的寄存器都是8位的,为了保持兼容,8086CPU的AX.BX.CX.DX这4个寄存器都可分为两个独立使用

2.java学习_基础知识(标识符、常量、变量、运算符)

标识符 定义 在程序中我们自定义的一些名称在编程的过程中,经常需要在程序中定义一些符号来标记一些名称,如包名.类名.方法名.参数名.变量名,这些符号被称为标识符. 组成元素 英文大小写字母 数字0~9 下划线_和美元符号$ 规则 不可以以数字打头,如:4student ,×不可以使用java的关键字,如class不能使用严格区分大小写,如Xxx和xxx,是两个变量 原则 见名知意,驼峰命名 规范 掌握包名多个单词组成时,所有单词都小写.举例:xxxyyyzzz类名和接口名多个单词组成时,所有单词

汇编第一章--基础知识梳理与总结

闲谈汇编之初,先说说计算机的硬件组成:运算器,控制器,存储器,输入设备,输出设备. 下图就是计算机的硬件组成框架: 在早期,机器语言是直接对硬件进行操作,但是机器语言是0和1的字符串,这就是的早期程序员的工作十分繁杂,如果0或者1有一位出错,那么整个程序就会崩掉了,那么如何解决这个问题呢? 汇编语言就应运而生了. 汇编语言的主体是汇编指令,汇编指令和机器指令的差别在于指令的表示方法上,汇编指令是机器指令便于记忆的书写格式. 程序员运用汇编语言书写指令提升了效率,可是计算机只能读懂机器指令,那么怎

汇编-----1、基础知识

第3课第1节_基础知识Android消息处理机制

E:\Github\hello-world\APP_Addons_0001_Message\app\src\main\java\com\thisway\app_addons_0001_message\MainActivity.java package com.thisway.app_addons_0001_message; import android.os.Handler; import android.os.Looper; import android.os.Message; import

Shader学习笔记_基础知识_分量

分量 矢量的分量名称:{x,y,z,w}表示顶点: {r,g,b,a}表示颜色:{s,t,p,q}表示纹理坐标. 每个分量用点号连接(例如v2.x(一个float变量),v3.rg(一个vec2变量)). 不同组的分量不能混合使用(例如v4.xgba不合法),但是顺序可以任意,可以重复(例如v3.yyxx(一个vec4变量)),但不能超过4个,因为编译器不知道转化成什么类型(例如v4.xyzwxy不合法). 矩阵的分量就是用下标表示,注意的是矩阵是以列优先的. mat4 m; m[1] = ve

C++程序设计(第4版)读书笔记_基础知识

变量赋值 常用的变量赋值都是用“=”去赋值的 1 int i = 2; 但是如果把一个浮点数赋值给i的话,就会造成精度损失,在C++中最好使用初始化列表的方式“{}”给变量赋值,这样可以保证不会发生某些可能导致信息丢失的类型转换 1 #include <iostream> 2 using namespace std; 3 4 int main() { 5 int i {2.3}; 6 return 0; 7 } 比如这样声明,编译器就会报错 <source>: In functio

[汇编] 002基础知识-CPU和寄存器

时间:2014年05月31日 当然这里的内存不仅仅指电脑上的内存,例如:我的金士顿8G内存,七彩虹1G独显,在这里来说,显卡也是有内存的(寄存器) 问题:CPU是如何和电脑主机中其它芯片有条不紊工作的? 答:CPU主要是在操作各个部件的内存,例如要显示一张美女图片 汇编语言的组成 汇编指令 伪指令 其它符号 相关资料: <解密与加密> [汇编] 002基础知识-CPU和寄存器,布布扣,bubuko.com

SEO基础知识_绝密教程

<p align="center"> </p> <p>   </p> <p align="center"> 第一次接触SEO,请阅读本基础指南入门,也可以注册论坛:<a  1-1.html" target="_blank"><span style="color:black;">从一句话入门</span><span s