首页 > 编程语言 >汇编语言学习笔记(一)基础知识

汇编语言学习笔记(一)基础知识

时间:2024-10-22 10:46:25浏览次数:6  
标签:1024 汇编语言 总线 笔记 基础知识 寻址 信息 存储单元 CPU

指令和数据

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

如同围棋中的棋子,在棋盒里没有任何区别,在对弈的时候才有不同的意义

存储单元

计算机最小信息单位为Bit,也就是一个二进制位。8个bit组成一个Byte.通常称之为字节
1B=8Bit,1KB=1024B,1M=1024KB,1G=1024G,1T=1024G
一般来说,内存与硬盘等存储器丢以字节(B)为最小计量单位

CPU如何读写存储器

CPU想要进行数据的读写,必须跟外部芯片进行如下信息的交互

  1. 存储单元的地址(地址信息)
  2. 读/写的命令(控制信息)
  3. 读/写的数据(数据信息)

那么CPU是通过什么将以上这些信息传输到外部芯片中的呢?
答案是导线,又称之为总线。
根据作用不同,总线分为:

  1. 地址总线
  2. 控制总线
  3. 数据总线

地址总线

从上面可以直到,CPU通过地址总线来指定存储单元(寻址),总线上能传输多少信息,CPU就能对多少个存储单元进行寻址
一根总线代表一个电信号,一个电信号能传递高电平/低电平两种信息。用二进制表示就是1/0
那么假如一个CPU有32根导线,那么它能组合排列传递的二进制信息就是2^32。
由于存储单元的最小单位是字节,所以一个该CPU最大的寻址范围就是2^32/1024/1024/1024 =4GB

我们一般形容一个CPU有多少根总线,就代表这个CPU总线有多宽。组合排列下可以最多寻找2^N次方的内存地址

数据总线

总线的宽度决定了CPU与外部芯片的传输速度,比如8根总线一次可传递8个bit(即1B,一个字节),16根总线就可以传递两个字节的信息

举个例子

某个CPU有8根总线,要向内存写入数据89D8.采用小端法传递。进制转换如下:
image

由于受限于总线宽度,只能分为两次进行传输,如果总线长度延长到16,就能一次性全部传输完毕。
image

控制总线

CPu对外部芯片的控制(下达指令)通过控制总线来进行,同样的,有多少根总线就意味着有多少种控制

比如前面讲的读/写内存的命令,就由好几根控制总线组合排列而成,其中一根"读信号输出"的控制线负责由CPU向外部芯片发送读信号,有一根"写信号输出"的控制线负责传递写信号

内存地址空间

简单来说,如果一个CPU的地址总线宽度为10,那么就是2^10=1024,那么就可以寻址1024个内存单元

最终运行程序的是CPU,系统中所有的存储器都处于一个统一的"逻辑"存储器中,并占有一个地址段。它的容量受CPU寻址能力的限制,这个"逻辑"存储器就是我们所说的内存地址空间。
每个硬件都在这个"逻辑"存储器中占有一个地址段,CPU在这段地址上读写数据。实际上就是在对应的硬件中读写数据

标签:1024,汇编语言,总线,笔记,基础知识,寻址,信息,存储单元,CPU
From: https://www.cnblogs.com/lmy5215006/p/18469027

相关文章

  • 汇编语言学习笔记(二)寄存器
    简介上文所说的总线,相对于CPU自身而言,属于外部总线。这些外部总线将CPU与外部芯片串联起来。其内部也有类似结构(运算器/控制器/寄存器/内部总线),组成一个完整的CPU。运算器进行计算处理寄存器进行数据存储控制器控制内部芯片内部总线串联内部芯片不同CPU,寄存器的数量与......
  • cmake学习笔记
    最近在学cmake的用法,参考了cmake使用详细教程(日常使用这一篇就足够了)这篇文章,这篇文章讲的很仔细,下面记录自己的学习过程。1、系统以及开发工具一开始想通过虚拟机安装Ubuntu和vscode,后面想到了之前本机Windows安装过wsl,wsl的就是Ubuntu,在wsl+本地vscode的开发下,很快就把文章......
  • 校招基础知识详解——计算机操作系统(内存管理)
    文章目录虚拟内存分页系统地址映射页面置换算法最佳页面置换算法(OPT,Optimalreplacementalgorithm)先进先出置换算法(FIFO,FirstInFirstOut)最近最久未使用的置换算法(LRU,LeastRecentlyUsed)最不常用算法最近未使用(NRU,NotRecentlyUsed)第二次机会算法时钟页面......
  • JAVA中的JDBC学习总结 我的学习笔记
    JDBC学习总结我的学习笔记一、JDBC简介一、JDBC快速入门一、JDBCAPI详解1.DriverManager2.Connection3.Statement4.ResultSet5.PreparedStatement一、数据库连接池1.数据库连接池简介2.数据库连接池实现3.Druid数据库连接池一、JDBC简介1.JDBC概念JDBC就......
  • MySQL数据库总结 我的学习笔记
    MySQL数据库总结一、数据库相关概念1.数据库2.数据库管理系统3.SQL4.常见的关系型数据库管理系统二、MySQL数据库1.MySQL目录结构2.MySQL数据模型三、SQL1.SQL简介2.SQL通用语法3.SQL分类4.DDL(数据定义)操作数据库操作表MySQL数据类型5.DML(数据操作)添加(insert)修改......
  • 《程序员修炼之道:从小工到专家》阅读笔记2
    作为程序员,我们的代码应当尽量避免重复,因为重复的知识如果矛盾,那么计算机将无法完成它的工作。维护的时候,过程和程序的重复十分让人头疼。系统中的每一项知识都必须单一,无歧义,权威的表示。重复主要有:强加的重复,无意义的重复,无奈的重复,开发者之间的重复。让一个系统具有“正交性”......
  • LLM学习-基础知识
    NLPNLP代表自然语言处理,是关于计算机和人类语言之间交互的领域。NLP涵盖了一系列任务,包括文本处理、语音识别、语言翻译、信息检索等。NLP技术的发展使得计算机能够理解、解释和生成人类语言,促进了许多领域的发展,包括智能助手、文本分析、情感分析等。LLMLLM指的是大型语言模型......
  • C语言学习笔记4
    函数函数是一组一起执行一个任务的语句。每个C程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。C语言的函数分为:1.库函数2.自定义函数对于库函数引用对于头文件即可使用,自定义函数需要自己调用与声明函数的调用与声明C语言中的函数......
  • 2024/10/21 日 日志 --》关于Mysql中的数据库连接池 简述笔记整理
    为了保证博客内容的连贯性,我决定把Maven内容单独开辟而不与JDBC相混。以下为数据库连接池的简单描述和笔记整理点击查看代码--数据库连接池--简介:--·数据库连接池是个容器,负责分配、管理数据库连接。--·它允许应用程序重复使用一个现有的数据库连接,而不是再重新建......
  • JWT 笔记
    总结由header、payload、signature三部分构成,并由英文句号拼接一起payload中存储了部分数据,可减少后端数据库查询header和payload只是用base64编码,并未加密,payload有敏感数据要手动加密jwt在过期时间到之前没法撤销,想要即时登出用户,可以采用类似oauth2.0协议中的做法:认证后......