网站大量收购独家精品文档,联系QQ:2885784924

7指令系统-传送类指令.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  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文档。上传文档
查看更多
80x86的指令系统 传送类指令 传送类指令-传送指令MOV------教材第47页 格式 MOV 目的,源 功能: 将一个操作数在存储器和寄存器之间传送,或者寄存器和寄存器之间传送,或者将立即数传送到寄存器或存储器 不能用于存储器与存储器之间传送 不能用于段寄存器和段寄存器之间传送 不能将立即数传送到段寄存器 交换指令XCHG -------------------教材第47页 格式 XCHG 操作数1,操作数2 功能 交换2个操作数 可以是寄存器和寄存器之间交换 可以是寄存器和存储器之间交换 [例1-39](视频演示) ---------------教材第47页 指令xchg ax, [bx] 实现将AX中的数据和用BX间接寻址所表示的存储单元中的数据进行互换。在DEBUG中跟踪操作,指令执行前,AX=0000,把BX中的0000作为偏移地址,ds:0000单元中执行指令前为20cdh。用T命令执行指令,可以看到,AX=20cdh,而数据段ds:0000单元中为0000h,实现了寄存器和存储单元的数据互换。 (3) 换码指令XLAT ----------------教材第48页 格式 XLAT 功能 将DS:BX指向转换表的首地址,以AL中的内容为序号,以转换表中的字节内容存入到AL中 (3) 换码指令XLAT ----------------教材第48页 换码指令XLAT用于将缓冲区中的一个数据取出并传送给AL寄存器。BX指定这个缓冲区在主存中的开始位置,AL指定数据距离开始位置的位移量。XLAT指令的应用场合比较独特,主要用于将一种代码转换为另一种代码。 [例1-40](视频演示) -------------教材第48页 在DEBUG中输入xlat语句,执行前查看BX、AL、以及 (BX+AL) 单元中的数据,执行后,查看AL 中的数据。在下图中可见,用R命令查看到执行指令前,AL=00h,BX=0000h,源操作数在数据段的0000+00=0000单元中,用D命令查看到ds:0000单元中为0cdh,所以,用T命令执行xlat时,将0cdh传送到隐含的目的操作数AL中,AL=0cdh。 (4) 堆栈指令PUSH / POP ------教材第48页 堆栈是主存中一个特殊的区域,它采用“先进后出”的存取原则。8086/8088中堆栈区域被称为堆栈段,首地址由SS指定,栈顶位置由SP指定。堆栈的基本操作是进栈PUSH和出栈POP指令。 堆栈指令主要用于临时保存数据、寄存器的保护和恢复以及参数传递。 堆栈操作指令-----------------------教材第48页 格式 PUSH 源 POP 目的 功能 PUSH指令将存储器、寄存器中数据压入堆栈 POP指令将堆栈顶的数据弹出到存储器或寄存器中 [例1-41](视频演示) -----------教材第49页 在DEBUG中调试下面指令,执行前请先查看一下相关寄存器和堆栈单元的值,执行后再查看有否发生变化,发生了什么变化。 push ax pop cx (5) 有效地址传送指令LEA ------教材第49页 有效地址传送指令LEA获取存储器操作数的有效地址EA (偏移地址) ,常用于将变量所在的初始地址赋给寄存器。由于要在指令中指明变量符号,而DEBUG中的指令不允许输入符号,要用单元的偏移地址来表示。 取有效地址指令LEA -------------教材第49页 格式 LEA 目的,源单元 功能 将单元偏移地址(有效地址)传送给通用寄存器 [例1-42](视频演示) -----------教材第50页 mov ax, [1234] lea ax, [1234] 在DEBUG中跟踪比较这两条指令的功能差异。从下图中可以看到,两条指令都是对数据段的1234h单元操作,但是MOV指令取的是单元中的值,而LEA指令取的是该单元的地址。 *读书之法,在循序而渐进,熟读而精思。(朱熹) * 读书之法,在循序而渐进,熟读而精思。(朱熹) 除IP MOV 目的,源 段寄存器 DS ES SS 通用寄存器 AX SP BX BP CX SI DX DI 存储器单元 立即数 除CS 除PSW 类型要明确 标志位不影响 XCHG 数1,数2 通用寄存器 AX SP BX BP CX SI DX DI 存储器单元 通用寄存器 AX SP BX BP CX SI DX DI 段寄存器 DS ES SS CS 立即数 标志位不影响 XLAT 存储器单元 BX AL + 先定位BX 再置AL数 不涉及其余寻址方式 标志位不影响 教材第48页 PUSH 源 PUSHF 段寄存器 DS ES SS 通用寄存器 AX SP BX BP CX

文档评论(0)

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

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

1亿VIP精品文档

相关文档