📄 sd16.asm
字号:
clr r15
DBG73:
; subtract filter_state from (sample << 16)
sub 0(r12),r15
DBG74:
subc 2(r12),r14
DBG75:
; >> 14
rla r15
DBG76:
rlc r14
DBG77:
jc dc_filter_1
DBG78:
rlc r15
DBG79:
rlc r14
DBG80:
rlc r15
DBG81:
and #0x0003,r15
DBG82:
jmp dc_filter_2
DBG83:
dc_filter_1
DBG84:
rlc r15
DBG85:
rlc r14
DBG86:
rlc r15
DBG87:
bis #0xFFFC,r15
DBG88:
dc_filter_2
DBG89:
; + filter_state
add 0(r12),r14
DBG90:
addc 2(r12),r15
DBG91:
; save new filter_state
mov r14,0(r12)
DBG92:
mov r15,2(r12)
DBG93:
; sample - filter_state
sub r15,r13
DBG94:
; $/
; return x;
mov r13,r12
DBG96:
DBG95:
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG29
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG30
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x2
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x704d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x784d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x70
.long 0x0
.long 0xc0102
.long 0x25
.long 0x11ffff
.long 0x78
.long 0x0
.long 0xd0102
.long 0x4
.long 0x11ffff
.long 0x7a
.long 0x0
.long 0xe0202
.long 0x5
.long 0x4ffff
.long 0x66652e
.long 0x0
.long DBG96
.long 0x0
.long 0x1650001
.long 0x0
.long 0xbf
.long 0x0
.long 0x0
.long 0x0
.pseg SD16_code
DBG63:
.dbgseg dbg_syms
.long 0x0
.long DBG66
.long DBG63
.long 0x0
.long 0xff0001
; }
; int32_t imul16_up(register int16_t x, register int16_t y)
DBG62:
.long 0x0
.long DBG101
.long _imul16_up
.long 0x45
.long 0x1020001
.long DBG67
.long DBG98-DBG99
.long DBG100
.long DBG97
.long 0x0
.pseg SD16_code
DBG99:
.dbgseg dbg_syms
DBG67:
.long 0x66622e
.long 0x0
.long DBG99
.long 0x0
.long 0x1650001
.long 0x0
.long 0xc1
.long 0x0
.long DBG102
.long 0x0
.dbgseg dbg_line
DBG100:
.long DBG62
.long 0x0
.long _imul16_up
.long 0x1
.long DBG104
.long 0x2
.long DBG105
.long 0x6
.long DBG106
.long 0x7
.long DBG107
.long 0x8
.long DBG108
.long 0x9
.long DBG109
.long 0xc
.long DBG110
.long 0xd
.pseg SD16_code
.global _imul16_up
_imul16_up:
; ENTRY
DBG103:
; x at argloc 0 (0x0) in reg r12 size 2
; y at argloc 0 (0x0) in reg r13 size 2
; z in reg r14(2) size 4
; {
DBG104:
; register int32_t z;
; /$
DBG105:
mov r12,& (0x0132)
DBG106:
mov r13,& (0x0138)
DBG107:
mov & (0x013C) ,r14
DBG108:
mov & (0x013A) ,r15
DBG109:
; $/
; return z;
mov r15,r13
mov r14,r12
DBG111:
DBG110:
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG29
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG30
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x2
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x784d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x794d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x78
.long 0x0
.long 0xc0102
.long 0x4
.long 0x11ffff
.long 0x79
.long 0x0
.long 0xd0102
.long 0x4
.long 0x11ffff
.long 0x7a
.long 0x0
.long 0xe0202
.long 0x5
.long 0x4ffff
.long 0x66652e
.long 0x0
.long DBG111
.long 0x0
.long 0x1650001
.long 0x0
.long 0xcd
.long 0x0
.long 0x0
.long 0x0
.pseg SD16_code
DBG98:
.dbgseg dbg_syms
.long 0x0
.long DBG101
.long DBG98
.long 0x0
.long 0xff0001
; }
; void accum48(register int16_t x[3], register int32_t y)
DBG97:
.long 0x75636361
.long 0x38346d
.long _accum48
.long 0x40
.long 0x1020001
.long DBG102
.long DBG113-DBG114
.long DBG115
.long DBG112
.long 0x0
.pseg SD16_code
DBG114:
.dbgseg dbg_syms
DBG102:
.long 0x66622e
.long 0x0
.long DBG114
.long 0x0
.long 0x1650001
.long 0x0
.long 0xcf
.long 0x0
.long DBG116
.long 0x0
.dbgseg dbg_line
DBG115:
.long DBG97
.long 0x0
.long _accum48
.long 0x1
.long DBG118
.long 0x2
.long DBG119
.long 0x8
.long DBG120
.long 0x9
.long DBG121
.long 0xa
.long DBG122
.long 0xb
.long DBG123
.long 0xc
.long DBG124
.long 0xd
.long DBG125
.long 0xe
.long DBG126
.long 0x10
.pseg SD16_code
.global _accum48
_accum48:
; ENTRY
DBG117:
; x at argloc 0 (0x0) in reg r12 size 2
; y at argloc 0 (0x0) in reg r13(2) size 4
; y_ex in reg r15 size 2
; {
DBG118:
; register int16_t y_ex;
; /$
DBG119:
mov r13,r15
DBG120:
rla r15
DBG121:
subc r15,r15
DBG122:
inv r15
DBG123:
add r14,0(r12)
DBG124:
addc r13,2(r12)
DBG125:
addc r15,4(r12)
DBG127:
DBG126:
; $/
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG29
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG30
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x2
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x784d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x794d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x78
.long 0x0
.long 0xc0102
.long 0x24
.long 0x11ffff
.long 0x79
.long 0x0
.long 0xd0202
.long 0x5
.long 0x11ffff
.long 0x78655f79
.long 0x0
.long 0xf0102
.long 0x4
.long 0x4ffff
.long 0x66652e
.long 0x0
.long DBG127
.long 0x0
.long 0x1650001
.long 0x0
.long 0xde
.long 0x0
.long 0x0
.long 0x0
.pseg SD16_code
DBG113:
.dbgseg dbg_syms
.long 0x75636361
.long 0x38346d
.long DBG113
.long 0x0
.long 0xff0001
; }
; void transfer48(register int16_t y[3], register int16_t x[3])
DBG112:
.long 0x0
.long DBG132
.long _transfer48
.long 0x40
.long 0x1020001
.long DBG116
.long DBG129-DBG130
.long DBG131
.long DBG128
.long 0x0
.pseg SD16_code
DBG130:
.dbgseg dbg_syms
DBG116:
.long 0x66622e
.long 0x0
.long DBG130
.long 0x0
.long 0x1650001
.long 0x0
.long 0xe0
.long 0x0
.long DBG133
.long 0x0
.dbgseg dbg_line
DBG131:
.long DBG112
.long 0x0
.long _transfer48
.long 0x1
.long DBG135
.long 0x2
.long DBG136
.long 0x3
.long DBG137
.long 0x4
.long DBG138
.long 0x5
.long DBG139
.long 0x8
.long DBG140
.long 0x9
.pseg SD16_code
.global _transfer48
_transfer48:
; ENTRY
DBG134:
; y at argloc 0 (0x0) in reg size 2
; x at argloc 0 (0x0) in reg size 2
; {
DBG135:
; y[2] = x[2];
DBG136:
mov 0x4(r13),0x4(r12)
DBG137:
; y[1] = x[1];
mov 0x2(r13),0x2(r12)
DBG138:
; y[0] = x[0];
mov @r13,0(r12)
DBG139:
; x[0] =
; x[1] =
mov #0x0,0x4(r13)
mov 0x4(r13),0x2(r13)
mov 0x2(r13),0(r13)
DBG141:
DBG140:
; x[2] = 0;
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG29
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG30
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x2
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x794d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x784d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x79
.long 0x0
.long 0xc0102
.long 0x24
.long 0x11ffff
.long 0x78
.long 0x0
.long 0xd0102
.long 0x24
.long 0x11ffff
.long 0x66652e
.long 0x0
.long DBG141
.long 0x0
.long 0x1650001
.long 0x0
.long 0xe8
.long 0x0
.long 0x0
.long 0x0
.pseg SD16_code
DBG129:
.dbgseg dbg_syms
.long 0x0
.long DBG132
.long DBG129
.long 0x0
.long 0xff0001
; }
; int32_t div48(register int16_t x[3], register int16_t y)
DBG128:
.long 0x34766964
.long 0x38
.long _div48
.long 0x45
.long 0x1020001
.long DBG133
.long DBG143-DBG144
.long DBG145
.long DBG142
.long 0x0
.pseg SD16_code
DBG144:
.dbgseg dbg_syms
DBG133:
.long 0x66622e
.long 0x0
.long DBG144
.long 0x0
.long 0x1650001
.long 0x0
.long 0xea
.long 0x0
.long DBG146
.long 0x0
.dbgseg dbg_line
DBG145:
.long DBG128
.long 0x0
.long _div48
.long 0x1
.long DBG148
.long 0x2
.long DBG149
.long 0xa
.long DBG150
.long 0xb
.long DBG151
.long 0xc
.long DBG152
.long 0xd
.long DBG153
.long 0xe
.long DBG154
.long 0xf
.long DBG155
.long 0x10
.long DBG156
.long 0x11
.long DBG157
.long 0x12
.long DBG158
.long 0x13
.pseg SD16_code
.global _div48
_div48:
push r4
push r5
push r6
push r7
push r8
push r9
DBG147:
; ENTRY
mov r12,r7
; x at argloc 0 (0x0) in reg size 2
mov r13,r9
DBG149:
DBG148:
; y at argloc 0 (0x0) in reg size 2
; x1 in reg size 4
; z in reg size 4
; {
; int32_t x1;
; int32_t z;
; x1 = x[2]%y;
mov 0x4(r7),r12
mov r9,r13
DBG159:
call #__sdiv16
DBG160:
cmp #0x0,r13
jge div48_LL2
div48_LL2:
; x1 <<= 16;
DBG150:
mov #0x0,r6
mov r13,r8
DBG151:
; x1 |= (uint16_t) x[1];
mov 0x2(r7),r13
mov #0x0,r12
bis r13,r6
bis r12,r8
DBG152:
; z = x1/y;
mov #0x0,r4
cmp #0x0,r9
jge div48_LL3
mov #-0x1,r4
div48_LL3:
mov r6,r13
mov r8,r12
mov r9,r15
mov r4,r14
DBG161:
call #__sdiv32
DBG162:
mov r13,r5
DBG153:
; x1 = x1%y;
mov r6,r13
mov r8,r12
mov r9,r15
mov r4,r14
DBG163:
call #__sdiv32
DBG154:
DBG164:
; x1 <<= 16;
mov #0x0,r13
DBG155:
; x1 |= (uint16_t) x[0];
mov @r7,r12
mov #0x0,r14
bis r12,r13
bis r14,r15
DBG156:
; z = (z << 16) + x1/y;
mov r15,r12
mov r9,r15
mov r4,r14
DBG165:
call #__sdiv32
DBG166:
mov #0x0,r14
add r13,r14
addc r12,r5
DBG157:
; return z;
mov r14,r13
mov r5,r12
DBG167:
DBG158:
; EXIT
; .temp0 at stkloc 0 (0x0) size 12
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
ret
.dbgseg dbg_syms
.long 0x0
.long DBG29
.long 0xc
.long 0x0
.long 0x10002
.long 0x0
.long DBG30
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x2
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x784d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x794d52
.long 0x0
.long 0x0
.long 0x10002
DBG2:
.long 0x62622e
.long 0x0
.long DBG147
.long 0x0
.long 0x1640001
.long 0x0
.long 0x1
.long 0x0
.long DBG168
.long 0x0
.long 0x78
.long 0x0
.long 0xc0102
.long 0x24
.long 0x11ffff
.long 0x79
.long 0x0
.long 0xd0102
.long 0x4
.long 0x11ffff
.long 0x62652e
.long 0x0
.long DBG148
.long 0x0
.long 0x1640001
.long 0x0
.long 0x2
.long 0x0
.long 0x0
.long 0x0
DBG168:
.long 0x62622e
.long 0x0
.long DBG148
.long 0x0
.long 0x1640001
.long 0x0
.long 0x2
.long 0x0
.long DBG169
.long 0x0
.long 0x78
.long 0x0
.long 0x70102
.long 0x24
.long 0x11ffff
.long 0x79
.long 0x0
.long 0x90102
.long 0x4
.long 0x11ffff
DBG169:
.long 0x62622e
.long 0x0
.long DBG159
.long 0x0
.long 0x1640001
.long 0x0
.long 0xb
.long 0x0
.long DBG170
.long 0x0
.long 0x0
.long DBG171
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG160
.long 0x0
.long 0x1640001
.long 0x0
.long 0xb
.long 0x0
.long 0x0
.long 0x0
DBG170:
.long 0x62622e
.long 0x0
.long DBG150
.long 0x0
.long 0x1640001
.long 0x0
.long 0xb
.long 0x0
.long DBG172
.long 0x0
.long 0x3178
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x0
.long 0x0
.long 0x0
.long 0x0
.long 0x1000000
.long 0x3178
.long 0x0
.long 0xd0102
.long 0x5
.long 0x4ffff
DBG172:
.long 0x62622e
.long 0x0
.long DBG151
.long 0x0
.long 0x1640001
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -