简单说明一下背景:汇编实现函数的拟合操作之前,将自变量和常数调用下面的预处理MLBLIN子程序,实现有返回值(BC)找到函数拟合用的数据表格的所在拟合范围的位置。
其中,DE=自变量
HL=80H(抛物线函数拟合) HL=10H(线性函数拟合)
; FIXED POINT MULTIPLY
;
; FUNCTION OF MLB::
; ENTRY : (D,E)=X -- MULTIPLICAND
; (H,L)=Y -- MULTIPLICATOR
; EXIT : (B,C,D,E)=Z -- PRODUCT
; BIT 7 OF D IS ALWAYS FIXED TO 0
;
; 2'S COMPLEMENT EXPRESSION DATA MULTIPLICATION
;
MLBLIN: LXI B,0
MLBLNS: MVI A,16
ANA A
PUSH PSW
MOV A,E
MLBLN1: RAR
RAR
ANI 0C0H
JPE MLBLN2
PUSH H
CM CMPLH
DAD B
XTHL
POP B
MLBLN2: POP PSW
DCR A
PUSH PSW
CNZ SRD2
MOV A,D
RAR
MOV D,A
MOV A,E
RAR
MOV E,A
JNZ MLBLN1
POP PSW
RET
;======================================================
; 2'S COMPLEMENT OF H&L
;
; ENTRY : (H,L)= X
; EXIT : (H,L)=-X
;
; 2'S COMPLEMENT OF X
;======================================================
CMPLH: MOV A,H
CMA
MOV H,A
MOV A,L
CMA
MOV L,A
INX H
RET
;======================================================
; SHIFT RIGHT
;
; ENTRY: (B,C)=X --ORIGINAL DATA
; EXIT : (B,C)=X/2
;
; SHIFT 2'S COMPLEMENT EXPRESSION DATA
; RIGHT 1 BIT
;======================================================
SRD2: MOV A,B
RLC
RAR
RAR
MOV B,A
MOV A,C
RAR
MOV C,A
RET
------解决方案--------------------
对函数拟合不了解。帮顶。