微机系统中标志位的探讨_第1页
微机系统中标志位的探讨_第2页
微机系统中标志位的探讨_第3页
微机系统中标志位的探讨_第4页
微机系统中标志位的探讨_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-精选财经经济类资料- -最新财经经济资料-感谢阅读- 1 微机系统中标志位的探讨 摘要:文章详细介绍微机系统中 标志寄存器的定义,总结状态标志的判 别方法和技巧,给出应用实例,从实际 应用的角度出发加强对该知识的深入探 讨,在教学和实践方面有很好的研究意 义。 中国论文网 /8/view-12779637.htm 关键词:微机系统;标志位;溢 出 掌握微机系统知识的一个很重要 的能力就是能编制各种具有实际应用价 值的程序,而在编制程序时大部分都要 利用微机系统中的标志位来实现。准确 地掌握标志位状态的判别方法尤为重要。 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 2 16 位微机中含有 1 个 16 位的标 志寄存器 FLAGS,用于保存处理器状 态字 PSW,反映指令执行结果或控制 指令执行形式。共定义了 9 个标志位, 其中,6 个标志反映前一次涉及 ALU 操作结果的状态标志,在程序设计时需 要利用状态标志的状态;3 个标志位用 于控制处理器执行指令的方式。 文中就 6 个状态标志进行介绍并 总结判别方法,最后引入具有实际应用 的例子加以深入探讨。 1 状态标志位及应用 6 个状态标志分别为: CF,ZF,SF,PF ,OF , AF。主要用来 记录程序运行结果的状态信息,大部分 指令的执行都将相应地设置它,在程序 设计时需要利用这些标志的状态来实现 程序的编制。 1.1 零标志及应用 零标志 Zero Flag,记为 ZF;当 运算结果为 0 时 ZF=1,否则 ZF=0。可 以通过标志传送指令 SAHF 和 POPF 进 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 3 行设置;执行算术运算指令、位操作类 指令等都会影响零标志,通常和条件转 移指令 JZ 和 JNZ 一起来实现程序功能。 应用实例:编程实现将 BUF 中 的 10 个数据中的 0 抹掉并更新长度, BUF 中的第 1 个元素为缓冲区长度。 DATA SEGMENT BUF DB 0AH,1,0,3,0,2,5,8,9,0,7 COUNT DB? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS ,AX LEA SI.BUF MOV BL,ST XOR BH,BH MOV COUNT,0 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 4 INC SI AGAIN:MOV AL,ST CMP AL ,0 JZ CHULI INC SI CMP SI.10 JA QUIT JMP AGAIN CHULI:INC COUNT PUSH SI PUSH BX SUB BX,SI MOV CL,BL L:MOV AH,SI+1 MOV SI,AH INC SI LOOP L POP BX POP SI JMP AGAIN QUIT :SUB BL,COUNT MOV SI,0 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 5 MOV BUFSI ,BL MOV AH,4CH INT 21H CODE ENDS END START 1.2 符号标志及应用 符号标志 Sign Flag,记为 SF; 当运算结果最高位为 1,则 SF=1,否则 SF=0。在微机系统中数据分为无符号数 和有符号数,无符号数的全部数位都是 数据位,而有符号数的数位由 2 部分构 成,其中数据的最高数位代表符号,剩 下的数位为数值位。最高位为 1 代表数 据是负数,最高位为 0 代表数据是正数。 所以,最高位就是符号标志的状态。执 行算术运算指令、位操作类指令等都会 影响符号标志,通常和条件转移指 5-JS 和 JNS 一起来实现程序功能。 应用实例:编程实现求 x y 的绝 对值,结果存入 RESULT。 DATA SEGMENT -精选财经经济类资料- -最新财经经济资料-感谢阅读- 6 X DW 1234H Y DW 4567H RESULT DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS ,AX MOV AX,X SUB AX,Y JNS NONNEG NEG AX NONNEG:MOV RESULT,AX MOV AH,4CH INT 21H CODE ENDS END START 1.3 奇偶标志及应用 奇偶标志 Parity Flag,记为 PF; 当运算结果最低字节中“1”的个数为零 或偶数时,PF=1,否则 PF=0。在应用 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 7 时一定要注意该标志只对数据的最低字 节也就是最低 8 位有效,即使数据为 16 位或者是 32 位。 应用实例:编程实现给字符加上 奇校验位,设字符的 ASCII 码在 AL 寄 存器中。 CODE SEGMENT ASSUME CS:CODE START:AND AL,7FH JNP NEXT 0R AL,80H NEXT :MOV AH,4CH INT 21H CODE ENDS END START 在字符 ASCII 码中为“1”的个数 已为奇数时则令其最高位为“0”;否则 令最高位为“1”。 1.4 辅助进位 标志及应用 辅助进位标志 Auxiliary Carry Flag,记为 AF;运算时 D3 位即低半字 节有进位或借位时,AF=1,否则 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 8 AF=0。微机系统中的对十进制数据编 码时有压缩 BCD 码和非压缩 BCD 码 2 种,用这 2 种编码表示的十进制数据在 参与运算中,由于数的位权差异导致不 能正确表示运算结果,此时应根据题目 要求对数据结果进行调整,即使用十进 制算术运算调整指令。一般用户不必关 心这个标志,主要由处理器内部使用。 1.5 进位标志及应用 进位标志 Carry Flag,记为 CF; 当运算结果的最高位在执行加法操作时 有进位,或执行减法操作时有借位,进 位标志置 1,即 CF=1,否则 CF=0。进 位标志表示无符号数运算结果是否超出 范围,运算结果仍然正确。执行算术运 算指令、位操作指令等都会对进位标志 有影响,一般和条件转移指令 JC 或 JNC 一起实现程序具体功能。 应用实例:编程实现统计 DX 中 1 的个数并存入 CUNT 中。 DATA SEGMENT COUNT DB 0 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 9 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS ,AX XOR AL,AL AGAIN:TEST DX,OFFFFH JE NEXT SHL DX.1 JNC AGAIN INC AL JMP AGAIN NEXT :MOV COUNT,AL MOV AH,4CH INT 211t CODE ENDS END START 1.6 溢出标志及应用 溢出标志 Overflow Flag,记为 OF;若运算的结果有溢出,则 OF=1; 否则 OF=0。溢出标志是对有符号数运 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 10 算结果是否超出范围而设置的一个标志 位,8 位有符号数能表达的整数范围是 +127-128 , 16 位有符号数能表达的范 围是+32767-32768 ,如果运算结果超 出这个范围,就产生了溢出,而有溢出, 说明有符号数的运算结果不正确。 判别方法不容易掌握,因为必须 将参与运算的数据和结果转换成真值, 然后判断是否有溢出,工作量大,而且 容易出错。结合溢出标志的特点,总结 4 种简单且利于掌握的判别方法。 “规则判别法 ”。当 2 个相同符号 数相加或不同符号数相减,而运算结果 的符号与原数据符号相反时,运算结果 错误,产生溢出;其他情况下,则不产 生溢出。 “双高位异或法 ”。加法操作时将 参与运算的数据的最高位进位状态和次 高位的进位状态异或作为溢出标志的状 态;减法操作时将参与运算的数据的最 高位借位状态和次高位的借位状态异或 作为溢出标志的状态。 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 11 “符号位判断法 ”。循环移位指令 对溢出标志也有影响,如果进行一位移 动,则按照操作数的符号位是否改变, 相应设置溢出标志 OF:如果移位前的 操作数最高位与移位后操作数的最高位 不同,则 OF=1,否则 OF=0。当移位次 数大于 1 时,OF 不确定。 “扩展位判别法 ”。乘法指令对溢 出标志有影响,执行 MUL 指令时若乘 积的高一半为 0,则 OF=0;否则 OF=1;执行 IMUL 指令若乘积的高一 半是低一半的符号扩展,则 OF=0;否 则均为 OF=1。 具体判别有无溢出时,优先使用 “规则判别法 ”,若不能判别时,再根据 具体情况来选择合适的方法。 应用实例:84H+A8H 产生溢出 标志吗? 分析:84H 写成二进制数为 10000100,是负数,A8H 写成二进制数 为 10101000,是负数,加法运算结果为 00101100,即为 2CH,正数。2 个负数 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 12 相加,可以通过“ 规则判别法 ”判断,即 负数加负数结果为正数,结果错误,即 产生溢出。 题目为加法运算,也可以采用 “双高位异或法 ”判断,数据最高位在加 法时产生进位,次高位在加法时没有产 生进位,将这 2 个进位状态异或后为 1,即 OF=1,产生溢出。 可对其验证,84H 的真值为- 124,A8H 的真值为-88,相加后为- 212,超出 8 位有符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论