【汇编语言】初识汇编

【汇编语言】初识汇编


文章目录


前言

为什么要学习汇编?学习汇编的 理由:
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机为例

总结

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

相关推荐
Crossoads3 天前
【汇编语言】端口 —— 「从端口到时间:一文了解CMOS RAM与汇编指令的交汇」
android·java·汇编·深度学习·网络协议·机器学习·汇编语言
雪碧透心凉_5 天前
8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全
汇编
C66668888 天前
C#多线程
开发语言·汇编·c#
傻童:CPU8 天前
汇编源程序的理解
汇编
木槿719 天前
软件包git没有可安装候选
汇编·git
ok0609 天前
各种开源汇编、反汇编引擎的非专业比较
汇编·开源
roboko_9 天前
MIPS指令集(一)基本操作
汇编
Crossoads9 天前
【汇编语言】内中断(三) —— 中断探险:从do0到特殊响应的奇妙旅程
android·开发语言·javascript·网络·汇编·单片机·机器学习
染指111010 天前
49.第二阶段x86游戏实战2-鼠标点击call深追二叉树
汇编·c++·windows·游戏安全·反游戏外挂·游戏逆向
程序leo源12 天前
深入理解指针
android·c语言·开发语言·汇编·c++·青少年编程·c#