电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 华强电子网APP

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

子程序调用指令 -华强电子网

来源:华强电子网 作者:华仔 浏览:478

标签:

摘要: 程序中有些部分可能要实现相同的功能,而且这些功能需要用到,用子程序实现这个功能是很适合的。子程序通常是与主程序分开的、完成特定功能的一段程序。当主程序(调用程序)需要执行这个功能时,就可以调用该子程序(被调用程序);于是,程序转移到这个子程序的起始处执行。当运行完子程序后,再返回调用它的主程序。子程序由主程序执行子程序调用指令 CALL 来调用;而子程序执行完后用子程序返回指令 RET ,返回主程

程序中有些部分可能要实现相同的功能,而且这些功能需要用到,用子程序实现这个功能是很适合的。子程序通常是与主程序分开的、完成特定功能的一段程序。当主程序(调用程序)需要执行这个功能时,就可以调用该子程序(被调用程序);于是,程序转移到这个子程序的起始处执行。当运行完子程序后,再返回调用它的主程序。子程序由主程序执行子程序调用指令 CALL 来调用;而子程序执行完后用子程序返回指令 RET ,返回主程序继续执行。 CALL 和 RET 指令均不影响标志位。
子程序结构相当于高级语言中的过程。为便于模块化程序设计,往往把程序中某些具有独立功能的部分编写成独立的程序模块,称为子程序。
1 .子程序调用指令 CALL
(1)段内直接调用
格式: CALL DST
执行操作: PUSH (IP)
(IP)<-(IP)+D16
DST 给出转向地址, D16 为机器指令中的位移量,是转向地址和返回地址之间的差值。
(2) 段内间接调用
格式: CALL DST
执行操作: PUSH (IP)
(IP)<-(EA)
指令中的 DST 可使用寄存器寻址方式或任一种存储器寻址方式,由指定的寄存器或存储单元的内容给出转向地址。
(3) 段间直接调用
格式: CALL DST
执行操作: PUSH (CS) PUSH (IP)
(CS)<-DST 指定段地址
(IP)<-DST 指定偏移地址
(4) 段间间接调用
格式: CALL DST
执行操作: PUSH (CS)
PUSH (IP)
(IP)<- ( EA )
(CS)<- ( EA+2 )
EA 是由 DST 的寻址方式确定的有效地址,可用任一种存储器寻址方式来取得。

2 .返回指令 RET
(1)语句格式: RET ; (IP)<-POP()
(2)语句格式: RET EXP;
在完成出栈操作后,还要修改堆栈指针

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67