📄 gac_algorithm.asm
字号:
ld AH,@(97,Y) ; %r16 (n)
cmp AH,#20
bcs ?L25F5
bra ?L28F5
?L27F5:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?220.1:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?220.1:
ld AL,@(97,Y) ; %r16 (n)
add AL,#1
st AL,@(97,Y) ; %r16 (n)
bra ?L26F5
?L25F5:
; {
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?221.1:
; I[n] = GS[n].y - AS[n].y;
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?222.1:
ld AL,@(97,Y) ; %r16 (n)
asl #3
add AL,#$AS
add AL,#4
st AL,@H'ffe5 ; %r2
ld X,@H'ffe5 ; %r2
ld AH,@(3,X)
st AH,@(-1,Y)
ld AH,@(2,X)
st AH,@(-2,Y)
ld AH,@(1,X)
st AH,@(-3,Y)
ld AH,@(0,X)
st AH,@(-4,Y)
ld AL,@(97,Y) ; %r16 (n)
asl #3
add AL,#$GS
add AL,#4
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(-5,Y)
ld AH,@(2,X)
st AH,@(-6,Y)
ld AH,@(1,X)
st AH,@(-7,Y)
ld AH,@(0,X)
st AH,@(-8,Y)
ld AL,@(97,Y) ; %r16 (n)
asl #2
mov AH,Y
add AH,#16
st AH,@H'ffe5 ; %r2
add AL,@H'ffe5 ; %r2
ld AH,@(-8,Y)
add Y,#-7
Lstab?73a:
bsr $__dsub
add Y,#7
Lstab?74a:
bra ?L27F5
?L28F5:
; }
; LSE_get_start_value(&I[0]);
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?224.1:
mov AL,Y
add AL,#16
bsr $LSE_get_start_value
; ACC_COM_insert_reading();
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?225.1:
bsr $ACC_COM_insert_reading
; for(n = 0;n < BUF_LENGTH;n++)
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?226.1:
ld AL,#0
st AL,@(97,Y) ; %r16 (n)
?L33F5:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?226.1:
ld AH,@(97,Y) ; %r16 (n)
cmp AH,#20
bcs ?L32F5
bra ?L35F5
?L34F5:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?226.1:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?226.1:
ld AL,@(97,Y) ; %r16 (n)
add AL,#1
st AL,@(97,Y) ; %r16 (n)
bra ?L33F5
?L32F5:
; {
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?227.1:
; AS[n].y = AS[n].y + LSE_VXYZ0 * ((double)n + 1.0) + LSE_XYZ0;
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?228.1:
add Y,#-20
Lstab?75a:
ld X,#$LSE_XYZ0
ld AH,@(3,X)
st AH,@(3,Y)
ld AH,@(2,X)
st AH,@(2,Y)
ld AH,@(1,X)
st AH,@(1,Y)
ld AH,@(0,X)
st AH,@(0,Y)
add Y,#-16
Lstab?76a:
ld X,#?lit0003
ld AH,@(3,X)
st AH,@(3,Y)
ld AH,@(2,X)
st AH,@(2,Y)
ld AH,@(1,X)
st AH,@(1,Y)
ld AH,@(0,X)
st AH,@(0,Y)
ld AL,@(133,Y) ; %r16 (n)
ld AH,#0
st AL,@(-5,Y)
st AH,@(-6,Y)
mov AL,Y
add AL,#20
ld AH,@(-6,Y)
add Y,#-5
Lstab?77a:
bsr $__dfltu
mov AL,Y
add AL,#25
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(4,Y)
ld AH,@(2,X)
st AH,@(3,Y)
ld AH,@(1,X)
st AH,@(2,Y)
ld AH,@(0,X)
st AH,@(1,Y)
mov AL,Y
add AL,#29
ld AH,@(1,Y)
add Y,#2
Lstab?78a:
bsr $__dadd
mov AL,Y
add AL,#27
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(10,Y)
ld AH,@(2,X)
st AH,@(9,Y)
ld AH,@(1,X)
st AH,@(8,Y)
ld AH,@(0,X)
st AH,@(7,Y)
ld X,#$LSE_VXYZ0
ld AH,@(3,X)
st AH,@(6,Y)
ld AH,@(2,X)
st AH,@(5,Y)
ld AH,@(1,X)
st AH,@(4,Y)
ld AH,@(0,X)
st AH,@(3,Y)
mov AL,Y
add AL,#31
ld AH,@(3,Y)
add Y,#4
Lstab?79a:
bsr $__dmul
mov AL,Y
add AL,#27
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(10,Y)
ld AH,@(2,X)
st AH,@(9,Y)
ld AH,@(1,X)
st AH,@(8,Y)
ld AH,@(0,X)
st AH,@(7,Y)
ld AL,@(132,Y) ; %r16 (n)
asl #3
add AL,#$AS
add AL,#4
st AL,@H'ffe5 ; %r2
ld X,@H'ffe5 ; %r2
ld AH,@(3,X)
st AH,@(6,Y)
ld AH,@(2,X)
st AH,@(5,Y)
ld AH,@(1,X)
st AH,@(4,Y)
ld AH,@(0,X)
st AH,@(3,Y)
mov AL,Y
add AL,#31
ld AH,@(3,Y)
add Y,#4
Lstab?80a:
bsr $__dadd
mov AH,Y
add AH,#27
st AH,@H'ffe5 ; %r2
ld X,@H'ffe5 ; %r2
ld AH,@(3,X)
st AH,@(10,Y)
ld AH,@(2,X)
st AH,@(9,Y)
ld AH,@(1,X)
st AH,@(8,Y)
ld AH,@(0,X)
st AH,@(7,Y)
ld AL,@(128,Y) ; %r16 (n)
asl #3
add AL,#$AS
add AL,#4
ld AH,@(7,Y)
add Y,#8
Lstab?81a:
bsr $__dadd
; AV[n].y = AV[n].y + LSE_VXYZ0;
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?229.1:
ld X,#$LSE_VXYZ0
ld AH,@(3,X)
st AH,@(22,Y)
ld AH,@(2,X)
st AH,@(21,Y)
ld AH,@(1,X)
st AH,@(20,Y)
ld AH,@(0,X)
st AH,@(19,Y)
ld AL,@(120,Y) ; %r16 (n)
asl #3
add AL,#$AV
add AL,#4
st AL,@H'ffe5 ; %r2
ld X,@H'ffe5 ; %r2
ld AH,@(3,X)
st AH,@(18,Y)
ld AH,@(2,X)
st AH,@(17,Y)
ld AH,@(1,X)
st AH,@(16,Y)
ld AH,@(0,X)
st AH,@(15,Y)
ld AL,@(120,Y) ; %r16 (n)
asl #3
add AL,#$AV
add AL,#4
ld AH,@(15,Y)
add Y,#16
Lstab?82a:
bsr $__dadd
add Y,#7
Lstab?83a:
bra ?L34F5
?L35F5:
; }
;
; Sn_1 = AS[BUF_LENGTH - 1];
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?232.1:
ld AH,#$AS
add AH,#152
st AH,@H'ffe5 ; %r2
st Y,@H'fffe
ld Y,#$Sn_1
ld X,@H'ffe5 ; %r2
ld AL,#8
bc
ld Y,@H'fffe
st AL,@H'fffe
; Vn_1 = AV[BUF_LENGTH - 1];
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?233.1:
ld AH,#$AV
add AH,#152
st AH,@H'ffe5 ; %r2
st Y,@H'fffe
ld Y,#$Vn_1
ld X,@H'ffe5 ; %r2
ld AL,#8
bc
ld Y,@H'fffe
st AL,@H'fffe
Lstab?84c:
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?234.1:
add Y,#100
ld XH,@(-2,Y)
bra @(-1,Y)
Lstab?85c:
;
;}
;
;
;/******************************************************************************
;//write by HuHao..........
;******************************************************************************/
;/*--------------------------------------------------------------------
;
; mc[3*1] = ma[3*3] * mb[3*1]
;
; IN: void *ma matrix A buffer 3 * 3
; void *mb matrix B buffer 3 * 1
; void *mc matrix C buffer 3 * 1
;
;OUT: -
;--------------------------------------------------------------------*/
;void matrix( void *ma, void *mb, void *mc )
;
$matrix:
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?250.1:
add Y,#-16
Lstab?86a:
st AL,@(15,Y)
st AH,@(14,Y)
st XH,@(12,Y)
st X,@(13,Y)
st AL,@(1,Y) ; %r16 (ma)
st AH,@(0,Y) ; %r16 (ma)
Lstab?87c:
;{
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?251.1:
Lstab?88c:
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?252.1:
ld AL,@(1,Y) ; %r16 (ma)
ld AH,@(0,Y) ; %r16 (ma)
lsr #1
st AL,@(11,Y) ; %r21 (a)
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?253.1:
ld AL,@(17,Y) ; %r35 (mb)
ld AH,@(16,Y) ; %r35 (mb)
lsr #1
st AL,@(9,Y) ; %r20 (b)
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?254.1:
ld AL,@(19,Y) ; %r37 (mc)
ld AH,@(18,Y) ; %r37 (mc)
lsr #1
; double *a = (double *)ma;
; double *b = (double *)mb;
; double *c = (double *)mc;
; int i,j;
;
; for (i = 0; i < 3; i++)
st AL,@(7,Y) ; %r19 (c)
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?257.1:
ld AL,#0
st AL,@(3,Y) ; %r17 (i)
?L5F6:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?257.1:
ld AH,@(3,Y) ; %r17 (i)
cmp AH,#3
blt ?L4F6
bra ?L7F6
?L6F6:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?257.1:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?257.1:
ld AL,@(3,Y) ; %r17 (i)
add AL,#1
st AL,@(3,Y) ; %r17 (i)
bra ?L5F6
?L4F6:
; {
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?258.1:
; c[i] = 0.0;
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?259.1:
ld AL,@(3,Y) ; %r17 (i)
asl #2
add AL,@(7,Y) ; %r19 (c)
st Y,@H'fffe
st AL,@H'ffe1 ; %r0
ld Y,@H'ffe1 ; %r0
ld X,#?lit0001
ld AH,@(3,X)
st AH,@(3,Y)
ld AH,@(2,X)
st AH,@(2,Y)
ld AH,@(1,X)
st AH,@(1,Y)
ld AH,@(0,X)
st AH,@(0,Y)
ld Y,@H'fffe
ld AH,#0
st AH,@H'fffe
;
; for (j = 0; j < 3; j++)
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?261.1:
ld AL,#0
st AL,@(5,Y) ; %r18 (j)
?L11F6:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?261.1:
ld AH,@(5,Y) ; %r18 (j)
cmp AH,#3
blt ?L10F6
bra ?L13F6
?L12F6:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?261.1:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?261.1:
ld AL,@(5,Y) ; %r18 (j)
add AL,#1
st AL,@(5,Y) ; %r18 (j)
bra ?L11F6
?L10F6:
; {
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?262.1:
; c[i] += a[i * 3 + j] * b[j];
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?263.1:
ld AL,@(5,Y) ; %r18 (j)
asl #2
add Y,#-12
Lstab?89a:
add AL,@(21,Y) ; %r20 (b)
st AL,@H'ffe5 ; %r2
ld X,@H'ffe5 ; %r2
ld AH,@(3,X)
st AH,@(3,Y)
ld AH,@(2,X)
st AH,@(2,Y)
ld AH,@(1,X)
st AH,@(1,Y)
ld AH,@(0,X)
st AH,@(0,Y)
ld AL,#3
ld AH,@(15,Y) ; %r17 (i)
add Y,#-4
Lstab?90a:
bsr $__mh
add AL,@(21,Y) ; %r18 (j)
asl #2
add AL,@(27,Y) ; %r21 (a)
st AL,@H'ffe5 ; %r2
ld X,@H'ffe5 ; %r2
ld AH,@(3,X)
st AH,@(3,Y)
ld AH,@(2,X)
st AH,@(2,Y)
ld AH,@(1,X)
st AH,@(1,Y)
ld AH,@(0,X)
st AH,@(0,Y)
mov AL,Y
add AL,#12
ld AH,@(0,Y)
add Y,#1
Lstab?91a:
bsr $__dmul
mov AL,Y
add AL,#11
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(10,Y)
ld AH,@(2,X)
st AH,@(9,Y)
ld AH,@(1,X)
st AH,@(8,Y)
ld AH,@(0,X)
st AH,@(7,Y)
ld AL,@(18,Y) ; %r17 (i)
asl #2
add AL,@(22,Y) ; %r19 (c)
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(6,Y)
ld AH,@(2,X)
st AH,@(5,Y)
ld AH,@(1,X)
st AH,@(4,Y)
ld AH,@(0,X)
st AH,@(3,Y)
ld AL,@(18,Y) ; %r17 (i)
asl #2
add AL,@(22,Y) ; %r19 (c)
ld AH,@(3,Y)
add Y,#4
Lstab?92a:
bsr $__dadd
add Y,#11
Lstab?93a:
bra ?L12F6
?L13F6:
bra ?L6F6
?L7F6:
Lstab?94c:
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?266.1:
?L20F6:
add Y,#16
ld XH,@(-4,Y)
bra @(-3,Y)
Lstab?95c:
;
; }
; }
;}
;
;/******************************************************************************
;
; Get ACC average
;
;******************************************************************************/
;void Get_ACC_average(void)
;
$Get_ACC_average:
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?273.1:
st XH,@(-2,Y)
st X,@(-1,Y)
Lstab?96c:
;{
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?274.1:
Lstab?97c:
; int i;
;
; ACC_average_buf.x = 0;
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?277.1:
ld AH,#$ACC_average_buf
st AH,@H'ffe5 ; %r2
st Y,@H'fffe
ld Y,@H'ffe5 ; %r2
ld X,#?lit0001
ld AH,@(3,X)
st AH,@(3,Y)
ld AH,@(2,X)
st AH,@(2,Y)
ld AH,@(1,X)
st AH,@(1,Y)
ld AH,@(0,X)
st AH,@(0,Y)
ld Y,@H'fffe
ld AH,#0
st AH,@H'fffe
; ACC_average_buf.y = 0;
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?278.1:
ld AH,#$ACC_average_buf
add AH,#4
st AH,@H'ffe5 ; %r2
st Y,@H'fffe
ld Y,@H'ffe5 ; %r2
ld X,#?lit0001
ld AH,@(3,X)
st AH,@(3,Y)
ld AH,@(2,X)
st AH,@(2,Y)
ld AH,@(1,X)
st AH,@(1,Y)
ld AH,@(0,X)
st AH,@(0,Y)
ld Y,@H'fffe
ld AH,#0
st AH,@H'fffe
; ACC_average_buf.z = 0;
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?279.1:
ld AH,#$ACC_average_buf
add AH,#8
st AH,@H'ffe5 ; %r2
st Y,@H'fffe
ld Y,@H'ffe5 ; %r2
ld X,#?lit0001
ld AH,@(3,X)
st AH,@(3,Y)
ld AH,@(2,X)
st AH,@(2,Y)
ld AH,@(1,X)
st AH,@(1,Y)
ld AH,@(0,X)
st AH,@(0,Y)
ld Y,@H'fffe
ld AH,#0
st AH,@H'fffe
;
; for ( i = 0; i < FIRST_COUNT; i++ )
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?281.1:
ld AL,#0
add Y,#-4
Lstab?98a:
st AL,@(1,Y) ; %r16 (i)
?L5F7:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?281.1:
ld AH,@(1,Y) ; %r16 (i)
cmp AH,#5
blt ?L4F7
bra ?L7F7
?L6F7:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?281.1:
; ^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?281.1:
ld AL,@(1,Y) ; %r16 (i)
add AL,#1
st AL,@(1,Y) ; %r16 (i)
bra ?L5F7
?L4F7:
; {
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?282.1:
; ACC_average_buf.x += ACC_delay_buf[i].x;
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?283.1:
ld AL,#12
ld AH,@(1,Y) ; %r16 (i)
add Y,#-4
Lstab?99a:
bsr $__mh
add AL,#$ACC_delay_buf
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(3,Y)
ld AH,@(2,X)
st AH,@(2,Y)
ld AH,@(1,X)
st AH,@(1,Y)
ld AH,@(0,X)
st AH,@(0,Y)
ld AH,#$ACC_average_buf
st AH,@H'ffe5 ; %r2
ld X,@H'ffe5 ; %r2
ld AH,@(3,X)
st AH,@(-1,Y)
ld AH,@(2,X)
st AH,@(-2,Y)
ld AH,@(1,X)
st AH,@(-3,Y)
ld AH,@(0,X)
st AH,@(-4,Y)
ld AL,#$ACC_average_buf
ld AH,@(-4,Y)
add Y,#-3
Lstab?100a:
bsr $__dadd
; ACC_average_buf.y += ACC_delay_buf[i].y;
^GAC_Algorithm___GAC_Algorithm.'D:\GPS\software\GPS_A_C\GAC_Algorithm.c'.?284.1:
ld AL,#12
ld AH,@(8,Y) ; %r16 (i)
add Y,#3
Lstab?101a:
bsr $__mh
add AL,#$ACC_delay_buf
add AL,#4
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(3,Y)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -