- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机系统中标志位探讨
微机系统中标志位探讨
摘要:文章详细介绍微机系统中标志寄存器的定义,总结状态标志的判别方法和技巧,给出应用实例,从实际应用的角度出发加强对该知识的深入探讨,在教学和实践方面有很好的研究意义。
关键词:微机系统;标志位;溢出
掌握微机系统知识的一个很重要的能力就是能编制各种具有实际应用价值的程序,而在编制程序时大部分都要利用微机系统中的标志位来实现。准确地掌握标志位状态的判别方法尤为重要。
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进行设置;执行算术运算指令、位操作类指令等都会影响零标志,通常和条件转移指令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
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
MOV BUF[SI],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
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。在应用时一定要注意该标志只对数据的最低字节也就是最低8位有效,即使数据为16位或者是32位。
应用实例:编程实现给字符加上奇校验位,设字符的ASCII码在AL寄存器中。
CODE SEGMENT
ASSUME CS:CODE
START:AND AL,7FH
JNP N
文档评论(0)