汇编;8086/8088;寄存器

一、通用寄存器



1)数据寄存器

    AX:累加器,通用,且所有I/O指令作用于此寄存器;
    BX:基址寄存器,通用,且计算存储器地址时作基址使用;
    CX:计数器,通用,且用于控制循环次数;
    DX:数据寄存器,通用,且放32位数的高16位,或放外设端口地址;
(16位寄存器可拆成两个8位相对独立的寄存器使用,程序中可存放操作数也可存放操作结果)

2)指针及变址寄存器

指针寄存器:


    SP:堆栈指针寄存器——栈顶的偏移地址;
    BP:基址指针寄存器——默认为SS段地址;


变址寄存器:

    SI:源变址寄存器,储存源操作数的地址;
    DI:目的变址寄存器,储存目的操作数的地址;
    (可存放操作数,但是只能够作16位使用)

二、段寄存器


    CS(Code Segment):代码段寄存器——对应段存放指令代码;
    DS(Code Segment):数据段寄存器——对应段存放数据或变量;
    SS(Stack Segment):堆栈段寄存器——对应段存放栈操作的数据;
    ES(Extra Segment):附加段寄存器——对应段存放数据或变量;

三、控制寄存器

    IP(Instruction Pointer):
        指令寄存器——与CS联用,确定下一条指令物理地址;
        计算机通过CS:IP寄存器控制指令序列的执行流程;
        IP是一个专用寄存器,不可直接访问;

四、标志寄存器

    FR(Flag Register):十六位
    00    01    02    03    04    05    06    07    08    09    10    11    12    13    14    15
    CF            PF            AF            ZF    SF     TF    IF    DF    OF

————0:是;1:否;
    CF(进位标志):记录运算时从最高为产生的进/借位;
    PF(奇偶标志):记录运算结果二进制数中‘1’的个数奇偶;
    AF(辅助进位标志):记录运算中低四位是否进/借位;
    ZF(零标志):记录运算结果是否为0;
    SF(符号标志):记录运算结果是否为负;
    TF(陷阱标志):TF=1,使处理器进入单步操作方式(类似于断点,用于程序调试);
    IF(中断允许标志):是否允许程序响应中断;
    DF(方向标志):记录循环中存储器地址是否自减(反之自增);
    OF(溢出标志):表明补码运算结果是否溢出;
————————————

五、地址的形成



    8086/8088使用20位物理地址,使用段地址+逻辑地址两个数来表达的形式;
    段地址(H)>>1+偏移地址(H)=物理地址;

猜你喜欢

转载自blog.csdn.net/qq_39602006/article/details/80528808