汇编学习(1)——基础知识

———谨以此系列文章记录我的汇编学习。

 关于汇编

  说起汇编语言,那自然不得不想到机器语言,在汇编语言尚未诞生之际,程序猿们只能非常苦逼的敲着0和1,还要记住一大堆复杂难记的二进制指令,那生活可不谓不苦。直到有一天,程序猿们终于受不了这些繁杂的二进制了,于是他们灵光一现,为啥不用我们非常容易理解的伪代码来表示这些二进制数字呢,想到这里那是说干就干啊,于是一伙人凑在一起制定了一个标准,用了一些相对统一的汇编指令来代表机器指令,又编写了一个翻译程序来把汇编指令翻译成机器指令。这样一来,那就皆大欢喜了,机器能看懂这些指令,我们也能看懂了,汇编语言就此诞生了。所以纵观历史,不得不说,想偷懒是人类进步的阶梯。

关于计算机

  对于计算机而言,CPU是其运转的核心,CPU的主要功能便是运算,而想要CPU工作起来,就必须要向他发送指令和数据,指令和数据都存储在内存中。我们平常所用的程序和数据都存储在磁盘中,想要使用这些程序,就必要将其读入内存中然后经过CPU的运算,然后才能正常的使用,所以这三样也是缺一不可的。除了这些之外,还会有外围芯片组、扩展插槽等,扩展插槽上一般插有内存条和各类接口卡,像是显示器、音箱、打印机等都是通过接口卡经过总线(下面会说)CPU相连,直接受CPU指挥。

关于存储器芯片

  在电脑中一般装有多个存储器芯片,这些存储器芯片从物理连接上来看是独立的,从读写属性上来看主要分为两类:随机存储器(RAM)和只读存储器(ROM)。——内存,不要和磁盘混淆

  随机存储器(RAM)可读可写,但必须带电存储,关机后存储内容丢失。

  只读存储器(ROM)只能读取,关机后存储内容不丢失。

关于存储单元

  存储器被划分为若干个存储单元,一存储单元为1Byte,1Byte为8bit,1比特(bit)也就是一个二进制位,所以1Byte可以表示0~127的数字。

  内存的容量关系如下:

  1KB=1024B             1MB=1024KB

  1GB=1024MB          1TB=1024GB

  虽然下面还有,不过一般用不到,也就不再列举了。

关于CPU对存储器的读写

  存储器中存储单元被从零开始顺序编号,编号采用16进制。

  CPU先要从内存中读取数据,必须要先指定存储单元的地址,然后在内存找到这个地址,然后进行读或写操作。

  

  ————先入先出队列(FIFO)

  ————内存管理单元(MMU)

  其中:

  地址FIFO:CPU通过地址FIFO来指定存储器中的地址。地址总线的个数决定了CPU的寻址范围,假如地址总线的个数为10(即宽度为10),那么10根导线最多可以传送10个二进制数(通过高低电平表示),那么最多可以寻找2的10次方个内存单元。

  数据FIFO:CPU与其他器件之间的数据传送通过数据总线来进行。那么8根数据总线一次可传送8个二进制数(1Byte),16根一次2Byte。

  

           传送89D8的情况

  控制FIFO:CPU对于外界的控制通过控制总线来进行。

关于内存地址空间

  在CPU操控存储器的时候,把他们都当做内存来看待,把他们总的当作一个由若干存储单元组成的逻辑存储器,即内存地址空间。其中每个存储器在这个逻辑存储器中占有一段地址空间,当CPU在这段地址空间中读写数据时就相当于在相应的存储器中读写数据。

  

  从地址0~9FFFF的内存单元中读取数据相当于读取主随机存储器中的数据;向地址A0000~BFFFF的内存单元中读取数据相当于读取显卡中的数据;当向地址C0000~FFFFF的内存单元中写入数据时操作无效,因为只读存储器无法改动其中的内容。

转载于:https://www.cnblogs.com/molingu/p/9703708.html

