汇编语言 第一章 基础知识

    技术2024-11-09  24

    伪指令:作用是指导程序如何进行汇编 将程序或者相对于寄存器的地址载入寄存器中

    1.4 cpu 依赖读取内存中的指令和数据 才能工作

    1.5 在内存中 指令和数据没有任何区别;都是二进制信息 ;但是在cpu读取的时候 例如1000100111011000 同样的一条指令;既可以看做是89d8h这个数据来看,还可以看做是mov ax,bx这个指令来看;  总结一句话:cpu读取二进制信息的时候 可以把它看作是指令 或者数据;

    1.6 存储器是被划分成若干个存储单元,每个存储单元从0开始排号;比如有一个存储器有128个存储单元 那么他有0~127个存储单元;每个单元1个字节 8位;存放2进制信息;

    1.7 cpu有管脚 用来与总线相连 从而操作主板上的所有器件 总线内置在主板上 总线有3种 分别为 地址总线 控制总线 数据总线 ,

    例如cpu要读取内存中的数据:

       ^首先cpu通过地址总线发出将要读取的几号地址信息发出

       ^然后通过控制总线发出读命令 选中存储器芯片准备读取数据(先有想法 再有行动)(笨笨笨!这个问题想这么久)

       ^最后存储器将要读取的地址单元 通过数据总线把对应的存储器中里对应的存储单元 返回给cpu  <-(这里是读写的区别)

    例如cpu要写入内存中的数据(内存无非就是可读可写两个功能):

       ^首先 cpu通过地址总线 发出要写入的地址单元

       ^然后 cpu通过控制总线 发出要写入的命令  找到要写入的那个存储器

       ^最后 cpu通过数据总线 把要写入的数据 给那个存储器下的地址单元. (<-区别)

    他俩的区别就是 一个是读操作返回给cpu  写入操作返回给内存;

    问:如何驱动cpu进行读写操作?(cpu为什么可以通过2进制电平信息进行操作?)

    答:输入能够驱动它工作的电平信息  例如101000000000001100000000(24位) 2进制信息 这个不是数据 是指令;意思是从3号单元读取的数据放到寄存器ax中   汇编指令:MOV AX,[3]

    1.8 地址总线: 2^N = 可表示多少个数 = 内存单元的个数 = 寻址能力 N是总线数也叫做宽度 有多少总线cpu就能找到多少个内存单元;

    1.9 数据总线:数据总线的宽度决定了cpu传输数据的速度;64位处理器说的就是一次可以传输64位数据 即数据总线宽度为64,有64根数据总线;每一根导线传输1位 一共64位 即64bit 等价于8个字节byte;一次可以传输8个字节的数据;

    这里想到cpu和内存之间的关系:

    64位处理器 他的寻址能力 是2^64 = 21.5亿个G = 2097452 TB 平时家里插4个G 对于cpu来说绰绰有余;不会担心说插了过大的内存条 却寻不到地址;再大也没有用的情况了;64位处理器 这里数据总线中  数据总线 控制总线 地址总线 个数不一定都一样;

    如何传送一个89D8的数据?

    先传D8即11011000 后传89即10001001 总线中从下往上按照顺序排列2进制信息;我估计先传D8在右边 后传89在左边 左边加上右边正好是89D8 所以采用了这个顺序;这个时候 8088 8086分别是8和16跟数据总线;8088需要2次 而8086cpu只需要一次 时间就减少了;

    1.10 控制总线 有多少根控制总线就意味着cpu对外部器件有多少种控制 ; 所以控制总线的宽度决定了cpu的控制能力;

    cpu的管脚可能不止引出这3类总线 那么cpu可以引出多少种总线?

    检测点1.1练习纸;

    1.11 内存地址空间: 2^10 = 1024 byte =1024个存储单元;

    1.12~1.15 硬件相关知识总结:

    主板:芯片组(南桥(外围接口 扩展插槽 的数据流通) 北桥(cpu 插槽内存 主板内存之间的数据交流) bios(放在rom中是主板的相关设置) )  外围接口  扩展插槽

     

    显卡: 显存  GPU (显示器显示什么跟显存有直接联系)

     

    内存地址空间 是 逻辑上的存储器 分为:

    主存储器地址空间;显存地址空间;显卡 网卡 主板的rom地址空间;

    内存地址空间的大小 受 cpu地址总线的宽度限制; 寻址能力就这么大;能找到多少个内存单元的个数;

    在逻辑上给这些地址空间划分地址段 按照地址段cpu写入数据;

    最新回复(0)