第三章 寻址方式及指令集.ppt

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

循环右移 ROR OPR, CNT CF 操作:ROR指令的操作正好和ROL指令相反,每右移一位,将操作数最末位的状态移出,并传递到CF标志和操作数的最高位。 动画演示 例:(AX)= 0012H,(BX)= 0034H,把它们装配成(AX)= 1234H MOV CL, 8 ROL AX, CL ADD AX, BX 举例 带进位循环左移 RCL OPR, CNT CF 操作:每左移一位,将操作数最高位的状态移入CF标志位,而CF标志原先的状态移入操作数最末位。 动画演示 带进位循环右移 RCR OPR, CNT CF 操作:RCR指令完成的操作和RCL指令正好相反。每右移一位,将操作数最末位的状态移入CF标志,而CF标志原先的状态移入操作数最高位。 动画演示 注意: * OPR可用除立即数以外的任何寻址方式 * CNT=1,SHL OPR, 1 CNT1,MOV CL, CNT SHL OPR, CL ; 以SHL为例 * 条件标志位: CF = 移入的数值 1 CNT=1时,最高有效位的值发生变化 0 CNT=1时,最高有效位的值不变 移位指令: SF、ZF、PF 根据移位结果设置,AF无定义 循环移位指令: 不影响 SF、ZF、PF、AF OF = 【例】 若某字数据X已存放于寄存器AX中,现要求将该数乘以10。   在80486指令系统中有乘法指令,但从指令手册中可知,执行乘法指令所花的时间为10~11个时钟周期。而用移位指令实现乘2操作所需要的时间为1~3个时钟周期,从而可提高计算速度3~10倍。   我们知道,X×10=X×2+X×8。某数乘2即左移一位,某数乘8即左移三位。所以,X×10的程序如下: SAL AX, 1 ;X×2 MOV BX, AX ;X×2的乘积存入BX SAL AX, 1 ; X×4 SAL AX, 1 ; X×8 ADD AX, BX ; X×8+X×2=X×10   执行上述程序段所需要的时间为五个时钟周期,若改用乘法指令实现乘10操作,所需时间为11个时钟周期。 课堂练习: X,Y,Z,R,W为存放16位带符号数的单元地址,写出实现Z←((W-X)/5*Y)*2的指令序列。 方法一: MOV AX,W SUB AX,X CWD MOV BX,5 IDIV BX IMUL Y MOV BX,2 IMUL BX MOV Z,AX MOV Z+2,DX 方法二: MOV AX,W SUB AX,X CWD MOV BX,5 IDIV BX IMUL Y SHL AX,1 RCL DX,1 MOV Z,AX MOV Z+2,DX ? 汇编程序基本格式 ? 汇编语言程序的建立及汇编过程 ? 伪操作 第4章 汇编语言程序格式 MOV AL, X MOV BL, Y ADD AL, BL MOV Z, AL X DB 32H Y DB 25H Z DB ? DATA SEGMENT DATA ENDS CODE SEGMENT CODE ENDS END START ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV AH, 4CH INT 21H 核心程序段 数据定义 返回DOS状态 对DS进行初始化 说明各段所在位置 定义代码段 结束 定义数据段 第一个汇编语言源程序(实现Z←X+Y) 有关源程序基本结构的说明: (1)一个汇编语言源程序一般具有代码段、数据段、堆栈段和附加段。在程序中,只有代码段是必需的,其他段都为可选段。 (2)ASSUME伪指令只说明各段寄存器和逻辑段的关系,并没有为段寄存器赋值。因此在源程序中,除代码段CS外,其他定义的段寄存器由用户在代码段起始处用指令进行段基址的装入。 ? ?(3)每个源程序在代码段中都必须含有返回DOS操作系统的指令语句,以保证程序执行结束后能自动返回DOS状态。例如: MOV ? AH, 4CH ; 系统功能调用 ??????? INT ? 21H ; 返回操作系统 汇编语言程序的

文档评论(0)

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

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

1亿VIP精品文档

相关文档