微机原理与接口技术 于天河 高爽 第3章 寻址方式和指令系统新.pptVIP

  • 25
  • 0
  • 约5.39万字
  • 约 296页
  • 2015-12-24 发布于广东
  • 举报

微机原理与接口技术 于天河 高爽 第3章 寻址方式和指令系统新.ppt

3.6 控制转移指令 例3-84 Cl SEGMENT JMP FAR PTR L1 ;段间转移 LL: Cl ENDS C2 SEGMENT… L1: JMP L2 ;段内转移… L2: JMP FAR PTR LL ;间段转移 C2 ENDS … … … … 3.6 控制转移指令 (5)段间间接转移。 指令格式:JMP DWORD PTR OPR 指令参数说明:OPR是存储器寻址类型。根据寻址方式计算出有效地址EA后,把EA指定存储单元的低位字送到地址寄存器IP中,高位字送入寄存器CS中。 指令操作: ① (IP)←(EA); ② (CS)←(EA+2)。 指令功能:按OPR寻址方式计算出的内容间接完成程序段的段间转移。 3.6 控制转移指令 例3-85 JMP DWORD PTR [BX] ;双字存储单元 的低字内容送IP,高字送CS JMP DWORD PTR [SI][BX] ;双字存储 单元的低字内容送IP,高字送CS 3.6 控制转移指令 条件转移指令以状态寄存器当前标志位的内容情况为依据来判断测试条件,每一种条件转移都有它的测试条件,满足测试条件则转移到指令指定的地址去执行程序,否则顺序执行下一条指令。条件转移指令都是段内短转移指令,该组指令采用相对寻址方式,因此转移的范围为-128~+127字节间,即向上最大转128个字节,向下最多转127个字节。条件转移指令不影响标志位。 8086/8088系统的条件转移指令按转移条件分为两组:根据单个标志位设置的条件转移指令和根据组合条件设置的条件转移指令。这两组指令的指令格式、测试条件等信息请参看表3-1。 3.6 控制转移指令 例3-86 汇编程序段如下: MOV AL,X ;将X送入AL中 CMP AL,Y ;X与Y进行比较 JAE Ll ;若X不低于Y则程序跳到L1处执行 MOV AL,Y ;否则,将Y送入AL中 L1: CMP AL,Z ;将(AL)与Z比较 JAE L2 ;若(AL)不低于Z则程序跳到L2处执行 MOV AL,Z ;否则,将Z送入AL中 L2: MOV MAX,AL;三个数中最大的送入MAX中 下面我们来看几个应用条件转移指令的程序示例。 将无符号X、Y、Z三个数中最大的送入MAX中。 3.4 串处理指令 JMP DONE ;且转移 FOUND:DEC DI;字母A所在地址 MOV DATA2,DI;存入DATA1单元中 INC DI SUB DI,BX ;查找次数,并存入DI中 DONE:MOV DATA1,DI ;将DI存入 DATA1中 3.4 串处理指令 对应的C语言如下: void main() {char s1[10]; char a; int i,sum,address,flag; gets(s1); sum=0; flag=0; for(i=0;s1[i]!=’\0’;i++){ sum=sum+1; if (s1[i]’A’) {a=s1[i]; 3.4 串处理指令 address=s1[i]; flag=1; goto next;}} next: if (flag= =1){ printf(“该字符串存在与A不等的字母为:%c\n”,a); printf(“该字符串存在与A不等的字母,搜索次数为:%d\n”,sum); printf(“该字符串存在与A不等的字母为地址为:%d\n”,address);} else printf(“字符串不存在与A不等字符”); } 3.4 串处理指令 4.从串取指令LODSB/LODSW 指令格式:LODS OPR 或 LODSB 或 LODSW 指令参数说明:LODS、LODSB和LODSW为指令助记符,OPS是源串地址。其中:OPS可以由DS:SI设定,目标操作数默认为AL。 指令操作:(AL)←(DS:SI),(SI)=(SI)+1。 指令的功能:即完成源字符串装入

文档评论(0)

1亿VIP精品文档

相关文档