汇编语言与微机原理(1)基础知识

2023-11-05

前言

(1)本人使用的是 王爽老师的汇编语言第四版学校发的微机原理教材配合学习。
(2)推荐视频教程 通俗易懂的汇编语言(王爽老师的书)贺老师C站账号网址
(3)文章配套资料: Github仓库链接
(4)本文是介绍8086汇编语言。

汇编语言简介

汇编语言诞生

(1)我们都知道计算机是二进制的,上个世纪的程序员是使用01进行写程序,因为0101001010这种代码不适合人来看,稍微搞错了一个地方代码就出问题了。
(2)于是前人就想到了使用特定符号表示一段固定的二进制数据,也就是现在要讲的汇编语言。
(3)首先需要强调的是, 计算机是无法识别除了01以外的所有编程语言的!所以我们的汇编指令需要经过一个编译器将汇编代码转换为机器码,也就是01语言,最终计算机才可以执行指令。
(4)为什么是只能识别01呢?这个其实有一点点数模电知识就能够理解了,因为怕阅读此文章的人真的基础太差。还是赘述一遍。对于计算机而言,其他它也无法识别0和1,它真正能够识别的东西是叫做电压!我们初中物理学过,电压是相对的,我们将地球的电压看作是0V。所有计算机内部的控制单元都是与或非三个门电路组成,而这三个门电路其实又是三极管组成,三极管其实可以看成是一个水龙头,它有截至区,放大区(这个区域本文不谈),饱和区。当电压为0V的时候,处于截至区,输出低电平。当电压为5V的时候(以TTL电平为例),处于饱和区输出高电平。所以说,我们将点低电平称为0,高电平称为1。

汇编语言的组成

(1)汇编语言由三类指令组成:汇编指令,伪指令,其他符号。这一部分后面的文章会详细讲解。
(2)汇编指令:机器码助记符,由编译器执行,计算机并不执行。
(3)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
(3)其他符号:入+,-,*,/等,由编译器识别,没有对应的机器码。

微型计算机简介

微型计算机构成

微型计算机是由 软件硬件所组成。结构框图如下

软件简介

(1)软件这个东西是个人认为比较抽象,软件就是各种程序的集合体。软件本质就是要依靠硬件来实现的,你可以将它理解为一个已经设置好的硬件模块,它能够执行规定的任务。
(2)软件分为系统软件和应用软件。
(3) 系统软件的核心就是操作系统,比如windows,Linux,mac这种。
(4) 应用软件是为例某种应用目的而编制的计算机程序。比如谷歌浏览器,qq,微信这些都是应用软件。

硬件简介

(1)硬件部分就很好理解了,它就是一个主机和一个外部设备。 主机可以通过IO口控制外部设备
(2)主机由微处理器,内存储器和IO接口组成。 对于8086而言,微处理器就是我们常说的CPU,至于上图为什么写MPU,我也比较的懵,查了很多资料也没查明白。只是知道很多时候MPU就会被当成是CPU来讲,但是两者又有区别。这个区别很模糊,我也不明白。

微机硬件构成与工作原理

微型计算机的硬件组成

(1)因为外围设备都是通过CPU对IO的控制间接控制的,所以我将对IO的控制理解为对外围的控制。
(2) 微型计算机的硬件由微处理器、存储器、IO三大部分组成。而由于系统总线是开放的,所以微机的硬件也可以包括系统总线。(注意,看不懂没关系,先有一个了解)
(3)从计算机构成原理来看, 微型计算机也可以说是由运算器、控制器、存储器、输入设备和输出设备等五大部分组成。(运算器和控制器集成在微处理器中,输入输出设备就可以理解为IO)

微处理器(CPU)

(1) 8086CPU中可编程使用的有14个16伪寄存器。按照用途分为, 通用寄存器段寄存器控制寄存器
(2) 通用寄存器:数据寄存器(AX,BX,CX,DX),指针寄存器(SP,BP),变址寄存器(SI,DI)。
(3) 段寄存器:CS(代码段寄存器),SS(堆栈段寄存器),DS(数据段寄存器),ES(附加段寄存器)。
(4) 控制寄存器:IP(指令寄存器),FLAG(标志寄存器)

存储器

(1)作为计算机,只有CPU是无法执行任务的,还需要存储器。CPU你可以理解为你的脑袋灵不灵活,而存储器就是你的脑袋记忆力好不好。
(2)举个例子,最强大脑中,水哥的实力是毋庸置疑的。它能够将一大堆的水杯中选出题目所要的水杯。 这需要他的大脑首先能够记住着一些水杯,也就是需要有足够的存储器。而就算记住了,也无法找出所要的水杯,所以需要快速的分辨,这就是CPU

三大总线结构

地址总线

根据上面存储器部分的讲解,我们对CPU与存储器之间的关系有了一个简单的了解。但是,又有问题了,CPU怎么知道该区存储器的哪个地方读取指令呢?这个时候就需要一个地址总线了。CPU的CS和IP寄存器将会告诉我们应该区内存的哪个地方读取指令,而CS和IP的值通过地址总线传输给存储器,找到存储指令的部分。

数据总线

我们现在读取到了存放指令的地方了,那么CPU还不知道呀。那么这个时候就需要数据总线将数据回传给CPU,告诉CPU,你应该做什么。

控制总线

(1)控制总线就两个寄存器,一个IP,一个FLAG。
(2)IP寄存器和CS寄存器配合,知道指令存放的位置(后面文章会详细讲解)。
(3)FLAG就是标志寄存器,比如数据有了进位信号,有符号数产生溢出,产生中断请求等等,寄存器中相应位就会置1,这样我们可以读取相应位,知道CPU的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

汇编语言与微机原理(1)基础知识 的相关文章

  • 互联网产品上线流程,及面试题分类

    一 基础情况 问题1 自我介绍 3mins 与自我介绍 1min 问题2 为什么你要来这个行业 问题3 为什么你要来这个岗位 问题4 为什么你能胜任这份工作 问题5 为什么你要离职 问题6 过往经历STAR故事描述 问题7 你的职业规划是什
  • HDLC原理及配置

    一 HDLC原理 HDLC是由国际标准化组织 ISO 制定的面向比特的同步数据链路层协议 主要用于封装同步串行链路上的数据 HDLC是在数据链路层中被广泛使用的协议之一 二 HDLC配置 AR1
  • 电脑提示vcruntime140_1.dll丢失怎么安装?

    许多用户在使用电脑的时候 在安装运行某些程序的时候 电脑突然提示由于找不到vcruntime140 1 dll 无法继续执行代码 遇到这种情况我们应该怎么解决呢 下面小编就带着大家一起看看吧 首先是打开电脑浏览器后在顶部输入 dll修复程序
  • Allegro使用总结-查看Layout基本操作:

    好久没用CSDN写过笔记了 没想到无意间打开 编辑器更新啦 以前巨难用的 富文本编辑器 终于改观了 变的好像语雀 1 视图 画面操作 a 画面缩放 Zoom F11 F12 或 鼠标滚轮 补充 Zoom分辨率调节 Setup user pr
  • 微信支付的收款功能被限制了怎么办,收款受限制怎么解除?

    使用小程序做电商 商城的微信支付的收款功能会遇到被限制的情况 直接影响用户下单后的付款操作 其实也不单单是小程序 商城APP中也会冒出类似的提示 遇到这种事情不要慌 根据具体的异常提示给出不同的解决方案 微信支付被限制的错误提示 我们列举两
  • jvm 远程调试配置

    jstatd方式 创建配置文件 随便找个目录就可以 cat gt jstatd policy grant codebase file java home lib tools jar permission java security AllP
  • 更改element button 按钮颜色

    在全局的index scss里面改 显示时按钮样式 el button inblack 需要更改的按钮类型 background 060606 important border color 060606 important color ff
  • 【100%通过率 】华为OD真题c++/python 【羊、狼、农夫过河】【 2022 Q4

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 羊 狼 农夫都在岸边 农夫有一艘容量固定的船 要求求出不损失羊情况下将全部羊和狼运到对岸需要的次数 农夫在或农夫离开后羊的数量大于狼的数量时狼不
  • Peewee的坑

    db create tables Student 当如上使用时可能会报表Student不存在的错误 官方实例如db create tables Student Pet 改成db create tables Student safe True
  • Nginx基础03:配置文件nginx.conf(Part2)

    上一篇文章概述与罗列了 全局配置块 events配置块 http全局块 的基本配置与属性 本篇文章将继续深入server块的配置项 以及相关应用 上篇文章地址 Nginx基础02 配置文件nginx conf Part1 如何使用本篇文章
  • Linux命令·rm

    linux中删除文件和目录的命令 rm命令 rm是常用的命令 该命令的功能为删除一个目录中的一个或多个文件或目录 它也可以将某个目录及其下的所有文件及子目录均删除 对于链接文件 只是删除了链接 原有文件均保持不变 rm是一个危险的命令 使用
  • Allegro PCB封装焊盘介绍(一)

    PCB封装焊盘结构 焊盘结构如图 1所示 图 1焊盘结构 锡膏层 SMT刷锡膏贴片用 一般贴片焊盘要选 跟焊盘等大 阻焊层 把焊盘裸露出来 不开的话 焊盘会被油墨盖住 这样无法焊接哦 一般比焊盘大0 1mm 顶层 底层焊盘 实际焊盘大小 电
  • Qt的基本语法及其使用(一)

    Qt的概念 Qt是通用的C 开发界面框架 C 图形用户界面 应用程序开发框架 既可以开发GUI程序也可以开发开发非GUI程序 Qt是面向对象的框架 使用特殊的代码生成扩展 Qt的历史 1991由QT公司研发 2008年被诺基亚收购 2012
  • Pipenv:作为 Python 开发人员为什么应该使用它

    Pipenv 是一个旨在将所有打包世界中最好的东西带到 Python 世界的工具 它将 Pipfile pip 和 virtualenv 整合到一个命令中 它会自动为您的项目创建和管理虚拟环境 并在您安装 卸载包时从您的 Pipfile 添
  • 【ffmpeg基础】ffmpeg音频编码

    一 aac编码 输入raw音频编码为AAC ffmpeg i input wav acodec aac y input aac 通过 acodec来指定音频编码器 视频编码器为 vcodec 也可以使用 c a来指定音频编码器 ffmpeg
  • Redis热点数据处理

    1 概念 热点数据就是访问量特别大的数据 2 热点数据引起的问题 流量集中 达到物理网卡上限 请求过多 缓存分片服务被打垮 redis作为一个单线程的结构 所有的请求到来后都会去排队 当请求量远大于自身处理能力时 后面的请求会陷入等待 超时
  • 非常优秀的网站设计案例,设计师必备

    厚积才能薄发 一个优秀的设计师的天性一定是想要获得更多网站设计灵感 擅于为新项目寻找创意切入点 搜索设计参考资源 最新的设计趋势 今天为大家带来了一组免费可商用的网站设计案例 通过这些网站设计案例 你可以获得 寻找不同风格的网站灵感 配色
  • 多少个X 蓝桥杯模拟

    问题描述 给定一个字母矩阵 一个 X 图形由中心点和由中心点向四个45度斜线方向引出的直线段组成 四条 线段的长度相同 而且四条线段上的字母和中心点的字母相同 一个 X图形可以使用三个整数 r c L 来描述 其中 r c 表示中心点位于第
  • 学 Linux 必会的 ARM 汇编指令

    学习 Linux 系统启动流程 必须熟悉几个汇编指令 总结给大家 这里不是最全的 只列出一些最常用的汇编指令 一 数据处理指令 1 数据传送指令 MOV指令 把一个寄存器的值 立即数 赋给另一个寄存器 或者将一个常量赋给寄存器 MOV指令的
  • 【go语言】AST抽象语法树详解&实践之扫描代码生成错误码文档

    背景 为了能识别出代码中抛出错误码的地址和具体的错误码值 再根据错误码文件获取到错误码的具体值和注释 方便后续的排错 这里使用AST进行语法分析获取到代码中的目标对象 一 编译过程 在开始解析代码之前先补充了解一下编译过程 编译过程是将高级

