汇编语言学习
简介
我们都知道计算机存储的数据为0和1,计算机设计者把计算机内部的操作设定为一个个的操作码用01的形式表示,但是人类难以记住大量的01数字串,于是又设计出了很多的指令集,例如MOV,ADD,PUSH等等,这些指令集加上他们的操作数对应着计算机执行某个动作时的操作码。而汇编语言就是用更接近人类语言的方式去同计算机沟通。而学习汇编语言,必须先了解寄存器和指令、伪指令。
寄存器
位于CPU中的高速存储器,用于暂存指令、数据和地址。常用的寄存器大致分类为:数据寄存器、变址寄存器、指针寄存器、段寄存器、指令指针寄存器、标志寄存器。
-
数据寄存器
-
AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等 指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据.
-
BH&BL=BX(base):基址寄存器,常用于地址索引;
-
CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.
-
DH&DL=DX(data):数据寄存器,常用于数据传递。
-
他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使用。
指针寄存器和变址寄存器
-
SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置;
-
BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;
-
SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;
-
DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。
指令指针寄存器
-
IP(Instruction Pointer)
标志寄存器
-
FR(Flag Register)
-
OF(overflow flag)
-
DF(direction flag)
-
CF(carrier flag)
-
PF(parity flag)
-
AF(auxiliary flag)
-
ZF(zero flag)
-
SF(sign flag)
-
IF(interrupt flag)
-
TF(trap flag)