每日一课(1/75) 通用寄存器及标志寄存器

开始写每日一课,一共75篇,两个多月应该能写完。

1 通用寄存器:

寄存器是学习汇编知识时的第一课,常用寄存器如下:
AX/EAX  BX/EBX  CX/ECX  DX/EDX  是通用的数据寄存器 用于暂时存放计算过程中的操作数 结果 或者其他信息。他们可以分为两个独立的8位寄存器使用,AL/AH BL/BH CL/CH DL/DH,除了通用功能之外还有以下用途:

AX/EAX作为累加器用,是算数运算的主要寄存器,在乘除指令中用来存放操作数,另外,所有的IO指令都是用AX或AL与外部设备传送信息。
BX/EBX在计算存储器地址的时候,可以作为基址寄存器使用。
CX/ECX常用来保存计数值,比如移位指令,循环指令和串处理指令中用作隐含的计数器。
DX在做双字节长运算的时候,可以把DX和AX组合在一起存放一个双字长数,DX存放高16位数据,对于某些IO操作,DX还常常存放IO的端口地址。

SP/ESP  BP/EBP  SI/ESI  DI/EDI四个16/32位寄存器可以像数据寄存器一样在运算过程中存放操作数,但是他们只能以字(16/32位)为单位来使用,他们的主要用途是在存储器寻址时,提供偏移地址,因此他们可称为指针或变址寄存器。

SP/ESP称为堆栈指针寄存器,用来指出栈顶的偏移地址。
BP/EBP称为基址指针寄存器,用来在寻址的时候作为基地址存放的地方,但他必须和堆栈段寄存器SS联用来确定堆栈段中的存储单元地址。


2 标志寄存器

条件码标志是用来记录程序中运行结果的状态信息,他们是根据有关指令的运行结果由CPU自动设置的,由于这些状态信息往往作为后续条件转移指令的转移控制条件,所以称为条件码。
1 进位标志        CF    记录运算时最高有效位产生的进位值
2 符号标志        SF    记录运算结果的符号  1表示负数  0表示正数
3 零标志           ZF    运算结果为0时ZF为1 否则为0
4 溢出标志        OF    在运算中 如操作数超出了机器可表示数的范围称为溢出 溢出时为1 否则为0
5 辅助进位标志  AF     记录运算时第3位产生的进位值
6 奇偶标志        PF     用来为机器中传送信息时可能产生的代码出错情况提供检验条件,当结果操作数中1的个数为偶数时置1 否则为0

你可能感兴趣的:(每日一课(1/75) 通用寄存器及标志寄存器)