汇编学习(1)——基础知识相关推荐

  1. Win32汇编学习——windows基础知识(小甲鱼教程)

    <Win32汇编语言程序设计>(小甲鱼) 1)windows特权保护机制 1)80386的中断和异常 2)80386的保护机制 3)Windows的保护机制 2)80x86处理器的工作模式 ...

  2. python语言的单行注释以井号开头_推荐|零基础学习Python基础知识

    原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...

  3. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    Hadoop学习笔记-15.HBase框架学习(基础知识篇) HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase ...

  4. 关于图计算图学习的基础知识概览:前置知识点学习(PGL)[系列一]

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 0.1图计算基本概念 首先看到百度百科定义: 图计算(Graph Processin ...

  5. 快速学习mysql_快速学习MySQL基础知识

    这篇文章主要梳理了 SQL 的基础用法,会涉及到以下方面内容: SQL大小写的规范 数据库的类型以及适用场景 SELECT 的执行过程 WHERE 使用规范 MySQL 中常见函数 子查询分类 如何选 ...

  6. 三 计算机知识的重要性分析,学习计算机基础知识对中专学生的重要性分析

    学习计算机基础知识对中专学生的重要性分析 [摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文 ...

  7. 谈计算机知识对学生的作用,浅谈学习计算机基础知识对中专学生的重要性

    [摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文可以让中专学生认识到学习计算机基础知识的重 ...

  8. 《机器学习》理论——速读学习1 基础知识

    <机器学习>理论--速读学习1 基础知识 该系列文章系个人读书笔记及总结性内容,任何组织和个人不得转载进行商业活动! Time: 2021-12-05 学习目标:我需要了解神经网络除了工程 ...

  9. A.关于图计算图学习的基础知识概览:前置知识点学习(Paddle Graph L)【一】

    图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...

  10. 直播平台怎么搭建,你要先来学习音频基础知识

    直播平台怎么搭建,你要先来学习音频基础知识 概述 本片文章主要介绍音频基础,在做音频开发之前首先必须要对音频的相关概念了解.以下是具体内容概述: 常见的音频格式 WAV MP3 WMA RA APE ...

最新文章

  1. Android安卓开发中图片缩放讲解
  2. 《I'm a Mac:雄狮训练手册》——第1章 开机 1.1 “咚”声的作用
  3. 【Java 网络编程】NIO Buffer 简介 ( 概念 | 数据传输 | 标记 | 位置 | 限制 | 容量 | 标记 | 重置 | 清除 | 翻转 | 重绕 | 链式操作 )
  4. 【Python】tqdm创建进度条
  5. 工程师也是主播界“扛把子”,学员抱紧大腿痴痴等候百度AI快车道下期到来...
  6. linux下挂载samba服务器,Linux使用mount挂载samba共享
  7. mac系统升级后使用gitxcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), miss
  8. Python学习入门7:python学习从基础到高手,再到就业
  9. 利用navicat for mysql实现mysql数据库表结构复制
  10. 十三种技术文档模板_帮助企业制作帮助文档的6大“黑科技”工具!
  11. 【预测模型】基于matlab BP神经网络预测【含Matlab源码 221期】
  12. python 从入门到实践_Python编程从入门到实践日记Day36
  13. 【密码学基础】02 数论基础
  14. win10关闭端口占用
  15. 图像与视频处理中的优化方法
  16. 『常识』印刷纸张尺寸对比表
  17. c++ 模糊搜索 正则表达式_c++中正则表达式(regex)
  18. Http协议之Referer
  19. CentOS 安装显卡驱动
  20. Win7系统中,如何关闭Windows默认的防火墙? win7如何关闭防火墙

热门文章

  1. 三大平衡树(Treap + Splay + SBT)总结+模板
  2. 新型的大型bbs架构(squid+nginx
  3. 配置Windows server 2008 R2脱机加入域功能
  4. 宝塔php open_basedir restriction in effect
  5. 对于css的简化属性
  6. linux脚本编写记录
  7. CentOS 配置epel源
  8. 爬虫(beautifulSoup)
  9. Egret学习笔记 (Egret打飞机-3.实现背景循环滚动)
  10. Material Design控件使用学习 TabLayout+SwipeRefreshlayout