📄 sd16.asm
字号:
.long 0x0
.long 0xc
.long 0x0
.long DBG173
.long 0x0
.long 0x3178
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x3178
.long 0x0
.long 0x80102
.long 0x5
.long 0x104ffff
.long 0x3178
.long 0x0
.long 0xd0102
.long 0x5
.long 0x4ffff
.long 0x62652e
.long 0x0
.long DBG152
.long 0x0
.long 0x1640001
.long 0x0
.long 0xd
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG152
.long 0x0
.long 0x1640001
.long 0x0
.long 0xd
.long 0x0
.long 0x0
.long 0x0
DBG173:
.long 0x62622e
.long 0x0
.long DBG152
.long 0x0
.long 0x1640001
.long 0x0
.long 0xd
.long 0x0
.long DBG174
.long 0x0
.long 0x3178
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x3178
.long 0x0
.long 0x80102
.long 0x5
.long 0x104ffff
.long 0x3178
.long 0x0
.long 0x60102
.long 0x5
.long 0x4ffff
DBG174:
.long 0x62622e
.long 0x0
.long DBG161
.long 0x0
.long 0x1640001
.long 0x0
.long 0xe
.long 0x0
.long DBG175
.long 0x0
.long 0x0
.long DBG171
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG162
.long 0x0
.long 0x1640001
.long 0x0
.long 0xe
.long 0x0
.long 0x0
.long 0x0
DBG175:
.long 0x62622e
.long 0x0
.long DBG153
.long 0x0
.long 0x1640001
.long 0x0
.long 0xe
.long 0x0
.long DBG176
.long 0x0
.long 0x7a
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x0
.long 0x0
.long 0x0
.long 0x0
.long 0x1000000
.long 0x7a
.long 0x0
.long 0x50102
.long 0x5
.long 0x4ffff
DBG176:
.long 0x62622e
.long 0x0
.long DBG163
.long 0x0
.long 0x1640001
.long 0x0
.long 0xf
.long 0x0
.long DBG177
.long 0x0
.long 0x0
.long DBG171
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG164
.long 0x0
.long 0x1640001
.long 0x0
.long 0xf
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG156
.long 0x0
.long 0x1640001
.long 0x0
.long 0x11
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG156
.long 0x0
.long 0x1640001
.long 0x0
.long 0x11
.long 0x0
.long 0x0
.long 0x0
DBG177:
.long 0x62622e
.long 0x0
.long DBG156
.long 0x0
.long 0x1640001
.long 0x0
.long 0x11
.long 0x0
.long DBG178
.long 0x0
.long 0x3178
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x3178
.long 0x0
.long 0xf0102
.long 0x5
.long 0x104ffff
.long 0x3178
.long 0x0
.long 0xd0102
.long 0x5
.long 0x4ffff
.long 0x7a
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x0
.long 0x0
.long 0x0
.long 0x0
.long 0x1000000
.long 0x7a
.long 0x0
.long 0x50102
.long 0x5
.long 0x4ffff
DBG178:
.long 0x62622e
.long 0x0
.long DBG165
.long 0x0
.long 0x1640001
.long 0x0
.long 0x12
.long 0x0
.long DBG179
.long 0x0
.long 0x0
.long DBG171
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG166
.long 0x0
.long 0x1640001
.long 0x0
.long 0x12
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG157
.long 0x0
.long 0x1640001
.long 0x0
.long 0x12
.long 0x0
.long 0x0
.long 0x0
DBG179:
.long 0x62622e
.long 0x0
.long DBG157
.long 0x0
.long 0x1640001
.long 0x0
.long 0x12
.long 0x0
.long DBG180
.long 0x0
.long 0x7a
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x7a
.long 0x0
.long 0x50102
.long 0x5
.long 0x104ffff
.long 0x7a
.long 0x0
.long 0xe0102
.long 0x5
.long 0x4ffff
.long 0x62652e
.long 0x0
.long DBG158
.long 0x0
.long 0x1640001
.long 0x0
.long 0x13
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG158
.long 0x0
.long 0x1640001
.long 0x0
.long 0x13
.long 0x0
.long 0x0
.long 0x0
.long 0x66652e
.long 0x0
.long DBG167
.long 0x0
.long 0x1650001
.long 0x0
.long 0xfc
.long 0x0
.long 0x0
.long 0x0
.pseg SD16_code
DBG143:
.dbgseg dbg_syms
.long 0x34766964
.long 0x38
.long DBG143
.long 0x0
.long 0xff0001
; }
; int32_t isqrt32(register int32_t h)
DBG142:
.long 0x72717369
.long 0x323374
.long _isqrt32
.long 0x45
.long 0x1020001
.long DBG146
.long DBG182-DBG183
.long DBG184
.long DBG181
.long 0x0
.pseg SD16_code
DBG183:
.dbgseg dbg_syms
DBG146:
.long 0x66622e
.long 0x0
.long DBG183
.long 0x0
.long 0x1650001
.long 0x0
.long 0xfe
.long 0x0
.long DBG185
.long 0x0
.dbgseg dbg_line
DBG184:
.long DBG142
.long 0x0
.long _isqrt32
.long 0x1
.long DBG187
.long 0x2
.long DBG188
.long 0xb
.long DBG189
.long 0xc
.long DBG190
.long 0xe
.long DBG191
.long 0xf
.long DBG192
.long 0x10
.long DBG193
.long 0x11
.long DBG194
.long 0x12
.long DBG195
.long 0x13
.long DBG196
.long 0x14
.long DBG197
.long 0x15
.long DBG198
.long 0x16
.long DBG199
.long 0x17
.long DBG200
.long 0x18
.long DBG201
.long 0x19
.long DBG202
.long 0x1a
.long DBG203
.long 0x1b
.long DBG204
.long 0x1c
.long DBG205
.long 0x1d
.long DBG206
.long 0x1e
.long DBG207
.long 0x1f
.long DBG208
.long 0x20
.long DBG209
.long 0x21
.long DBG210
.long 0x22
.long DBG211
.long 0x23
.long DBG212
.long 0x25
.long DBG213
.long 0x26
.pseg SD16_code
.global _isqrt32
_isqrt32:
push r9
push r10
push r11
DBG188:
DBG187:
DBG186:
; ENTRY
; h at argloc 0 (0x0) in reg r12(2) size 4
; x in reg r14(2) size 4
; y in reg r10(2) size 4
; i in reg r9 size 2
; {
; register int32_t x;
; register int32_t y;
; register int i;
; x =
mov #0x0,r11
mov #0x0,r10
mov r11,r15
mov r10,r14
DBG189:
; y = 0;
; i = 32;
mov #0x20,r9
DBG190:
; /$
sqrt10
DBG191:
setc
DBG192:
rlc r15
DBG193:
rlc r14
DBG194:
sub r15,r11
DBG195:
subc r14,r10
DBG196:
jhs sqrt12
DBG197:
add r15,r11
DBG198:
addc r14,r10
DBG199:
sub #2,r15
DBG200:
sqrt12
DBG201:
inc r15
DBG202:
rla r13
DBG203:
rlc r12
DBG204:
rlc r11
DBG205:
rlc r10
DBG206:
rla r13
DBG207:
rlc r12
DBG208:
rlc r11
DBG209:
rlc r10
DBG210:
dec r9
DBG211:
jne sqrt10
DBG212:
; $/
; return x;
mov r15,r13
mov r14,r12
DBG214:
DBG213:
; EXIT
; .temp1 at stkloc 0 (0x0) size 6
pop r11
pop r10
pop r9
ret
.dbgseg dbg_syms
.long 0x0
.long DBG29
.long 0x6
.long 0x0
.long 0x10002
.long 0x0
.long DBG30
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x1
.long 0x0
.long 0x10002
.long 0x41505f5f
.long 0x684d52
.long 0x0
.long 0x0
.long 0x10002
.long 0x68
.long 0x0
.long 0xc0202
.long 0x5
.long 0x11ffff
.long 0x78
.long 0x0
.long 0xe0202
.long 0x5
.long 0x4ffff
.long 0x79
.long 0x0
.long 0xa0202
.long 0x5
.long 0x4ffff
.long 0x69
.long 0x0
.long 0x90102
.long 0x4
.long 0x4ffff
.long 0x66652e
.long 0x0
.long DBG214
.long 0x0
.long 0x1650001
.long 0x0
.long 0x123
.long 0x0
.long 0x0
.long 0x0
.pseg SD16_code
DBG182:
.dbgseg dbg_syms
.long 0x72717369
.long 0x323374
.long DBG182
.long 0x0
.long 0xff0001
; }
; int32_t div_sh48(register int16_t x[3], int sh, register int16_t y)
DBG181:
.long 0x5f766964
.long 0x38346873
.long _div_sh48
.long 0x45
.long 0x1020001
.long DBG185
.long DBG216-DBG217
.long DBG218
.long DBG215
.long 0x0
.pseg SD16_code
DBG217:
.dbgseg dbg_syms
DBG185:
.long 0x66622e
.long 0x0
.long DBG217
.long 0x0
.long 0x1650001
.long 0x0
.long 0x125
.long 0x0
.long DBG219
.long 0x0
.dbgseg dbg_line
DBG218:
.long DBG181
.long 0x0
.long _div_sh48
.long 0x1
.long DBG221
.long 0x2
.long DBG222
.long 0xe
.long DBG223
.long 0xf
.long DBG224
.long 0x10
.long DBG225
.long 0x12
.long DBG226
.long 0x13
.long DBG227
.long 0x14
.long DBG228
.long 0x15
.long DBG229
.long 0x17
.long DBG230
.long 0x18
.long DBG231
.long 0x19
.long DBG232
.long 0x1b
.long DBG235
.long 0x1e
.long DBG236
.long 0x1f
.long DBG237
.long 0x20
.long DBG238
.long 0x22
.long DBG239
.long 0x23
.long DBG240
.long 0x24
.long DBG241
.long 0x26
.long DBG242
.long 0x27
.long DBG243
.long 0x28
.long DBG244
.long 0x29
.long DBG245
.long 0x2a
.long DBG246
.long 0x2b
.long DBG247
.long 0x2c
.long DBG248
.long 0x2d
.long DBG249
.long 0x2e
.long DBG250
.long 0x2f
.long DBG251
.long 0x30
.long DBG252
.long 0x31
.pseg SD16_code
.global _div_sh48
_div_sh48:
push r4
push r5
push r6
push r7
push r8
push r9
push r10
push r11
DBG222:
DBG221:
DBG220:
; ENTRY
; x at argloc 0 (0x0) in reg size 2
; sh at argloc 0 (0x0) in reg size 2
; y at argloc 0 (0x0) in reg size 2
; x1 in reg size 4
; z in reg size 4
; xx0 in reg r11 size 2
; xx1 in reg r10 size 2
; xx2 in reg r9 size 2
; {
; int32_t x1;
; int32_t z;
; register int16_t xx0;
; register int16_t xx1;
; register int16_t xx2;
; xx0 = x[0];
mov @r12,r11
DBG223:
; xx1 = x[1];
mov 0x2(r12),r10
DBG224:
; xx2 = x[2];
mov 0x4(r12),r9
DBG225:
; if (sh > 0)
mov #0x0,r12
cmp r13,r12
jge div_sh48_L1
DBG227:
DBG226:
; {
; while (sh--)
div_sh48_L2:
mov r13,r12
sub #0x1,r13
cmp #0x0,r12
jeq div_sh48_L4
DBG229:
DBG228:
; {
; /$
rla r11
DBG230:
rlc r10
DBG231:
rlc r9
DBG232:
; $/
jmp div_sh48_L2
div_sh48_L1:
; else
; {
DBG235:
; while (sh++)
DBG236:
div_sh48_L5:
mov r13,r12
add #0x1,r13
cmp #0x0,r12
jeq div_sh48_L6
DBG238:
DBG237:
; {
; /$
rra r9
DBG239:
rrc r10
DBG240:
rrc r11
DBG241:
; $/
jmp div_sh48_L5
div_sh48_L6:
; }
DBG242:
div_sh48_L4:
; }
; x1 = xx2%y;
DBG243:
mov r14,r13
mov r9,r12
DBG253:
call #__sdiv16
DBG254:
mov r13,r6
cmp #0x0,r6
jge div_sh48_LL2
div_sh48_LL2:
; x1 <<= 16;
DBG244:
mov #0x0,r5
DBG245:
; x1 |= (uint16_t) xx1;
mov #0x0,r12
bis r10,r5
bis r12,r6
DBG246:
; z = x1/y;
mov r14,r7
mov #0x0,r4
cmp #0x0,r7
jge div_sh48_LL3
mov #-0x1,r4
div_sh48_LL3:
mov r5,r13
mov r6,r12
mov r7,r15
mov r4,r14
DBG255:
call #__sdiv32
DBG256:
mov r13,r8
DBG247:
; x1 = x1%y;
mov r5,r13
mov r6,r12
mov r7,r15
mov r4,r14
DBG257:
call #__sdiv32
DBG248:
DBG258:
; x1 <<= 16;
mov #0x0,r13
DBG249:
; x1 |= (uint16_t) xx0;
mov #0x0,r12
bis r11,r13
bis r12,r15
DBG250:
; z = (z << 16) + x1/y;
mov r15,r12
mov r7,r15
mov r4,r14
DBG259:
call #__sdiv32
DBG260:
mov #0x0,r14
add r13,r14
addc r12,r8
DBG251:
; return z;
mov r14,r13
mov r8,r12
DBG261:
DBG252:
; EXIT
; .temp2 at stkloc 0 (0x0) size 16
pop r11
pop r10
pop r9
pop r8
pop r7
pop r6
pop r5
pop r4
ret
.dbgseg dbg_syms
.long 0x0
.long DBG29
.long 0x10
.long 0x0
.long 0x10002
.long 0x0
.long DBG30
.long 0x2
.long 0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -