(周五看)指令2MOV,PUSH,POP,IN,OUT.pptVIP

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

第五讲 指令系统 符号扩展指令 CBW 字节转换为字指令 CWD 字转换为双字指令 CBW指令的用法说明 格式: CBW 执行的操作: AL中的符号位(最高位D7)扩展到8位AH中。 若AL中的D7=0,则AH=00H。 若AL中的D7=1,则AH=FFH。 CBW指令执行完毕后,不影响标志位。 CWD指令的用法说明 格式: CWD 执行的操作: AX中的符号位(最高位D15)扩展到16位的DX中去。 若AX中的D15=0,则DX=0000H。 若AX中的D15=1,则DX=FFFFH。 CWD 指令执行结束后也不影响标志位。 * 微型计算机系统原理及应用 主讲人: 何 群 燕山大学电气工程学院 二○○九年九月 Institute of Electrical Engineering 3.4 8086的通用指令 可以分为以下六类: 数据传送指令 二进制算术指令 十进制算术指令 逻辑指令 移位和循环移位指令 控制传送指令 串指令 标志控制指令 段寄存器指令 杂项指令 3.4.1 数据传送类指令 1.基本传送指令(MOV) 指令格式:MOV DOPD,SOPD; 源操作数和目的操作数可用上述6种寻址方式的任何一种。 操作:将SOPD内容赋给DOPD。 所有通用传送指令都不影响标志位。 注意:不能用MOV指令实现以下传送 存储器操作数之间不能直接传送 MOV [1000H] , [DI] 错 应改为 MOV AX , [DI] MOV [1000H], AX 立即数不能直接送段寄存器 MOV DS,2000H 错 应改为 MOV AX, 2000H MOV DS , AX 段寄存器之间不能直接传送 MOV ES , DS ; 错 应改为 MOV AX , DS MOV ES , AX CS只可以作为源操作数 例:MOV CS,AX ;错 MOV AX,CS ;对 源操作数和目的操作数的宽度必须相同 MOV指令举例-1 CPU内部寄存器之间数据传送 MOV AL, BL MOV DL, CH MOV AX, DX MOV CX, BX 立即数传至CPU内部的通用寄存器组 MOV CL, 4 MOV AX, 0FFA0H MOV SI, 057BH MOV指令举例-2 CPU内部寄存器与存储器之间的数据传送 MOV BYTE PTR MEM, 20H MOV WORD PTR [BX], 0A234H MOV AL, BUFFER MOV AX, [SI] MOV [DI], CX MOV SI, BLOCK[BP] MOV DS, DATA[SI+BX] MOV DEST[BP+DI], ES 2.交换指令(XCHG) 格式:XCHG dopd , sopd;(dopd) ?(sopd) 可以实现:寄存器之间 寄存器和存储器之间 注意: 存储器之间不能直接交换; 段寄存器不能作为操作数; 允许字或字节操作。 3.堆栈指令(PUSH 、POP) 堆栈的概念 数据的存储按后进先出(Last In First Out——LIFO)原则组织的一段内存区域。 入栈指令(PUSH): 格式:PUSH src 操作过程分两步完成: (SP) ? (SP) - 2 ((SP)+1,(SP)) ? (src) 功能:把一个字压入由SP指向的堆栈区。 如:PUSH AX 6000H 2000H SS SP 6 0 0 0 0 2 0 0 0 + 6 2 0 0 0 ... AOH 50H ... 62000H 50H A0H AX 堆 栈 段 若(AX)=50A0H SP=2000H SS=6000H 则执行 PUSH AX push 出栈指令(POP) 格式:POP dst ; 操作: (dst) ? ((SP)+1,(SP)) (SP) ? (SP)+2 功能:把SP所指向的堆栈顶部的一个字 送入目的地址,同时进行修改堆栈指针。

文档评论(0)

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

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

1亿VIP精品文档

相关文档