前言
因为最近在学习王爽老师的《汇编语言》,所以本文属于学习笔记和回顾。
机器语言
由于早期的程序设计是使用机器语言(由0,1数字编成的程序代码),使用和改错极不方便,基于此诞生了汇编语言
组成
汇编指令由三部分组成:
汇编指令;(核心)
伪指令;
其他符号;
指令与数据
在内存和磁盘中,指令和数据没有任何区别,因为计算机在存储这些信息时,在内存或者磁盘中都是以二进制信息进行存储与处理的
例如:
1000100111011000 89D8H (数据)
1000100111011000 mov ax,bx(程序) //将bx寄存器的值存入ax寄存器中
存储单元
内存被划分为一个又一个存储单元
在后面会涉及到字存储单元与字节存储单元
假设下图是内存中的一个内存片段
0 |
---|
1 |
2 |
3 |
4 |
每个内存单元大小为1个字节
CPU对存储器的读写
首先我们得知道,不要以为CPU有多聪明,它无法在没有任何信息的情况下去执行指令,聪明的是人。
我们要让CPU进行工作,首先我们得告诉他:你要去哪做?怎么做?做什么?
也就是说我们需要提供:
- 数据信息;(读或者写的数据)
- 地址信息;(存储单元的地址)
- 控制信息;(是读还是写)
对于这三类信息的传输,CPU与存储器芯片之间存在三类导线:
-
数据总线(Data Bus)
数据总线的宽度意味着CPU与其他器件进行数据传输时,一次可传输的数据量
假设有8根数据总线,那么一次就可传输8位数据 -
地址总线(Address Bus)
扫描二维码关注公众号,回复: 9768851 查看本文章地址总线的宽度决定CPU的寻址能力
-
控制总线(Control Bus)
控制总线的宽度决定CPU对其他部件的控制种类
如:mov ax,[3] //[3]先暂时把它理解为3号单元
对于上述指令隐含着这样的信息:
CPU需要前往3号单元(地址信息)
将3号单元所存储的值取出来(数据信息)
然后将这个值赋给ax寄存器(赋值–>控制信息)