- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六个章节知识
第六章 分支与循环程序设计 本章提要 标志位的作用及算术指令对标志位的影响。 各种跳转指令、JCXZ和LOOP指令。 逻辑表达式的写法。 各种分支程序结构的实现。 各种循环程序结构的实现。 6.1程序状态标志寄存器PSW的变化规则 例6.1 设AX=3BFFH,试确定下列指令执行后,CF标志位的值。 ADD AH, AL ADD AH, 1 ADD AL, 1 INC AL ADD AH, AL ADC AH, 1 SUB AH, AL SUB AL, AH (8) DEC AH 6.1.2 SF-符号标志位 【功能】SF用于记载两个数相加或相减结果的符号位,即复制结果的最高位。如果两个数相加或相减,最高位为0,则SF=0,否则,SF=1。 【影响的指令】影响的指令只有加法类和减法类指令,即ADD、ADC、INC、SUB、SBB和DEC。 【作用】SF标志位反映的运算结果的符号。对于加法运算,如果两个正数相加,其SF=1,说明和为负数,此时加法产生溢出,如果两个负数相加,其SF=0,说明和为正数,此时加法产生溢出。对于减法运算其意义更实用,如果SF=0,说明被减数比减数大,如果SF=1,说明被减数比减数小。 【说明】8088中参与运算的数据长度是16位或8位,因此最高位是第15位或第7位。由于加法指令和减法指令既用于无符号数和带符号数的,其SF标志位只是说明运算结果的最高位是0还是1的状态,具体使用在于具体的运算要求。 例6.1 设AX=3BFFH,试确定下列指令执行后,SF标志位的值。 ADD AH, AL ADD AH, 1 ADD AL, 1 INC AL ADD AH, AL ADC AH, 1 SUB AH, AL SUB AL, AH (8) DEC AH 6.1.3 ZF-零标志位 【功能】ZF用于记载两个数相加或相减结果的是否为0,即复制结果的最高位。如果两个数相加或相减,其结果为0,则ZF=1,否则,ZF=0。 【影响的指令】影响的指令只有加法类和减法类指令,即ADD、ADC、INC、SUB、SBB和DEC。 【作用】ZF标志位反映的运算结果的值。对于减法运算其意义更实用,如果ZF=1,说明两个数一样大,如果ZF=0,说明两个数不一样大。 例6.3 设AX=3BFFH,试确定下列指令执行后,ZF标志位的值。 ADD AH, AL ADD AH, 1 ADD AL, 1 INC AL ADD AH, AL ADC AH, 1 SUB AH, AL SUB AL, AH (8) DEC AH 6.1.4 OF-溢出标志位 【功能】OF用于记载两个带符号数相加或相减结果的是否超出表示范围,如果结果超出,则OF=1,否则,OF=0。 【影响的指令】影响的指令只有加法类和减法类指令,即ADD、ADC、INC、SUB、SBB和DEC。 【作用】OF标志位反映的运算结果是否超出表示范围。 【说明】不考虑参与运算的操作数是无符号数还是带符号数,OF都当作带符号数对待。 从表中可简单的归纳为: 加法:“正数+正数=负数”和“负数+负数=正数”,则溢出,即OF=1。 减法:“正数-负数=负数”和“负数-正数=正数”,则溢出,即OF=1。 【提示】当做加减法类指令时,其结果超出表示范围,则OF=1,但程序不会中断,如果是除法指令,除数是16位或8位,则商和余数为16位或8位,如果商或余数超出了这个范围,不存在OF的设置问题,而是程序中断。 6.1.5 算术指令对标志位的影响 加法类指令(ADD、ADC、INC)和减法类指令(SUB、SBB、DEC)对4个标志位均有影响。 乘法类指令(MUL、IMUL)对ZF和SF无定义。 除法类指令(DIV、IDIV)对4个标志位无定义。 6.2 CMP-比较指令 【指令格式】 CMP 目的操作数,源操作数 【功能】 目的操作数-源操作数 把目的操作数与源操作数相减。该指令不改变目的操作数和源操作数的值。 【操作数形式】 双操作数指令。 【和C语言的对应形式】 CMP指令和下节的跳转指令结合使用,实现C语言的等于(==)、不等于(!=)、大于()、大于等于(=)、小于()、小于等于(=)的关系运算。 【注意事项】 作为双操作数指令,CMP指令在语法规定上完全与SUB指令是一样,其功能也和SUB基本一样,只是差既不影响被减数,也不影响减数,仅影响PSW的各个标志位。该命令使用的目的就是确定两个操作数之间的关系。 6.3 跳转类指令 跳转类指令可使程序不用顺序逐条执行指令,可使程序根据运行条件,按照你的设计逻辑,转到相应指令执行,实现非顺序的逐条执行相关指令。 跳转指令
您可能关注的文档
最近下载
- 辽宁省社区工作者招聘笔试真题.pdf VIP
- 2_H3G-TA硬件安装调试手册(CM-02N)B2版(对外公开)华塑电池巡检仪.pdf VIP
- 超实用高考英语复习:阅读理解话题分类专练 文娱与体(含答案).docx VIP
- 民航法律法规教案【参考】.doc VIP
- 实验室生物安全管理手册(2025版).pdf VIP
- 名著导读(朝花夕拾).ppt VIP
- 民航法律法规与实务(全套课件).ppt
- 服装包装、配送、检验、验收及售后服务方案.docx VIP
- 高中英语人教版选择性必修第一册词汇表单词英译汉默写.docx VIP
- 2025年辽宁省锦州市北镇市观音阁街道招聘社区工作者考前自测高频考点模拟试题含答案解析.docx VIP
文档评论(0)