最近在学习赵炯老师的《Linux内核完全注释》,看了一段时间,有很多汇编程序虽然看了注意依然都看不懂,所以下定决心先把汇编学好,读了一遍王爽老师《汇编语言》,解答了我很多上学学汇编时很多不懂得地方,有一种拨云见日的感觉,真心的给王爽老师一个大大的赞!为了学好Linux内核,我个人认为应该有扎实的汇编功底,粗略的读了一遍《汇编语言》,有很多地方只是理解了基本原理,没有进行实践,近期准备重新认真的学习一遍,梳理下汇编的基本知识点,也希望能够对学习汇编的朋友有所帮助,哪怕是一个知识点。
一 基本知识
1 汇编语言组成:汇编指令,伪指令,其他符号
1)汇编指令:有对应的机器码;
2)伪指令:没有对应的机器码,由编译器指令,计算机不执行;
3)其他符号:例如+-*/等,没有机器码,由编译器执行。
2 指令和数据
指令和数据都是二进制信息。CPU在工作时把有的信息看做指令,有的信息看做数据。
3 存储单元
1)存储单元从0开始编号,以字节为单位
4 数据总线、地址总线、控制总线
一个CPU可以引出3种总线的宽度标志了这个CPU不同方面的性能。
地址总线决定了CPU的寻址能力;
数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;
控制总线的宽度决定了CPU对系统中其他器件的控制能力。
5 各类存储器芯片
存储器从读写性质上分:RAM和ROM
存储器从功能和连接上分:
1)随机存储器RAM,主板上的RAM(主存)
2)主板和某些接口卡上茶油存储相应BIOS的ROM,例如:主板上的ROM,显卡上的ROM,网卡上的ROM
3)接口卡上的RAM 显存:显卡随时将显存中的数据向显示器输出。
6 内存地址空间
图中的存储器在物理上是独立的器件,但
1) 都和CPU的总线相连;
2) CPU对它们进行读或写的时候都通过控制总线发出内存读写指令。
所有的物理存储器被看做一个由若看存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占有一个地址段,CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。