首页 > 编程语言 >8086 汇编学习 Part 1

8086 汇编学习 Part 1

时间:2024-04-04 17:44:25浏览次数:28  
标签:汇编 8086 存储器 总线 Part 指令 存储单元 CPU 机器指令

学习汇编语言的重要性

  1. 编程语言发展
    Assembly1b3280d8c360bd064.md.png
  2. 不可替代性
    Assembly256a666658daadd64.md.png
    效率:用于开发软件的核心部件,可以快速执行和实时响应。
    底层:开发操作系统内核,嵌入式系统等计算机及外围设备的驱动程序
    作用:直击计算机系统的核心,可以加深对计算机原理和操作系统的理解。

学习内容

  • 理解硬件结构,掌握指令集,理解程序的运行过程
  • 8088 和 8086 指令集与汇编语言程序设计

机器语言与机器指令

  • 机器语言是机器指令的集合
  • 机器指令是一台机器可以正确执行的命令。

汇编语言与汇编指令

  • 汇编语言的主体是汇编指令。
  • 汇编指令和机器指令的差别在于指令的表示方法上。
  • 汇编指令是机器指令便于记忆的书写格式。
  • 汇编指令是机器指令的助记符。

用汇编语言编写程序的工作过程

程序员编写汇编指令,由编译器编译为机器码,最后交由计算机执行。

计算机组成

主板上有CPU,总线,内存和连接外部设备的扩展槽
CPU
是计算机的核心部件,控制着整个计算机的运作并进行运算。要想让一个CPU工作,就必须向它提供指令和数据。
指令和数据在存储器(内存) 中存放。CPU不能离开内存

存储单元

存储器被划分成若干个存储单元,每个存储单元从 0 开始顺序编号

总线

在计算机中专门连接CPU和其他芯片的导线,通常称为总线。
物理层面上是一根根导线的集合。
逻辑层面上划分为地址总线,数据总线和控制总线。

地址总线

  • CPU是通过地址总线来指定存储单元。
  • 地址总线宽度,决定了可寻址的存储单元大小。
  • N 根地址总线(宽度为 N)对应寻址空间为 \(2^N\)。

数据总线

  • CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。
  • 数据总线的宽度,决定了CPU和外界数据的传送速度。

控制总线

CPU通过控制总线对外部器件进行控制。
控制总线是一些不同控制线的集合。
控制总线的宽度,决定了CPU对外部器件的控制能力。

指令和数据

计算机中的数据和指令都存储在内存或磁盘上。

表示

数据和指令都是二进制信息,二进制信息究竟是数据还是指令,由CPU决定。
表示方式有二进制(B),十六进制(H),八进制(O),十进制(D)。

内存的读写与地址空间

CPU对存储器的读写

CPU进行数据的读写,要和外部器件进行三类信息的交互

  1. 存储单元的地址(地址信息)
  2. 器件的选择,读或写命令(控制信息)
  3. 读或写的数据(数据信息)

内存地址空间

CPU 地址总线宽度为 N,寻址空间为 \(2^N\),内存地址空间也就为 \(2^N\)。
从 CPU 角度看地址空间分配

  • 主板上和扩展槽上的 RAM(随机存储器)可读可写。
  • 存储系统 BIOS 和接口卡上的 BIOS 的 ROM(只读存储)可读不可写。

统一编址

将各类存储器看作一个逻辑存储器。
所有物理存储器被看作一个由若干存储单元组成的逻辑存储器。
每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。
CPU在读写哪段地址空间的数据,实际上就在相对应的物理存储器中读写数据。

标签:汇编,8086,存储器,总线,Part,指令,存储单元,CPU,机器指令
From: https://www.cnblogs.com/AlwaysBeShine/p/18114417

相关文章

  • 每日面经分享(python进阶 part2)
    Python中的装饰器和上下文管理器区别是什么?它们分别适用于哪些场景?a.装饰器用于在函数或类的外部添加额外功能,而上下文管理器用于管理资源的获取和释放。b.装饰器是一种用于修改函数或类行为的技术。适用于需要在函数或类的外部添加额外功能的场景,比如日志记录、性能监......
  • Linux C编程一站式学习 part3: Linux系统编程
    LinuxC编程一站式学习(akaedu.github.io)28.文件与I/O29.文件系统30.进程31.Shell脚本32.正则表达式33.信号34.终端、作业控制与守护进程35.线程36.TCP/IP协议基础37.socket编程......
  • 15天【代码随想录算法训练营34期】第六章 二叉树 part02(● 层序遍历 10 ● 226.翻
    层序遍历10102.二叉树的层序遍历(opensnewwindow)#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution......
  • MCS-51单片机汇编指令总结
    一、前言       本片文章是基于MCS-51单片机的汇编指令集进行的指令总结,讲解内容少,记忆内容多,方便查询使用,也可以应对考试内容记忆......
  • GEE C22-23 探索矢量、栅格/矢量转换(part5)
     Part1探索矢量一、在GEE中使用几何工具创建要素 二、加载现有的特征和特征集合在地球varroi=table;//vartiger=ee.FeatureCollection('TIGER/2010/Blocks');//Addthenewfeaturecollectiontothemap,butdonotdisplay.Map.addLayer(roi,{'color'......
  • lightdb 支持 merge partitions
    背景Oracle中支持很多种分区管理操作。其中mergepartitions会将多个连续分区合并成一个分区。lightdb24.1中支持了该功能。mergepartitions功能支持list和range分区,不支持hash分区。用例range分区CREATETABLEmeasurement(city_idintnotnul......
  • 手把手教你做阅读理解题-初中中考阅读理解解题技巧009-There are many different part
    PDF格式公众号回复关键字:ZKYD009阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解1预览文章结构在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构标题通常能概括文章......
  • 深度学习-机器视觉part2
    深度学习-机器视觉part2文章目录深度学习-机器视觉part2一、从卷积到卷积神经网络二、手撕卷积代码2.1动机2.2数据集2.3卷积操作2.3.1填充(padding)2.3.2卷积块2.3.3池化2.3.4Softmax2.4完整CNN2.5训练改进三、经典CNN模型介绍四、CNN模型的实际应用参考一......
  • 代码随想录算法训练营DAY14|C++二叉树Part.1|二叉树的递归遍历、二叉树的迭代遍历、二
    文章目录二叉树的递归遍历思路CPP代码二叉树的迭代遍历思路前序遍历后序遍历后序遍历二叉树的统一迭代法二叉树的递归遍历144.二叉树的前序遍历、145.二叉树的后序遍历、94.二叉树的中序遍历文章讲解:二叉树的递归遍历视频讲解:每次写递归都要靠直觉?这次带你学......
  • 生信小白菜之关于summarize函数的一切(part 1)
    准备包和示例数据library(dplyr)library(nycflights13)library(ggplot2)summarize()的基本用法#获取摘要的函数#作用是将数据框折叠成一行#举例summarise(flights,delay=mean(dep_delay,na.rm=T))#第二个参数新的一列,也是根据数据框原有数据计算得来#返回结......