汇编基础知识

汇编语言(Assembly Language)是由源文件(如.c .h等)到机器码(0101010)过程中的一个过渡语言,机器码01010之类的不方便记忆,使用助记符来标识不同的操作,即是汇编语言。


汇编语言的“地位”

我们平常编写的源代码.c, .cpp, .java,经过编译器编译之后,生成汇编文件.s, .asm,再由汇编器汇编生成目标文件.o,再由链接器链接生成可执行文件.exe

指令集(Instruction Set)

指令集可分为复杂指令集和精简指令集,复杂指令集的指令长度不固定,且某一条指令可能要完成多项任务,而精简指令集的指令长度一致,且某条指令只执行一项任务。

总线

总线可分为,控制总线,数据总线,地址总线,顾名思义,控制总线来表示“做什么”,数据总线表示“数据大小”,地址总线表示“在哪做”。

CPU中央处理器结构

CPU主要由算术逻辑单元,控制单元,CPU时钟和存储器组成。
汇编基础知识

不同位数下的寄存器及寄存器的重叠情况

汇编基础知识

汇编基础知识
上图表示一个64位的寄存器RAX,但是为了兼容之间较低位数的,仍然可以使用EAX使用该寄存器,但是只使用0-31位的位置,同理AX使用该寄存器的部分,0-15位的位置。假设使用EAX,0-31位的四个字节,分别存储了1、2、3、4,再使用AX的两个字节存储5、6,则此时EAX访问则为1、2、5、6,覆盖部分EAX存储的值。

汇编语言基础

不同的汇编器有着不同的语法,汇编文件通常以.s .asm问后缀,汇编语言不区分大消息,汇编语言主要有保留字(reserved word),标识符(identifier),命令(directive),区段(section),和指令(instruction),学习过简单的编程语言之后,与汇编做了一个类比。学习的时候,建议选择一种语法学习下去,不然很容易搞混。
汇编基础知识

汇编基础知识