微机原理和应用第四章第二部分.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理和应用第四章第二部分

堆栈操作指令。 (1) 堆栈 堆栈——按照先进后出原则组织的一段内存区域, 特点: ① 下推式的(规定堆栈设置在堆栈段内)改变SP的内容 ② 随着推入堆栈内容增加,SP的值减小。 ③先进后出工作原则(Last In First Out 简称LIFO);堆栈在内存中的情况: 可以用一条立即数传送指令给SP赋值,确定SP在SS段中的初始位置。 例:设: (SS)=9000H , 堆栈段为64KB MOV SP,0E200H;(SP)=0E200H 则:整个堆栈段的物理地址范围为: 90000H~9FFFFH 栈顶的物理地址为:9E200H 堆栈在内存中的情况如右图所示:;(2) 堆栈操作指令 (堆栈操作指令有两条): 入栈指令 格式:PUSH src ; (SP) ? (SP)-2 ;((SP)+1,(SP)) ? (src) 修改堆栈指针,把一个字的源操作数?压入堆栈顶部 e.g. PUSH AX 出栈指令 格式:POP dest ; (dest) ? ((SP)+1,(SP)) ; (SP) ? (SP)+2 把现行SP所指向堆栈顶部的一个字 ? 指定的目的操作数,同时进行修改堆栈指针的操作。 e.g. POP BX;(3)堆栈用途: 存放CPU寄存器或存储器中暂时不使用的数据,使用数据时将其弹出; 调用子程序, 响应中断时都要用到堆栈。 调用子程序(或过程)或发生中断时要保护断点的地址,子程序或中断返回时恢复断点。; 存放CPU寄存器或存储器中暂时不使用的数据, PUSH AX ; 将(AX)入栈;使用数据时将其弹出: POP BX; 调用子程序(或过程)或发生中断时要保护断点的地址,子程序或中断返回时恢复断点。; 应用时注意: ① 堆栈操作都按字操作。 ② PUSH , POP 指令的操作数可能有三种: 寄存器(通用寄存器,地址指针,变址寄存器), 段寄存器(CS除外,PUSH CS 合法,POP CS 非法), 存储器。 ③ 执行PUSH 指令, (SP)-2 ? (SP),低字节放在低地址,高字节放在高地址。随着推入堆栈内容增加,堆栈就扩展,SP的值减少,但SP总是指向栈顶。 ④ 堆栈工作原则后进先出。 PUSH ,POP指令应该成对使用,保持堆栈原有状态。 ⑤ 堆栈最大容量即为SP的初值与SS???间的差。;堆栈应用举例: ;;应用举例: XCHG BL, DL XCHG AX, SI XCHG COUNT[DI], AX XCHG [BX],[DI] (错) XCHG DS, AX (错);该指令不影响标志位。 格式:XLAT ;(AL)←((BX )+(AL)) 起始地址预存在BX中,AL中存放的是偏移地址。;XLAT指令应用: 若把字符的扫描码转换成ASCII码; 或数字0~9转换成7段数码所需要的相应代码(字形码)等就要用XLAT指令。 例:内存的数据段中有一张十六进制数字的ASCII码表。 首地址为:Hex_table ,欲查出表中第10个元素(‘A’) ;执行指令序列: MOV BX,OFFSET Hex_table MOV AL,0AH XLAT 假设: (DS)=0F000H, Hex_table=0040H (AL)=0AH 执行XLAT以后: (AL)=41H=(0F004AH), 即“A”的ASCII码。;输入输出指令共两条,用于CPU和外设之间的数据传送 1. IN 2. OUT 输入指令用于CPU从外设端口接收数据(读), 输出指令用于CPU向外设端口发送数据(写)。 无论接受还是发送数据,必须通过累加器AX(字)或AL(字节),又称累加器专用传送指令 。 输入、输出指令不影响标志位。; 每个外设要占几个端口:数据口,状态口和控制口。每个端口像存储单元一样要赋予一个地址,称端口地址。;信息交换要通过端口: 在IBMPC机

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档