随机推荐

  • html5 canvas全屏酷炫星光闪烁3D视差背景动画js特效

    下载地址 基于html5 canvas绘制的全屏酷炫星光闪烁3D视差背景动画特效 还有鼠标交互效果哦 dd
  • Android:Retrofit使用详解(超简单)

    前言 Retrofit设计思想 开发者不用关注网络通信的细节 只需要在接口文件中声明一系列方法和返回值 然后通过注解的方式指定该方法对应哪个服务器接口 以及需要提供哪些参数 当我们在程序中调用该方法时 Retrofit会自动向对应的服务器接
  • Qt:构建套件(Kits)

    如下为Qt 5 11 3安装包中含有的Qt组件 组件中的MSVC 2015 32 bit MSVC 2015 64 bit MSVC 2017 64 bit MinGW 5 3 0 32 bit和Tools中的MinGW 5 3 0分别对应
  • S0到S5状态讲解

    ACPI 高级配置和电源管理接口 的六种工作状态Advanced Configuration and Power Management InterfaceACPI表示高级配置和电源管理接口 Advanced Configuration an
  • 蓝桥杯2021年第十二届真题第一场-双向排序

    题目 题目链接 题解 yxc讲解 y总讲已经很好了 但是不得不说 无论是他的基础课还是提高课什么的 都不会去带着你分析代码 这确实让人很头大 这里我就说一下我当时疑惑的点 为什么加if l gt r break 该语句所处的循环相当于在按着
  • [C++]-日志记录库SPDLog简介

    文章目录 spdlog库 日志记录槽sink 日志记录器logger 输出格式pattern 对齐方式 截断 字符串格式化fmt Format Specification spdlog使用 异常处理 logger 基础用法 stdout日志
  • echarts柱状图添加点击事件,但无法触发弹窗(不显示问题)

    1 首先 echarts点击事件一般写法为 myChart on click function params console log params 柱状图点击事件 this dialogVisibleA true 这种写法的问题在于点击事件
  • idea properties配置文件中的中文显示为unicode转中文显示

    一 前言 如图所示 有时候我们项目里的properties配置文件中的中文显示为unicode编码格式如下图所示 无法查看其真正意思 有的人会找unicode转换工具查看 这样很麻烦 有一个好办法 二 步骤 1 通过Settings显示成中
  • 在VUE中使用ElementUI的常用组件

    Layout布局 ElementUI将一行分为24栏 通过
  • Qt之信号与槽

    目录 信号与槽的概念 实现对象与对象之间的通信 信号 槽 信号与槽的连接 1 连接方式 2 连接规则 3 连接类型 信号与槽的概念 实现对象与对象之间的通信 当一个对象发生了改变会发送一个信号通知另一个对象执行一个函数 这个函数被称为槽 信
  • img标签的onerror事件

    有时 img标签中的src图片加载失败 原来的图片位置会出现一个碎片图标 用户体验会下降 通过百度 可以给img标签加背景图片 代码如下 headLogo img display block width 270px height 60px
  • mmdetection结果可视化

    import os from mmdet apis import init detector inference detector config file home lgh Desktop ours config py checkpoint
  • 使用Nvidia Jetson TX2进行人脸检测

    环境 Jetson TX2 JetPack 3 1 构建 1 下载代码 git clone https github com AastaNV Face Recognition 2 进入Face Recognition文件夹 cd Face
  • Nginx停止服务和各种命令

    1 停止Nginx服务的四种方法 从容停止服务 这种方法较stop相比就比较温和一些了 需要进程完成当前工作后再停止 nginx s quit 立即停止服务 这种方法比较强硬 无论进程是否在工作 都直接停止进程 nginx s stop s
  • k-均值聚类简介

    k 均值聚类 将训练集分成k个靠近彼此的不同样本聚类 因此我们可以认为该算法提供了k 维的one hot编码向量h以表示输入x 当x属于聚类i时 有hi 1 h的其它项为零 k 均值聚类提供的one hot编码也是一种稀疏表示 因为每个输入
  • C编程实例

    1 任意输入 3 个整数 编程实现对这 3 个整数由小到大进行排序 实现过程 1 定义数据类型 本实例中 a b c t 均为基本整型 2 使用输入函数获得任意 3 个值赋给 a b c 3 使用 if 语句进行条件判断 如果 a 大于 b
  • python dict无需判断key存在即可追加写入

    使用dict setdefault 可设置一个默认值 如果key已存在 就不会有其他操作 借此我们可以不用在追加数据时判断key的存在 my dict 建立一个空字典 my dict setdefault key 设置默认键 print a
  • mysql实习报告总结_MYSQL实训心得

    随时光游走 阳光穿过树叶的间隙 我们重新踏入这座美丽的校园 首先迎接我们的便是为时一周的 MYSQL 实训 在这短短的一周内 我们获益匪浅 在实训的开始 我们小组分析了老师给出的两个任务 然后一致决定研究第一个任务 我们首先讨论了处理任务的
  • 【手把手教你】使用pyfinance进行证券收益分析

    pyfinance简介 在查找如何使用Python实现滚动回归时 发现一个很有用的量化金融包 pyfinance 顾名思义 pyfinance是为投资管理和证券收益分析而构建的Python分析包 主要是对面向定量金融的现有包进行补充 如py
  • 汇编语言与微机原理(1)基础知识

    前言 1 本人使用的是 王爽老师的汇编语言第四版和 学校发的微机原理教材配合学习 2 推荐视频教程 通俗易懂的汇编语言 王爽老师的书 贺老师C站账号网址 3 文章配套资料 Github仓库链接 4 本文是介绍8086汇编语言 汇编语言简介