考点1:功能结构类型、寄存器结构的类型
8088/86寄存器的总结
有8个8位、8个16位通用寄存器
有6个状态标志和3个控制标志
将1MB存储空间分段管理,有4个段寄存器【CPU中】,对应程序中4种逻辑段【段首地址】
默认【DS】的情况允许改变,需要使用段超越前缀指令,明确指定数据所在的逻辑段
MOV AX,ES:[BX] 加上了ES超越前缀改变了数据段的位置,访问的是附加段的内容
指针寄存器
指针寄存器用于寻址内存堆栈内的数据
SP为堆栈指针寄存器(Stack Pointer) ,指示堆栈段栈顶的位置(偏移地址)
BP为基址指针寄存器(Base Pointer) ,表示数据在堆栈段中的基地址
SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址
MOV AX, [BP] 默认使用SS
push, sp-2
pop,sp+2
堆栈(Stack)是主存中一个特殊的区域,采用“先进后出”或“后进先出”存取操作方式、而不是随机存取方式。
用8088/8086形成的微机系统中,堆栈区域被称为堆栈段
比如:定义100个字节的堆栈区,用于子程序或中断调用保护信息。
STAK SEGMENT [PARA STACK 'STACK' ] #堆栈区域
DB 100DUP(?)
STAK ENDS #定义堆栈结束
CODE SEGMENT #代码段区域
ASSUME CS:CODE,SS:STAK #通过段名复制给SS
。。。。
CALL /INT
# PARA :段地址从***OH开始 一个小节=16个字节 如果不写CPU默认使用小节
# STACK :指定该段运行时为堆栈段
# 'STACK':连接时用于组成该段的名字
指令指针寄存器
IP (Instruction Pointer)为指令指针寄存器,指示主存储器指令的位置。随着指令的执行,IP将自动修改以指示下一条指令所在的存储单元地址,
CS:IP 确定逻辑地址和物理地址
标志寄存器
标志(Flag)用于反映指令执行结果或控制指令执行形式
8088处理器的各种标志形成了一个
16位的标志寄存器(FLAGS);
9位有效,6位状态位,3位控制位
程序状态字PSW寄存器
程序运行需要利用标志的状态
状态标志:用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置:CF ZF SF PF OF AF控制标志:可由程序根据需要用指令设置,用于控制处理器执行指令的方式DF IF TF
溢出和进位的区别
·溢出标志OF和进位标志CF是两个意义不同的标志·
进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确
溢出标志表示有符号数运算結果是否超出范围,运算结果已经不正确
例1: ЗAH+7CH=OB6H
无符号数运算: 0~255
58+124= 182范围内,CF=0
有符号数运算: -128~+127
58+124=182范围外,OF=1
例2: 8位运算: OAAH+7CH=
无符号数运算: 0~255
170+124=294范围外,CF=1
有符号数运算: -128~+127
-86+124=28,范围内,OF=0
溢出和进位的应用场合
利用哪个标志,由程序员来决定。
如果将参加运算的操作数认为是无符号数,就应该关心进位;
认为是有符号数,则要注意是否溢出。