微机原理第三章2分析.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理第三章2分析

2. SAHF(Store AH into flags) 格式:SAHF ;(PSW的低字节)←(AH) 功能:(AH)送标志寄存器低八位。 3. PUSH F(Push flags onto stack) 格式:PUSH F ;(SP)←(SP)-2 ((SP)+1,(SP))←(PSW) 功能 : 标志进栈。 4. POP F(Pop flags off stack) 格式:POP F ;(PSW)←((SP)+1,(SP)) (SP)←(SP)+2 功能:标志出栈。 注意: (1) 标志位的影响 LAHF、PUSHF不影响标志位, SAHF、POPF由装入的值确定标志位的值, 即影响标 志位。 (2) PUSH F、POPF用于保护调用过程前(PSW),过程返回 后恢复。 例: … PUSH AX PUSH CX PUSH F CALL TRANS POPF POP CX POP AX … 调用子程序时需保留内容: ① 调用子程序:将下条指令地址即IP值保留下来(CPU自动完成)(8088中码段寄存器CS和指令指针IP), 才能保证子程序执行完后准确返回主程序继续执行。 执行子程序时,通常用到内部寄存器,执行结果会影响 标志位,必须在调用子程序之前将现状保护起来。 ③ 子程序嵌套或子程序递归调用 保留许多信息,而且保证正确返回(且后进先出)。 后保留先取出原则(即LIFO-LAST In First out)。 注意: 1、SP——堆栈指针, 始终指向栈顶。 SP初值用MOV SP,i m来设定。 2、SP按字操作。 压栈 先SP=SP—2,再压入数据; 出栈 先弹出数据,再SP=SP+2 。 下边详细说明一下堆栈用途: 存放CPU寄存器或存储器中暂时不使用的数据, 使用数据时将其弹出: PUSH AX ; 将(AX)入栈 (AX) (AX) 使用数据时将其弹出: POP BX 调用子程序(或过程)或发生中断时要保护断点的地址, 子程序或中断返回时恢复断点。 子程序嵌套 断点地址压入和弹出情况 (2) 堆栈操作指令 (堆栈操作指令有两条): ? 入栈指令 格式: PUSH src ;1、 (SP) ? (SP)-2 ;2、 ((SP)+1,(SP)) ? (src) 把一个字从源操作数?由SP指向堆栈顶部。 操作如:PUSH AX ? 出栈指令 格式: POP dest ;1、(dest) ? ((SP)+1,(SP)) ;2、 (SP) ? (SP)+2 执行结果,把现行SP所指向堆栈顶部的一个字 ? 指定的目的操作数,同时进行修改堆栈指针的操作。 操作如: POP BX 应用时注意: 堆栈操作都按字操作。 PUSH , POP 指令的操作数可能有三种: 寄存器(通用寄存器,地址指针,变址寄存器), 段寄存器(CS除外,PUSH CS 合法,POP CS 非法), 存储器。 执行PUSH 指令, (SP)-2 ? (SP), 低字节放在低地址,高字节放在高地址。 随着推入堆栈内容增加,堆栈就扩展,SP的值减少, 但SP

文档评论(0)

wbjsn + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档