.版本 2
.子程序 自由type, 字节集, 公开, 返回12字节数据段
.参数 属性结构, 属性结构, 数组
.参数 指定地址, 整数型, 可空, 默认申请地址
.局部变量 地址, 整数型
.局部变量 计次1, 整数型
.局部变量 计次2, 整数型
.局部变量 计次3, 整数型
.局部变量 计次4, 整数型
.局部变量 当前地址, 整数型
.局部变量 数据地址1, 整数型
.局部变量 数据地址2, 整数型
.如果 (是否为空 (指定地址))
内存操作.打开进程 (进程ID)
地址 = 内存操作.创建内存 (4096)
.否则
地址 = 指定地址
.如果结束
当前地址 = 地址 + 取数组成员数 (属性结构) × 88
.计次循环首 (取数组成员数 (属性结构), 计次1)
数据地址1 = 当前地址 + 取数组成员数 (属性结构 [计次1].整数) × 20
.计次循环首 (取数组成员数 (属性结构 [计次1].整数), 计次2)
.计次循环首 (取数组成员数 (属性结构 [计次1].整数 [计次2].参数), 计次3)
写内存整数型 (进程ID, 数据地址1, 属性结构 [计次1].整数 [计次2].参数 [计次3])
数据地址1 = 数据地址1 + 4
.计次循环尾 ()
写内存整数型 (进程ID, 当前地址, 当前地址 + 16)
写内存整数型 (进程ID, 当前地址 + 16, 当前地址)
写内存整数型 (进程ID, 当前地址 + 4, 数据地址1 - 取数组成员数 (属性结构 [计次1].整数 [计次2].参数) × 4)
写内存整数型 (进程ID, 当前地址 + 8, 数据地址1)
写内存整数型 (进程ID, 当前地址 + 12, 数据地址1)
当前地址 = 当前地址 + 20
.计次循环尾 ()
写内存整数型 (进程ID, 地址 + (计次1 - 1) × 88, 地址 + 16 + (计次1 - 1) × 88)
写内存整数型 (进程ID, 地址 + 4 + (计次1 - 1) × 88, 当前地址 - (计次2 - 1) × 20)
写内存整数型 (进程ID, 地址 + 8 + (计次1 - 1) × 88, 当前地址)
写内存整数型 (进程ID, 地址 + 12 + (计次1 - 1) × 88, 当前地址)
写内存整数型 (进程ID, 地址 + 16 + (计次1 - 1) × 88, 地址 + (计次1 - 1) × 88)
当前地址 = 数据地址1
数据地址2 = 当前地址 + 取数组成员数 (属性结构 [计次1].小数段) × 20
.计次循环首 (取数组成员数 (属性结构 [计次1].小数段), 计次2)
数据地址1 = 数据地址2 + 取数组成员数 (属性结构 [计次1].小数段 [计次2].小数) × 20
.计次循环首 (取数组成员数 (属性结构 [计次1].小数段 [计次2].小数), 计次3)
.计次循环首 (取数组成员数 (属性结构 [计次1].小数段 [计次2].小数 [计次3].参数), 计次4)
写内存小数型 (进程ID, 数据地址1, 属性结构 [计次1].小数段 [计次2].小数 [计次3].参数 [计次4])
数据地址1 = 数据地址1 + 4
.计次循环尾 ()
写内存整数型 (进程ID, 数据地址2, 数据地址2 + 16)
写内存整数型 (进程ID, 数据地址2 + 16, 数据地址2)
写内存整数型 (进程ID, 数据地址2 + 4, 数据地址1 - 取数组成员数 (属性结构 [计次1].小数段 [计次2].小数 [计次3].参数) × 4)
写内存整数型 (进程ID, 数据地址2 + 8, 数据地址1)
写内存整数型 (进程ID, 数据地址2 + 12, 数据地址1)
数据地址2 = 数据地址2 + 20
.计次循环尾 ()
写内存整数型 (进程ID, 当前地址, 当前地址 + 16)
写内存整数型 (进程ID, 当前地址 + 16, 当前地址)
写内存整数型 (进程ID, 当前地址 + 4, 数据地址2 - 取数组成员数 (属性结构 [计次1].小数段 [计次2].小数) × 20)
写内存整数型 (进程ID, 当前地址 + 8, 数据地址2)
写内存整数型 (进程ID, 当前地址 + 12, 数据地址2)
当前地址 = 当前地址 + 20
.计次循环尾 ()
写内存整数型 (进程ID, 地址 + 20 + (计次1 - 1) × 88, 地址 + 36 + (计次1 - 1) × 88)
写内存整数型 (进程ID, 地址 + 24 + (计次1 - 1) × 88, 当前地址 - (计次2 - 1) × 20)
写内存整数型 (进程ID, 地址 + 28 + (计次1 - 1) × 88, 当前地址)
写内存整数型 (进程ID, 地址 + 32 + (计次1 - 1) × 88, 当前地址)
写内存整数型 (进程ID, 地址 + 36 + (计次1 - 1) × 88, 地址 + 20 + (计次1 - 1) × 88)
写内存整数型 (进程ID, 地址 + 40 + (计次1 - 1) × 88, 地址 + 56 + (计次1 - 1) × 88)
写内存整数型 (进程ID, 地址 + 56 + (计次1 - 1) × 88, 地址 + 40 + (计次1 - 1) × 88)
.计次循环尾 ()
返回 (到字节集 (地址) + 到字节集 (到整数 (地址 + 取数组成员数 (属性结构) × 88)) + 到字节集 (到整数 (地址 + 取数组成员数 (属性结构) × 88)))
.子程序 自由type, 字节集, 公开, 返回12字节数据段
.参数 属性结构, 属性结构, 数组
.参数 指定地址, 整数型, 可空, 默认申请地址
.局部变量 地址, 整数型
.局部变量 计次1, 整数型
.局部变量 计次2, 整数型
.局部变量 计次3, 整数型
.局部变量 计次4, 整数型
.局部变量 当前地址, 整数型
.局部变量 数据地址1, 整数型
.局部变量 数据地址2, 整数型
.如果 (是否为空 (指定地址))
内存操作.打开进程 (进程ID)
地址 = 内存操作.创建内存 (4096)
.否则
地址 = 指定地址
.如果结束
当前地址 = 地址 + 取数组成员数 (属性结构) × 88
.计次循环首 (取数组成员数 (属性结构), 计次1)
数据地址1 = 当前地址 + 取数组成员数 (属性结构 [计次1].整数) × 20
.计次循环首 (取数组成员数 (属性结构 [计次1].整数), 计次2)
.计次循环首 (取数组成员数 (属性结构 [计次1].整数 [计次2].参数), 计次3)
写内存整数型 (进程ID, 数据地址1, 属性结构 [计次1].整数 [计次2].参数 [计次3])
数据地址1 = 数据地址1 + 4
.计次循环尾 ()
写内存整数型 (进程ID, 当前地址, 当前地址 + 16)
写内存整数型 (进程ID, 当前地址 + 16, 当前地址)
写内存整数型 (进程ID, 当前地址 + 4, 数据地址1 - 取数组成员数 (属性结构 [计次1].整数 [计次2].参数) × 4)
写内存整数型 (进程ID, 当前地址 + 8, 数据地址1)
写内存整数型 (进程ID, 当前地址 + 12, 数据地址1)
当前地址 = 当前地址 + 20
.计次循环尾 ()
写内存整数型 (进程ID, 地址 + (计次1 - 1) × 88, 地址 + 16 + (计次1 - 1) × 88)
写内存整数型 (进程ID, 地址 + 4 + (计次1 - 1) × 88, 当前地址 - (计次2 - 1) × 20)
写内存整数型 (进程ID, 地址 + 8 + (计次1 - 1) × 88, 当前地址)
写内存整数型 (进程ID, 地址 + 12 + (计次1 - 1) × 88, 当前地址)
写内存整数型 (进程ID, 地址 + 16 + (计次1 - 1) × 88, 地址 + (计次1 - 1) × 88)
当前地址 = 数据地址1
数据地址2 = 当前地址 + 取数组成员数 (属性结构 [计次1].小数段) × 20
.计次循环首 (取数组成员数 (属性结构 [计次1].小数段), 计次2)
数据地址1 = 数据地址2 + 取数组成员数 (属性结构 [计次1].小数段 [计次2].小数) × 20
.计次循环首 (取数组成员数 (属性结构 [计次1].小数段 [计次2].小数), 计次3)
.计次循环首 (取数组成员数 (属性结构 [计次1].小数段 [计次2].小数 [计次3].参数), 计次4)
写内存小数型 (进程ID, 数据地址1, 属性结构 [计次1].小数段 [计次2].小数 [计次3].参数 [计次4])
数据地址1 = 数据地址1 + 4
.计次循环尾 ()
写内存整数型 (进程ID, 数据地址2, 数据地址2 + 16)
写内存整数型 (进程ID, 数据地址2 + 16, 数据地址2)
写内存整数型 (进程ID, 数据地址2 + 4, 数据地址1 - 取数组成员数 (属性结构 [计次1].小数段 [计次2].小数 [计次3].参数) × 4)
写内存整数型 (进程ID, 数据地址2 + 8, 数据地址1)
写内存整数型 (进程ID, 数据地址2 + 12, 数据地址1)
数据地址2 = 数据地址2 + 20
.计次循环尾 ()
写内存整数型 (进程ID, 当前地址, 当前地址 + 16)
写内存整数型 (进程ID, 当前地址 + 16, 当前地址)
写内存整数型 (进程ID, 当前地址 + 4, 数据地址2 - 取数组成员数 (属性结构 [计次1].小数段 [计次2].小数) × 20)
写内存整数型 (进程ID, 当前地址 + 8, 数据地址2)
写内存整数型 (进程ID, 当前地址 + 12, 数据地址2)
当前地址 = 当前地址 + 20
.计次循环尾 ()
写内存整数型 (进程ID, 地址 + 20 + (计次1 - 1) × 88, 地址 + 36 + (计次1 - 1) × 88)
写内存整数型 (进程ID, 地址 + 24 + (计次1 - 1) × 88, 当前地址 - (计次2 - 1) × 20)
写内存整数型 (进程ID, 地址 + 28 + (计次1 - 1) × 88, 当前地址)
写内存整数型 (进程ID, 地址 + 32 + (计次1 - 1) × 88, 当前地址)
写内存整数型 (进程ID, 地址 + 36 + (计次1 - 1) × 88, 地址 + 20 + (计次1 - 1) × 88)
写内存整数型 (进程ID, 地址 + 40 + (计次1 - 1) × 88, 地址 + 56 + (计次1 - 1) × 88)
写内存整数型 (进程ID, 地址 + 56 + (计次1 - 1) × 88, 地址 + 40 + (计次1 - 1) × 88)
.计次循环尾 ()
返回 (到字节集 (地址) + 到字节集 (到整数 (地址 + 取数组成员数 (属性结构) × 88)) + 到字节集 (到整数 (地址 + 取数组成员数 (属性结构) × 88)))