一、寄存器 总共有14个16位寄存器,8个8位寄存器 通用寄存器: 数据寄存器: AH(8位) AL(8位) AX(16位) (AX 和AL 又称累加器) BH(8位) BL(8位) BX(16位) (BX 又称基址寄存器,唯一作为存储器指针使用寄存器) CH(8位) CL(8位) CX(16位) (CX 用于字符串操作,控制循环的次数,CL用于移位) DH(8位) DL(8位) DX(16位) (DX 一般用来做32位的乘除法时存放被除数或者保留余数) 指针寄存器: SP 堆栈指针 (存放栈顶地址) BP 基址指针 (存放堆栈基址偏移) 变址寄存器:主要用于存放某个存储单元地址的偏移,或某组存储单元开始地址的偏移, 即作为存储器(短)指针使用。作为通用寄存器,它们可以保存16位算术逻辑运算中的操 作数和运算结果,有时运算结果就是需要的存储单元地址的偏移. SI 源地址 (源变址寄存器) DI 目的地址 (目的变址寄存器) 控制寄存器: IP 指令指针 FLAG 标志寄存器 ① 进位标志 CF,记录运算时最高有效位产生的进位值。 ② 符号标志 SF,记录运算结果的符号。结果为负时置1,否则置0。 ③ 零标志 ZF,运算结果为0时 ZF 位置1,否则置0。 ④ 溢出标志 OF,在运算过程中,如操作数超出了机器可表示数的范围称为溢出。溢出时 OF 位置1,否则置0。 ⑤ 辅助进位标志 AF,记录运算时第3位(半个字节)产生的进位值。 ⑥ 奇偶标志 PF,用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时置1,否则置0。 段寄存器 CS 代码段 IP DS 数据段 SS 堆栈段 SP BP ES 附加段 二、七种寻址方式: 1、立即寻址方式: 操作数就包含在指令中。作为指令的一部分,跟在操作码后存放在代码段。 这种操作数成为立即数。立即数可以是8位的,也可以是16位的。 例如: 指令: MOV AX,1234H 则: AX = 1234H 2、寄存器寻址方式: 操作数在 CPU 内部的寄存器中,指令指定寄存器号。 对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP 和 BP 等。 对于8位操作数,寄存器可以是 AL 、AH、BL、BH、CL、CH、DL、DH。 这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数 因而可以取得较高的运算数度。 3、直接寻址方式: 操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址) 注:操作数一般存放在数据段 所以操作数的地址由 DS 加上指令中直接给出的16位偏移得到。如果采用 段超越前缀,则操作数...