第二章8088指令系统要点.ppt

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

(1) 段内直接调用 指令格式:CALL near_proc 操作:SP←SP-2, ([SP+1]: [SP])←IP IP ←IP+rel 其中rel为CALL的下一条指令于被调用过程入口地址之间的16相对位移量 * (2)段内间接调用 指令格式:CALL reg16/mem16 操作:SP←SP-2, ([SP+1]: [SP])←IP IP ←reg16/mem16 例如: CALL AX;IP ←AX, 子程序的入口地址由AX给出 CALL WORD PTR[BX] ; IP ←([BX+1]:[BX]), 子程序的入口地 址为[BX+1]和[BX]单元的字内容 * (3) 段间直接调用 指令格式:CALL far_proc 操作: SP←SP-2, ([SP+1]: [SP])←CS CS ←SEG far_proc SP←SP-2, ([SP+1]: [SP])←IP IP ←OFFSET far_proc * (4)段间间接调用 指令格式:CALL mem32 操作:先把CALL指令的下一条指令的地址,即CS和IP的内容压入堆栈,然后把指令中指定的连续4个存储单元的内容送入IP和CS,低地址的两个单元内容为偏移地址,送入IP;地址的两个单元内容为段基址,送入CS * 例如:设DS=6000H, SI=560H, 单元60560H开始存放的字节数据为:10H, 20H, 30H, 40H. SS=2000H,SP=50H,则: 执行指令CALL DWORD PTR[SI]后: SP=4CH,IP=2010H,CS=4030H * 2、RET( Return from procedure) 指令格式及操作: (1)从近过程返回 RET ;IP← ([SP+1], [SP]) , SP←SP+2 (1)从远过程返回 RET ; IP← ([SP+1], [SP]) , SP←SP+2 ; CS← ([SP+1], [SP]) , SP←SP+2 近过程返回和远过程返回指令形式相同,但底层操作不同 CALL和RET指令不影响标志位 * (二)转移指令 1、JMP(Jump):无条件转移 (1) 段内直接转移 指令格式及操作: JMP near_label ; IP ←IP+rel16/rel8 其中rel16/rel8 为JMP的下一条指令到目标地址之间的16位或8位的相对位移量。若为8位,转移范围为-128~+127;若为16位,转移范围为-32768~+32767; * 转移指令与过程调用指令的区别:过程调用需要从子程序中返回,而转移指令不需要 (3) 段内间接转移 指令格式及操作: JMP reg16 ; IP ←reg16 JMP mem16; IP ←mem16 (4) 段间直接转移 指令格式及操作: JMP far_label ;IP ←OFFSET far_label ; CS ←SEG far_label (5) 段间间接转移 指令格式及操作: JMP mem32; IP ←(mem32) ;CS ←(mem32+2) * 2、条件转移指令(Conditional jumps) 条件转移指令根据前一条指令执行后标志位的状态来决定程序是否转移:若满足条件,则程序转移到指令指定的地址去执行从那里开始的指令;否则,则顺序执行下一条指令。 所有的条件转移都是直接寻址方式的短转移,即只能在以当前IP值为中心的-128~+127字节范围内转移。 条件转移不影响标志位 * 表2.2.1 条件转移指令 * 表2.2.1(续) 条件转移指令 * 例 在内存的数据段中存放了100个8位带符号数,首地址为TABLE,试统计其中正元素、负元素及零元素的个数,分别存入PLUS、MINUS和ZERO单元中 * XOR AL, AL MOV PLUS, AL MOV MINUS, AL MOV ZERO, AL LEA SI, TABLE MOV CX, 100 CLD GOON: LODSB OR AL, AL JS X1 JZ X2 INC PLUS JMP AGN X1: INC MINUS JMP AGN X2: INC ZERO AGN: LOOP GOON HLT (三)循环控制指令(Iteration control) 循环控制指令转向的目标地址是以当前IP内容为中心的-128~+127范围内。循环次数必须预先送入CX中。一般情况下,循环控制指令放在循环程序的开始或结尾。 1、LOOP 指令格式: LOOP short_la

文档评论(0)

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

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

1亿VIP精品文档

相关文档