
以下是源代码:
SET
SAVE // BIE setzen
L P##IN1 // Pointer
LAR1 // in Adre?register 1 ablegen
L W [AR1,P#0.0] // DB-Nr. aus Lokaldaten IN1
T #w_DBNR1 // zwischenspeichern
OPN DB [#w_DBNR1] // Quell-DB, falls vorhanden
L D [AR1,P#2.0] // Pointer auf String IN1 laden
LAR1 // ins Adre?register 1
T #d_AR_IN1
L B [AR1,P#1.0] // L?nge String 1
T #yAnzIN1
L P##IN2 // Pointer
LAR2 // in Adre?register 2 ablegen
L W [AR2,P#0.0] // DB-Nr. aus Lokaldaten IN1
T #w_DBNR2 // zwischenspeichern
OPN DB [#w_DBNR2] // Quell-DB, falls vorhanden
L D [AR2,P#2.0] // Pointer auf String IN2 laden
LAR2
T #d_AR_IN2 // zwischenspeichern
L B [AR2,P#1.0] // res. L?nge String 2
T #yAnzIN2
L P##RET_VAL // Pointer
LAR2 // in Adre?register 2 ablegen
L W [AR2,P#0.0] // DB-Nr. aus Lokaldaten RET_VAL
T #w_Temp // zwischenspeichern
OPN DI [#w_Temp] // Quell-DB, falls vorhanden
L D [AR2,P#2.0] // Pointer auf String RET_VAL
OD DW#16#1000000 // Pointer-Bereichskennung DI
LAR2 // ins Adre?register 2
L B [AR2,P#0.0] // res. L?nge Ziel
T #yMaxZiel
以下是经过加工的代码:
SET
SAVE // BIE setzen
L P##IN1 // 输入1,指针起始地址(p#dbn.dbn.0 输入是如何转换成地址数据的?
LAR1 // in Adre?register 1 ablegen 加载到AR1
L W [AR1,P#0.0] // DB-Nr. aus Lokaldaten IN1 读取DB块号所在的地址?W是什么意思?输入如何转换的?
T #数据源1的DB编号 // zwischenspeichern
OPN DB [#数据源1的DB编号] // Quell-DB, falls vorhanden 打开DB块
L D [AR1,P#2.0] // Pointer auf String IN1 laden D又是什么?doubleword?
LAR1 // ins Adre?register 1 ACCU1装载到AR1
T #地址寄存器IN1
L B [AR1,P#1.0] // L?nge String 1 这是读取的什么?从哪里读的数据长度?
T #IN1的字符长度
L P##IN2 // Pointer 输入2,指针起始地址(p#dbn.dbn.0)下面跟上面差不多
LAR2 // in Adre?register 2 ablegen
L W [AR2,P#0.0] // DB-Nr. aus Lokaldaten IN1
T #数据源2的DB编号 // zwischenspeichern
OPN DB [#数据源2的DB编号] // Quell-DB, falls vorhanden
L D [AR2,P#2.0] // Pointer auf String IN2 laden
LAR2
T #地址寄存器IN2 // zwischenspeichern
L B [AR2,P#1.0] // res. L?nge String 2
T #IN2的字符长度
L P##RET_VAL // Pointer 返回值接入位置,也是指针起始地址
LAR2 // in Adre?register 2 ablegen
L W [AR2,P#0.0] // DB-Nr. aus Lokaldaten RET_VAL
T #w_Temp // zwischenspeichern 润滑标记
OPN DI [#w_Temp] // Quell-DB, falls vorhanden 源数据库(如果可用)
L D [AR2,P#2.0] // Pointer auf String RET_VAL
OD DW#16#1000000 // Pointer-Bereichskennung DI
LAR2 // ins Adre?register 2
L B [AR2,P#0.0] // res. L?nge Ziel
T #目标保存长度