【汇编语言】初识汇编

【汇编语言】初识汇编


文章目录


前言

为什么要学习汇编?学习汇编的 理由:
1.效率

运行效率:开发软件核心部件,快速执行和实时响应。

开发效率:做合适的事,开发效率无敌。
2.底层 :计算机及外围设备的驱动程序

操作系统的内核。

嵌入式系统:家用电器,仪表仪器,物联网......
汇编语言在学习计算机中起到的独特作用------直击计算机系统的核心

学习汇编语言:

. 向上为理解各种软件系统的原理,打下技术理论基础

. 向下为掌握硬件系统的原理,打下实践应用基础。


由机器语言到汇编语言

机器语言与机器指令

机器语言 是机器指令的集合
机器指令 是一台机器可以正确执行的命令
机器指令是由一串二进制数表示,例如:011100001

早期程序员们的工作形态:将 0、1 数字编程的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。但是如果出错的话查找错误会比较麻烦。

汇编语言与汇编指令

汇编语言 的主体是汇编指令
汇编指令和机器指令的差别在于指令的表示方式上:

汇变指令是机器指令便于记忆的书写格式。

汇编指令是机器指令的助记符。

例:

机器指令: 1000100111011000

操作:将寄存器BX的内容送到AX中

汇编指令:MOV AX, BX

汇编语言程序示例


计算机组成

计算机组板上有:CPU,总线,内存(条),扩展槽(接外部设备)

CPU 是计算机的核心部件 ,它控制整个计算机运作并进行运算。要想让一个CPU工作,就必须向它提供指令和数据

指令和数据在 存储器内存 )中存放。

离开了内存,性能再好的CPU也无法工作。

指令和数据的表示

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

数据和指令,都是二进制信息

问题:二进制信息1000100111011000是数据还是指令?

答案是由CPU来决定

CPU把它用作数据:1000100111011000 --->89D8H(数据)

CPU把它用作指令:1000100111011000 --->MOV AX,BX(程序)

数据如何表示?

  • 1000100111011000B(二进制)
  • 89D8H(十六进制)
  • 104730O(八进制)
  • 35288D(十进制)

数据大小:

B(字节)=8bit(比特),KB=1024B,MB=1024KB,GB=1024MB,TB=1024GB.

计算机的存储单元

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

例如:

一个存储器有128个存储单元,

编号从0~127,

如图示:

实际上:

内存空间很"大",

8086有20条数据线,

寻址空间2^20=1024*1024B=1MB,为1MB

计算机的总线

在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。

物理上:一根根导线的集合;

逻辑上:地址总线数据总线控制总线

  • 地址总线

CPU是通过地址总线来指定存储单元的。地址总线宽度,决定了可寻址的存储单元大小。N根地址总线(宽度为

N),对应寻址空间2N。

  • 数据总线

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

例:向内存中写入数据89D8H时的数据传送。8088CPU只有8位数据总线要传两次,8086CPU有16根数据总线只要传一次

  • 控制总线

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

内存读写与地址空间

CPU对存储器的读写

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

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

演示:

机器码: 101000000000001100000000

16进制:A00300

汇编指令:MOV AL,[3]

含义:从3号单元读取数据送入寄存器AL

要读取的地址信息通过地址线找到相应的内存单元,控制信息的器件通过控制线发出读,地址号为3的内存单元的数据通过数据线读入CPU存放于存放数据的器件。

内存地址空间

什么是内存地址空间:

CPU地址总线宽度为N,寻址空间为2^N B

8086CPU的地址总线宽度为20,那么可

以寻址1MB个内存单元,其内存地址空间为1MB。

从CPU角度看地址空间分配:

随机存储器(RAM)在程序的执行过程中可读可写,必须带电存储

只读存储器(ROM)在程序的执行过程中只读,关机数据不丢失

将各类存储器看作一个逻辑存储器------统一编址

所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器;

每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间;

CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。

内存地址空间的分配方案------以8086PC机为例

总结

到这里这篇文章的内容就结束了,谢谢大家的观看,如果有好的建议可以留言喔,谢谢大家啦!

相关推荐
我在人间贩卖青春4 天前
汇编之伪指令
汇编·伪指令
我在人间贩卖青春4 天前
汇编之伪操作
汇编·伪操作
济6174 天前
FreeRTOS基础--堆栈概念与汇编指令实战解析
汇编·嵌入式·freertos
myloveasuka5 天前
汇编TEST指令
汇编
我在人间贩卖青春5 天前
汇编编程驱动LED
汇编·点亮led
我在人间贩卖青春5 天前
汇编和C编程相互调用
汇编·混合编程
myloveasuka5 天前
寻址方式笔记
汇编·笔记·计算机组成原理
请输入蚊子5 天前
《操作系统真象还原》 第六章 完善内核
linux·汇编·操作系统·bochs·操作系统真像还原
myloveasuka6 天前
指令格式举例
汇编·笔记·计算机组成原理
我在人间贩卖青春6 天前
汇编之分支跳转指令
汇编·arm·分支跳转