程序如下,只有边缘值检测可以按预期运行,中间值算出来都是0,或者就是没有执行
// 网络1: 边界检查 - 小于 P0_Fuel
LD Always_On
MOVD #pFuelTable, AC1
LDR<= #Current_Fuel, *AC1
JMP 1
// 网络2: 边界检查 - 大于 P9_Fuel
LD Always_On
MOVD #pFuelTable, AC1
+D 36, AC1
LDR>= #Current_Fuel, *AC1
JMP 2
// 网络3: 初始化查表指针
LD Always_On
MOVD #pFuelTable, AC1
MOVD #pAirTable, AC2
MOVW 0, #i
// 网络4: 查表循环
LBL 4
LDW>= #i, 9
JMP 5
// 未找到,移动指针
+D 4, AC1
+D 4, AC2
+I 1, #i
MOVR *AC2, #Output_Air
JMP 4
// 网络5: 输出 P0_Air
LBL 1
MOVD #pAirTable, AC2
MOVR *AC2, #Output_Air
JMP 5
// 网络6: 输出 P9_Air
LBL 2
MOVD #pAirTable, AC2
+D 36, AC2
MOVR *AC2, #Output_Air
JMP 5
// 网络7: 插值计算
LBL 3
MOVR *AC2, #Air_L
+D 4, AC2
MOVR *AC2, #Air_R
-D 4, AC2
MOVR #Current_Fuel, #Ratio
-R #Fuel_L, #Ratio
MOVR #Fuel_R, #Temp_Real
-R #Fuel_L, #Temp_Real
/R #Temp_Real, #Ratio
MOVR #Air_R, #Temp_Real
-R #Air_L, #Temp_Real
*R #Ratio, #Temp_Real
MOVR #Air_L, #Result
+R #Temp_Real, #Result
MOVR #Result, #Output_Air
// 网络8: 结束
LBL 5