当前位置:C++技术网 > 资讯 > 汇编基础知识之寄存器简介

汇编基础知识之寄存器简介

更新时间:2018-11-09 11:10:08浏览次数:1+次

寄存器

    在计算机领域,寄存器是CPU内部的元件,拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。

    寄存器包括通用寄存器、段寄存器和控制寄存器。

             


              

    1. BP、SP指针寄存器,与SS联用;
        SI、DI变址寄存器,与DS联用。
        SP指向堆栈最顶端地址。
    2. 代码段寄存器CS存放可执行的指令代码;
        数据段寄存器DS存放操作的数据;
        附加段寄存器ES存放操作的数据;
        堆栈段寄存器SS开辟为程序执行中所要用的堆栈区。
    3. IP指向当前将要执行的指令的地址。
    4. 以上均为16位寄存器,32位寄存器有EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI、EIP,如EAX=0x12345678;则AX=0x5678——16位寄存器, AH=0x56,AL=0x78。
    5. 标志寄存器用于存放运算结果的特征、常用于条件转移指令。
       

    状态标志(6个):CF、PF、AF、ZF、SF和OF       控制标志(3个):TF、IF、DF
    C        进位/借位标志,最高位有进位或借位时,CF=1。
    P        奇偶标志,本次运算结果用二进制表示,该二进制数中1的总个数为偶数时,P=1。
    A        辅助进位标志,低4位向高4位进位或借位时,AF=1。
    Z        零标志,当运算产生的结果为 0 时,Z=1。
    S        符号标志,本次运算结果的最高位为1时,SF=1。即反映了本次运算结果是正还是负。
    O        溢出标志,本次运算过程中产生溢出时,OF =1 。
    T        单步标志位
    I         中断标志位(这两个标志用到了可以详细去了解)
    D        控制串操作指令中地址指针变化方向,若在串操作指令中,DF=0,地址指针自动增量,即由低地址向高地址进行串操作;若DF=1,地址指针自动减量,即由高地址向低地址进行串操作。由STD指令可使DF标志位置“1”,由CLD指令可使DF标志位置“0”。