说明
使用“加载”指令,可加载累加器 1 中特定操作数的内容。并在下列某个存储区中,通过字节、字或双字对待加载的操作数进行寻址:
输入和输出的过程映像 (I, Q)
位存储器 (M)
临时本地数据 (L)
数据块 (DB,DI)
指针
I/O (PI)
定时器 (T)
计数器 (C)
累加器 1 的存储区域以字节为单位,有 32 位。
该指令以字节为单位将待装载的操作数内容,写入累加器 1 的低字。累加器 1 中的剩余字节将用“0”填充。
该指令以字为单位将待加载的操作数内容写入累加器 1 的低字。该寻址字节的高位将因此传送到累加器 1 的低字中(位 0 到 7)。而该寻址字节的低位则写入累加器 1 的高位。累加器 1 高字中的剩余字节将用“0”填充。
该指令以双字为单位将待加载的操作数内容写入累加器 1 的 32 个位中。高地址位字节将因此传送到累加器 1 的低字节中(位 0 到 7)。而将低地址字节写入 24 到 31 位中。
下表显示的示例说明了通过装载字节、字和双字格式的操作数,对累加器 1 内容进行更改:
31 . . . | . . . 24 | 23 . . . | . . . 16 | 15 . . . | . . . 8 | 7 . . . | . . . 0 | |
加载一个字节: L MB10 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | ||
加载一个字: L MW10 | 0000 | 0000 | 0000 | 0000 | ||||
加载双字: L MD10 |
在装载指定操作数的过程中,累加器 1 中的原有内容将移动到累加器 2 中。“加载”指令将累加器 1 的所有内容都传送到累加器 2 中。在此过程中,累加器 2 中的原有内容丢失。
无论逻辑运算结果以及状态位如何,CPU 都会执行该指令。该指令既不影响逻辑运算结果也不影响状态位。
参数
下表列出了“加载”指令的参数:
<操作数> | Input | BYTE、WORD、DWORD、SINT、INT、DINT、USINT、UINT、UDINT、定时器、REAL、DATE、TOD、CHAR | I、Q、PI、M、L、DB、DI、T、C、指针、参数 | 加载了内容的操作数。 |
示例
以下示例说明了该指令的工作原理:
L "Tag_Value_1" | // 加载累加器 1 中操作数“Tag_Value_1”的值 |
L "Tag_Value_2" | // 将累加器 1 中的内容移到累加器 2 中。 // 加载累加器 1 中操作数“Tag_Value_2”的值 |
*R | // 将累加器 1 和 2 中的值相乘。 // 将乘积存储在累加器 1 中。 |
L "Tag_Value_3" | // 将累加器 1 中的内容移到累加器 2 中。 // 加载累加器 1 中操作数“Tag_Value_3”的值 |
+R | // 将累加器 1 和 2 中的值相加。 // 将和值存储在累加器 1 中。 |
T "Tag_Result" | // 将结果(累加器 1 的内容)传送到操作数“Tag_Result”。 |