【汇编语言】初识汇编
文章目录
前言
为什么要学习汇编?学习汇编的 理由:
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 想要进行数据的读写,必须和外部器件进行三类信息的交互:
- 存储单元地址(地址信息)
- 器件选择,读或写命令(控制信息)
- 读或写的数据(数据信息)
演示:
机器码: 101000000000001100000000
16进制:A00300
汇编指令:MOV AL,[3]
含义:从3号单元读取数据送入寄存器AL
要读取的地址信息通过地址线找到相应的内存单元,控制信息的器件通过控制线发出读,地址号为3的内存单元的数据通过数据线读入CPU存放于存放数据的器件。
内存地址空间
什么是内存地址空间:
CPU地址总线宽度为N,寻址空间为2^N B
8086CPU的地址总线宽度为20,那么可
以寻址1MB个内存单元,其内存地址空间为1MB。
从CPU角度看地址空间分配:
随机存储器(RAM)在程序的执行过程中可读可写,必须带电存储
只读存储器(ROM)在程序的执行过程中只读,关机数据不丢失
将各类存储器看作一个逻辑存储器------统一编址
所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器;
每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间;
CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。
内存地址空间的分配方案------以8086PC机为例
总结
到这里这篇文章的内容就结束了,谢谢大家的观看,如果有好的建议可以留言喔,谢谢大家啦!