文档详情

03.微机接口_第三章.ppt

发布:2016-07-28约8.56千字共80页下载文档
文本预览下载声明
说明: ?堆栈中数据按“后进先出”的结构方式进行处理,即新入栈的依次堆放在原来数据之上,存放信息的最后一个单元叫做栈顶, SP—堆栈指针,指示栈顶的地址。 ?堆栈操作有两种:压入(PUSH)和弹出(POP),而SP始终指向堆栈栈顶的新位置。 2. 堆栈编址结构的两种形式 (1) 向上生成 该结构中,每压入一个数据,堆栈指示器SP按增量修改,每弹出一个数据,SP按减量修改。 (2) 向下生成(8086) 该结构中,每压入一个数据,SP按减量修改,每弹出一个数据,SP按增量修改。 堆栈操作示意图(向下生成) M-3 M-2 M-1 M X SP (a) M-3 M-2 M-1 M X SP (b) A M-3 M-2 M-1 M X SP (c) A B SP A SP B SP C 当前栈顶地址为M,存内容X 信息B进栈:SP?SP-1,SP指定的地址?B 信息A进栈分两步操作: SP?SP-1,SP指定的地址单元?A 堆栈操作示意图(向下生成) M M-3 M-2 M-1 X SP (d) A B C M-3 M-2 M-1 M X SP (f) A B C M-3 M-2 M-1 M X SP (e) A C B SP D SP C SP B 信息C进栈 信息C出栈分两步操作:指定的目的地?C,SP?SP+1 信息B出栈:指定目的地?B, SP?SP+1 堆栈操作示意图(向下生成) M M-3 M-2 M-1 X SP (g) A D C M-3 M-2 M-1 M X SP (i) A D C M-3 M-2 M-1 M X SP (h) A C D SP D SP A 信息D进栈: SP?SP-1,SP指定的地址?D 信息D出栈 信息A出栈,栈顶地址仍为M 由上图中可以看出,出栈操作并不会从堆栈中去掉信息,也不擦除它们,只是因SP的自动修改而改变了堆栈的栈顶。 堆栈主要用于中断控制,子程序调用以及数据暂时存储。 (2) 控制寄存器 ? IP (Instruction Pointer) 指令指针与PC类似,但有区别: PC是指向下一条即将要执行的指令,而IP (即地址)一般是指向下一次要取出的指令。 *复位后IP=0 例 b. 在8086中IP要与CS代码段寄存器的内容一起,才能得到指令的实际地址。 TF SF ZF AF PF OF DF IF CF 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 标志寄存器格式 a. 6个状态标志位,即CF、PF、AF、ZF、SF和 OF。 ? 进位标志CF(Carry Flag): ? FLAG(标志寄存器)为16bit,其中9位有定义 当结果的最高位(字节-D7,字-D15)产生进位(加法运算)或借位(减法运算)时,CF=1,否则CF=0,移位和循环指令也影响CF。 ? 奇偶标志位PF(Parity Flag): 若结果中“1” 的个数为偶数,则PF=1,否则PF=0。 ? 辅助进位标志AF(Auxitiary Carry Flag): 在低半字节向高半字节有进位或借位时AF=1,否则AF=0。 ? 零标志ZF(Zero Flag): 当运算结果为0时ZF=1,否则ZF=0。 ? 符号标志SF(Sign Flag): SF等于最高位,对于带符号数,最高位为符号位,SF=1运算结果为负,SF=0为正。 溢出标志OF(Overflow Flag): 带符号数运算结果超出其表达范围时(字节数:-128~+127,字类型数:-32768~+32767), OF=1,否则 OF=0。 用表达式给出 (字节运算) (字运算) 例:① 2345H+3219H ② 6400H+7A3CH CF=0 PF=0 AF=0 ZF=0 SF=0 OF=0 CF=0 PF=1 AF=0 ZF=0 SF=1 OF=1 b. 3个控制标志位 ? 追踪标志TF(Trace Flag): TF=1,处理器进入单步方式,以便调试,CPU每执行一条指令自动产生一个内部中断以利于检查指令的执行情况;TF=0为连续工作方式。 中断允许
显示全部
相似文档