- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第02章21寄存器结构
这个16位寄存器,按其用途可分为3类:通用寄存器、段寄存器、控制寄存器。 2.1.3.1 通用寄存器 8088有8个通用的16位寄存器 (1)数据寄存器: AX BX CX DX (2)变址寄存器: SI DI (3)指针寄存器: BP SP 4个数据寄存器还可以分成高8位和低8位两个独立的寄存器,这样又形成8个通用的8位寄存器 AX: AH AL BX: BH BL CX: CH CL DX: DH DL (1)数据寄存器 AX称为累加器(Accumulator) 使用频度最高。用于算术、逻辑运算以及与外设传送信息等 BX称为基址寄存器(Base address Register) 常用做存放存储器地址 CX称为计数器(Counter) 作为循环和串操作等指令中的隐含计数器 DX称为数据寄存器(Data register) 常用来存放双字长数据的高16位,或存放外设端口地址 (2)变址寄存器 16位变址寄存器SI和DI 常用于存储器变址寻址方式时提供地址 SI是源地址寄存器(Source Index) DI是目的地址寄存器(Destination Index) 在串操作类指令中,SI、DI还有较特殊的用法 (3)指针寄存器 指针寄存器用于寻址内存堆栈内的数据 SP为堆栈指针寄存器(Stack Pointer),指示堆栈段栈顶的位置(偏移地址) BP为基址指针寄存器(Base Pointer),表示数据在堆栈段中的基地址 SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址 2.1.3.2 指令指针寄存器 IP(Instruction Pointer)为指令指针寄存器,指示主存储器指令的位置 随着指令的执行,IP将自动修改以指示下一条指令所在的存储器位置 IP寄存器是一个专用寄存器 IP寄存器与CS段寄存器联合使用以确定下一条指令的存储单元地址 2.1.3.3 标志寄存器 标志(Flag)用于反映指令执行结果或控制指令执行形式 8088处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器) 标志寄存器的分类: 状态标志--用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它 CF ZF SF PF OF AF 控制标志--可由程序根据需要用指令设置,用于控制处理器执行指令的方式 DF IF TF (1)进位标志CF(Carry Flag) 当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1; 否则CF=0 (2)零标志ZF(Zero Flag) 若运算结果为0,则ZF=1; 否则ZF=0 (3)符号标志SF(Sign Flag) 运算结果最高位为1,则SF=1; 否则SF=0 (4)奇偶标志PF(Parity Flag) 当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=0 (5)溢出标志OF(Overflow Flag) 若算术运算的结果有溢出,则OF=1; 否则 OF=0 什么是溢出 处理器内部以补码表示有符号数 8位表达的整数范围是:+127 ~ -128 16位表达的范围是:+32767 ~ -32768 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确 溢出和进位的区别 溢出标志OF和进位标志CF是两个意义不同的标志 进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确 溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确 (6)辅助进位标志AF(Auxiliary Carry Flag) 3AH+7CH=B6H,D3有进位:AF=1 (7)方向标志DF(Direction Flag) 用于串操作指令中,控制地址的变化方向: 设置DF=0,存储器地址自动增加; 设置DF=1,存储器地址自动减少 (8)中断允许标志IF(Interrupt-enable Flag) 控制可屏蔽中断是否可以被处理器响应: 设置IF=1,则允许中断; 设置IF=0,则禁止中断 (9)陷阱标志TF(Trap Flag) 用于控制处理器进入单步操作方式: 设置TF=0,处理器正常工作; 设置TF=1,处理器单步执行指令 2.1.3.4 段寄存器 存储单元及其存储内容 每个存储单元都有一个编号;被称为存储器地址 每个存储单元存放一个字节的内容 00002H单元存放有一个数据34H 表达为 [00002H]=34H 存储器的分段管理 8088CPU有20条地址线 最大可寻址空间为220=1MB 物理地址范围从00000H~FFFFFH 但是CPU内部寄存器和数据总线都是16位,怎么输出一个20位的地址信息呢? 8088
文档评论(0)