有参数子程序的第一个指令必须是 LDI(装入立即数)指令,用于将参数传递给子程序。(有参数子程序的第一个指令必须是 LDI(装入立即数)指令,用于将参数传递给子程序。 )

装入立即数

在编写有参数子程序时,其第一个指令必须是LDI(装入立即数)指令。LDI指令用于将参数传递给子程序。

LDI指令

LDI指令的格式如下:

LDI Rd, K
  • Rd:寄存器(例如,R16、R17、R18、R19、R20、R21、R22、R23)
  • K:立即数(例如,10、20、30)

LDI指令将立即数K加载到寄存器Rd中。例如,以下指令将立即数10加载到寄存器R16中:

LDI R16, 10

将参数传递给子程序

在有参数子程序中,LDI指令用于将参数从调用程序传递到子程序。参数存储在调用程序中的寄存器中。LDI指令将这些寄存器中的值加载到子程序中的寄存器中,以便子程序可以访问这些参数。

例如,假设我们有一个子程序subroutine,它接受两个参数,存储在寄存器R16和R17中。在调用程序中,我们可以使用以下LDI指令将参数传递给子程序:

LDI R16, 10
LDI R17, 20
CALL subroutine

在子程序subroutine中,我们可以使用以下LDI指令访问这些参数:

LDI R18, R16
LDI R19, R17

注意事项

  • LDI指令只能用于传递立即数或地址。它不能用于传递其他类型的数据,例如字符串或数组。
  • 在有参数子程序的第一个指令之后,可以出现其他指令,例如ADD、SUB、MUL、DIV等。这些指令用于对参数进行操作或执行其他任务。
  • 有参数子程序的第一个指令不必一定是LDI指令。LDI指令是最常见的指令,因为它可以轻松地传递立即数和地址。

例子

下面是一个使用LDI指令的有参数子程序的示例:

cpp .include "m16c.inc".org 0x0000LDI R16, 10 LDI R17, 20 CALL subroutine.end

在这个例子中,子程序subroutine接受两个参数,存储在寄存器R16和R17中。LDI指令用于将这些参数传递给子程序。

总结

LDI指令是编写有参数子程序时使用的重要指令。它用于将参数从调用程序传递到子程序。LDI指令的格式为LDI Rd, K,其中Rd是寄存器,K是立即数或地址。


请问在PLC梯形图中应将LD或LDI指令作为一个逻辑行的开始,是否正确?说说你的理解.

不一定,没有理解,想怎么编就怎么编。 程序是我编的,只要功能要求都对了,谁管我是用常开常闭触点开始,还是用别的开始呀。 比如如果需要用到中断的话,我喜欢把EI指令放第一个,程序运行就启动中断,而EI指令前面还不能有控制,直接左母线连到右母线。 纯粹是看程序能否满足功能要求,和程序员的个人习惯。 望采纳。 。 。 。 。 。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论