- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 3 章 教学重点 第3章是本课程的一个重要的关键内容,是用好微处理器以及汇编程序设计的基础 基础是熟悉寄存器组 难点是各种寻址方式 重点是掌握8086常用汇编指令系统的功能及应用 什么是指令系统 计算机的指令系统就是指该计算机能够执行的全部操作的指令的集合 每种计算机都有支持它的指令集合 16位8086指令系统是Intel 80x86系列微处理器指令系统的基础,是现代各种新型微处理器的基础 3.1 8086的寄存器组 对使用者(程序员)来说,8086内部结构执行部件(EU)接口部件的(BIU)最重要的应用是对其寄存器组的理解与应用,指令的本质基本上是对这些寄存器进行如何操作 8个通用寄存器 1个指令指针寄存器 1个标志寄存器 4个段寄存器 8086内部编程结构 3.1.1 8086的通用寄存器 8086的16位通用寄存器是: AX BX CX DX SI DI BP SP 其中前4个数据寄存器都还可以分成高8位和低8位两个独立的寄存器 8086的8位通用寄存器是: AH BH CH DH AL BL CL DL 对其中某8位的操作,并不影响另外对应8位的数据 数据寄存器 数据寄存器作用:存放计算的结果和操作数,也可以存放地址 每个寄存器通常有它们各自的专们用途 AX--累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等; BX--基址寄存器,常用做存放存储器地址; CX--计数器,作为循环和串操作等指令中的隐含计数器; DX--数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。 变址寄存器 变址寄存器常用于存储器寻址时提供偏移量地址 SI是源变址寄存器 DI是目的变址寄存器 串操作类指令中,SI和DI具有特别的功能 指针寄存器 指针寄存器用于寻址内存堆栈内的数据 SP为堆栈指针寄存器,指示栈顶的偏移地址 SP不能再用于其他目的,具有专用目的 BP为基址指针寄存器,表示数据在堆栈段中的基地址 SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址 堆栈(Stack) 堆栈是主存储器中一个特殊的数据存储区域 它采用先进后出FILO(First In Last Out)或后进先出LIFO(Last In First Out)的原则进行存取操作,而不是随机存取操作方式。 堆栈通常由处理器自动维持。在8086中,由堆栈段寄存器SS和堆栈指针寄存器SP共同指示堆栈数据区域 指令指针IP 指令指针寄存器IP,指示代码段中指令的偏移地址 它与代码段寄存器CS联用,确定下一条指令的物理地址 计算机通过CS : IP寄存器来控制指令序列的执行流程 IP寄存器是一个专用寄存器 3.1.2 标志寄存器 标志(Flag)用于反映指令执行结果或控制指令执行形式 8086处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器) 标志的分类 状态标志--用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它,有6位。 CF ZF SF PF OF AF 控制标志--可由程序根据需要用指令设置,用于控制处理器执行指令的方式,有3位。 DF IF TF 进位标志CF(Carry Flag) 当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。 3AH + 7CH=B6H,没有进位:CF = 0 AAH + 7CH=(1)26H,有进位:CF = 1 零标志ZF(Zero Flag) 若运算结果A的内容为0,则ZF = 1; 否则ZF = 0 符号标志SF(Sign Flag) 运算结果最高位为1,则SF = 1;否则SF = 0 奇偶标志PF(Parity Flag) 当运算结果最低字节中“1”的个数为零或偶数时,PF = 1;否则PF = 0 溢出标志OF(Overflow Flag) 若算术运算的结果有溢出, 则OF=1;否则 OF=0 溢出标志OF(Overflow Flag) 负数的三种表示方法 (1)原码:正数的符号位用0表示,负数的符号位用1表示: 例 0100 表示+4, 1100 表示- 4 8位表达的整数范围是:+127~-127,有+0,-0两种 16位表达的范围是:+32767~-32767,有+0,-0 (2)反码:正数的反码与原码相同,负数的反码就是他的正数(连符号位)按位取反得到: 例: 0100 表示+4, 1100 表示- 3 (+127)( -127) (-31)(-0) (+0) 8位带符号的反码所能表示数的范围: +127~-12
文档评论(0)