| 作者 | 主题 |
|---|---|
|
爱学习的我 侠客 经验值:738 发帖数:42 精华帖:0 |
楼主
主题:一段STL代码,请帮忙解读一下具体的执行过程和一些指令的含义 以下是源代码: 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 #目标保存长度
进无止境
|