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

[信息与通信]第三章8088指令系统5.ppt

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

2、 过程( 子程序 )调用指令 子程序—程序中具有独立功能的部分编写成独立程序模块。 子程序(过程)定义格式: 符号名 PROC 类型 …… 符号名 ENDP 子程序调用和返回指令: CALL RET(RETURN) 过程有两种类型: 按过程与调用语句间的位置,过程有两种类型。 NEAR类型:调用指令与过程在同一个段中 FAR类型:调用指令与过程不在同一个段中 CALL指令和RET指令都不影响条件码。 (1)、 CALL( Call a procedure)调用 CALL调用指令 调用地址由指令给出 CALL调用指令有4种: 段内直接调用 段间直接调用 段内间接调用 段间间接调用 ? 段内直接调用 格式:CALL DST ;(SP)←(SP)-2, ((SP)+1,(SP))←(IP) ; (IP) ← (IP)+D16 DST—给出转向地址(子程序的入口地址)。 D16—机器指令中的位移量(转向地址和返回地址之差)。 位移量为D16范围-32768~+32767H,占有两个字节。 工作过程如下: 例: NEAR 类型过程 code SEGMENT ;code段 … CALL subp ;调用 指令 YYY入栈 ,D16 =subp-yyy XXX:YYY … … subp PROC NEAR ;过程定义 … RET ;返回 subp ENDP code ENDS 例:两个数据变量X与Y相乘 子程序和调用程序在同一个程序模块中,子程序可以直接访问模块中的变量。 DATASG SEGMENT X DW 100 Y DW 10 DATASG ENDS CODESG SEGMENT MAIN PROC FAR ASSUME CS:CODESG, DS:DATA SG START: … CALL subp … RET MAIN ENDP subp PROC NEAR MOV AX,X MOV BX,Y MUL BX RET subp END CODESG ENDS END START ? 段内间接调用: 格式: CALL DST; ↑ WORD PTR OPR OPR —为16位寄存器, 或存储器(除立即数以外的任何一种寻址方式) 执行操作: (SP)←(SP)-2 ((SP)+1,(SP))←(IP) (IP)←(EA) EA—由DST寻址方式所确定的有效地址。 ? 段间直接调用: 格式:CALL FAR PTR DST; 执行操作 : (SP)←(SP)-2 ((SP)+1,(SP))←(CS) (SP)←(SP)-2 ((SP)+1,(SP))←(IP) (IP)←DST偏移地址(指令中第2,3字节 ) (CS)←DST段地址(指令中第4,5字节 ) 例 : … CSEG1 SEGMENT CALL FAR PT

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档