32位存储器间接寻址举例:
//DB块间接寻址举例
OPN DB 1 //打开DB1。
OPN DI 3 //打开DB3,最多可以同时打开两个DB块。
L 4 //装载4到累加器1中。
SLD 3 //累加器1中数值左移3位。
T MD 20 //将逻辑操作结果传送到MD20中,MD20
//包含地址指针为P#4.0。
L P#20.0 //将地址指针P#20.0装载到MD24中。
T MD 24
L 320 //320转换指针为P#40.0并装载到MD28中。
T MD 28
L DBW [MD 20] //装载DB1.DBW4。
L DBW [MD 24] //装载DB1.DBW20。
+I //相加
L DIW [MD 28] //装载DB3.DBW40。
-I //相减。
T DIW 2 //将运算结果传送到DB3.DBW2中。
JZ m1
//M存储器连续区域操作
L 0 //初始化MW100和MD4。
T MW 100
T MD 4
OPN DB 1 //打开DB1。
L 100 //循环操作的次数,100次。
NEXT: T MW 100 //将循环100次装载到MW100中,固定格式。 L MW 2 //进行比较的数值存储于MW2。
L DBW [MD 4] //与DB块中存储的值进行比较,开始地址为DBW0。
==I //如果数值相等跳到m1。
JC m1
L MD 4 //将地址指针加2(每个相邻的字地址相差2)。
L P#2.0
+D
T MD 4
L MW 100 //次数减1,跳回next,如果MW100等于0,跳
LOOP NEXT //出循环操作LOOP指令,LOOP指令固定格式。
m1: FP M 10.0 //如果数值相当,记录MD4指针的数据,将转换为数组
JCN m2 //的位置((地址值/P#2.0)+1)值存储于MD8中。
L MD 4
L P#2.0
/D
+ L#1
T MD 8
m2: NOP 0