⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sd16.asm

📁 FE42X单相防窃电电表DEMO(编译器 AQ430 AQ430 V2.0.6.5)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.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 + -