小白的汇编之路

前言

因为最近在学习王爽老师的《汇编语言》,所以本文属于学习笔记和回顾。

机器语言

由于早期的程序设计是使用机器语言(由0,1数字编成的程序代码),使用和改错极不方便,基于此诞生了汇编语言

组成

汇编指令由三部分组成:
汇编指令;(核心)
伪指令;
其他符号;

指令与数据

在内存和磁盘中,指令和数据没有任何区别,因为计算机在存储这些信息时,在内存或者磁盘中都是以二进制信息进行存储与处理的
例如:
1000100111011000 89D8H (数据)
1000100111011000 mov ax,bx(程序) //将bx寄存器的值存入ax寄存器中

存储单元

内存被划分为一个又一个存储单元
在后面会涉及到字存储单元与字节存储单元
假设下图是内存中的一个内存片段

0
1
2
3
4

每个内存单元大小为1个字节

CPU对存储器的读写

首先我们得知道,不要以为CPU有多聪明,它无法在没有任何信息的情况下去执行指令,聪明的是人。
我们要让CPU进行工作,首先我们得告诉他:你要去哪做?怎么做?做什么?
也就是说我们需要提供:

  • 数据信息;(读或者写的数据)
  • 地址信息;(存储单元的地址)
  • 控制信息;(是读还是写)

对于这三类信息的传输,CPU与存储器芯片之间存在三类导线:

  1. 数据总线(Data Bus)

    数据总线的宽度意味着CPU与其他器件进行数据传输时,一次可传输的数据量
    假设有8根数据总线,那么一次就可传输8位数据

  2. 地址总线(Address Bus)

    扫描二维码关注公众号,回复: 9768851 查看本文章

    地址总线的宽度决定CPU的寻址能力

  3. 控制总线(Control Bus)

    控制总线的宽度决定CPU对其他部件的控制种类

    如:mov ax,[3] //[3]先暂时把它理解为3号单元
    对于上述指令隐含着这样的信息:
    CPU需要前往3号单元(地址信息)
    将3号单元所存储的值取出来(数据信息)
    然后将这个值赋给ax寄存器(赋值–>控制信息)

发布了10 篇原创文章 · 获赞 3 · 访问量 328

猜你喜欢

转载自blog.csdn.net/weixin_41043607/article/details/103333356