微机原理-寻址方式指令系统.ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 8086/8088的寻址方式和指令系统 2.2.2指令执行时间 2.3 8086/8088指令系统 2.3.1 数据传送指令 2.3.2 算术运算指令 作业:习题集P6 2-2 2-5 2-8 2-10 2-17 2-25 2-30 2.3 8086/8088指令系统 可分成如下6类: 数据传送指令 算术运算指令 逻辑运算和位移指令 串操作指令 控制转移指令 处理器控制指令 2.3.1 数据传送指令 用来实现:寄←→寄,CPU←→存CPU←→I/O 之间的数据传送。这是一种最基本、最重要的操作。这类指令又可分为如下四种: 通用传送 累加器专用传送 地址传送 标志传送 1.通用传送指令 (1).MOV dst,src; dst←src 传送的是字节还是字取决于指令中涉及的寄存器是8位还是16位。 具体来说可实现: ① MOV mem/reg1 ,mem/reg2 式中两操作数中至少有一个为寄存器 例:MOV CL,DL MOV AX,BX MOV [SI],CX MOV CL,[BX+5] ②MOV reg,data ;立即数送寄存器 ③MOV mem/reg,data ④MOV ac,mem ;存储单元送累加器 ⑤MOV mem,ac ;累加器送存储单元 ⑥MOV segreg,mem/reg;段寄 存/寄 ⑦MOV mem/reg,segreg;存/寄 段寄 对MOV指令小结 可执行: 寄←→寄 ;但CS,IP不能作目的寄存器 寄←→存 ;不能:存←存 寄,存←→段寄 ;不能:段寄←段寄 寄←立即数 ;不能:段寄←立即数 存←立即数 几个不能送的解决办法: MOV AL,mem1 ;通过寄存器AL作桥梁 MOV mem2,AL ;用来解决存←存 MOV AX,DS ;通过AX解决: MOV ES,AX ;段寄←段寄 MOV AX,data ;通过AX解决: MOV DS,AX ;段寄←立即数 (2).堆栈操作指令 堆栈规定设置在堆栈段SS内,堆栈指针SP始终指向堆栈的顶部,SP的初值规定了所用堆栈区的大小。 ① 压栈指令 PUSH src 例:PUSH AX ;将AX内容压栈 执行操作:(SP)-1←高字节AH (SP)-2←低字节AL (SP)←(SP)-2 注意进栈方向是高地址向低地址发展。 POP指令的格式同PUSH指令,堆栈指令使用时应注意两点: ①堆栈操作总是按字进行 ②不能从栈顶弹出一个字给CS (3).交换指令XCHG 2. 累加器专用传送指令 所谓专用只限于用累加器AL或AX来传送信息。 完成的操作:CPU←→I/O端口 (1).输入指令IN 格式:IN ac,port ;port端口号0~255H IN ac,DX ;DX表示的端口范围达64K 例:IN AL,80H ;(AL)←(80H) IN AX,DX ;(AX)←((DX)+1,(DX)) (2).输出指令OUT 格式:OUT port,ac OUT DX,ac (3).换码指令XLAT 执行的操作:(AL)←[(BX)+(AL)] 又叫查表转换指令,它可根据表中代码的序号查出表中对应代码的内容。执行时先将表的首地址(偏移地址)送到BX中,代码序号存于AL中。 例如:内存数据段有一张16进制数的ASCII码表,设首地址为2000H,如图2-10所示,如欲查出表中第11个代码(代码序号从0开始)即 B 的ASCII码,(表中地址设(DS)=4000H) 则可用如下几条指令实现: 例:LEA BX,[SI+10H] (2)LDS reg,mem32;把指定存储器的内 容送入指定的寄存器 传送的是一个32位的地址指针,将存储器的前两个单元的内容(16位偏址)送入指定的寄存器,后两个单元的内容(段地址)送入DS。 例:LDS SI,[0100H] 若指令执行前(DS)=3000H,(30100H)=0200H (30102H)=1000H,则指令执行后(SI)=0200H,(DS)=1000H (3)LES reg,mem32 (3)把标志寄存器推入栈顶指令PUSHF 例如: PUSH AX PUSH CX PUSHF . →这段程序要用到AX,CX以及标 . 志位,可能改变 . POPF ;恢复时,后入栈

文档评论(0)

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

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

1亿VIP精品文档

相关文档