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

📄 tea-at90s8515.s

📁 SOSSE,最简单的实现smart卡的教学用程序 内有电路图
💻 S
字号:
	.file	"tea-avr.c"	.arch at90s8515__SREG__ = 0x3f__SP_H__ = 0x3e__SP_L__ = 0x3d__tmp_reg__ = 0__zero_reg__ = 1_PC_ = 2	.text.global	tea_func	.type	tea_func,@functiontea_func:/* prologue: frame size=0 */	push r12	push r13	push r14	push r15	push r16	push r17/* prologue end (size=6) *//*	r25:r24: &in	r23:r22: &sum	r21:r20: &k	(network byte order)*/	mov r31,r25	/* Setup address */	mov r30,r24	mov r12,r22	mov r13,r23	mov r23,r21	mov r22,r20	ld r14,Z	/* Load in */	ldd r15,Z+1	ldd r16,Z+2	ldd r17,Z+3	mov r21,r17	/* Copy in */	mov r20,r16	mov r19,r15	mov r18,r14	ldi r25,4	/* in<<4 */1:	lsl r18	rol r19	rol r20	rol r21	dec r25	brne 1b	mov r31,r23	/* Setup address */	mov r30,r22	ld r27,Z	/* Load k[0] (in network byte order) */	ldd r26,Z+1	ldd r25,Z+2	ldd r24,Z+3	add r18,r24	/* Add k[0] */	adc r19,r25	adc r20,r26	adc r21,r27	mov r31,r13	/* Setup address */	mov r30,r12	ld r24,Z	/* Load sum */	ldd r25,Z+1	ldd r26,Z+2	ldd r27,Z+3	add r24,r14	/* Add in */	adc r25,r15	adc r26,r16	adc r27,r17	eor r18,r24	/* xor */	eor r19,r25	eor r20,r26	eor r21,r27	ldi r24,5	/* in>>5 */1:	lsr r17	ror r16	ror r15	ror r14	dec r24	brne 1b	mov r31,r23	/* Setup address */	mov r30,r22	ldd r27,Z+4	/* Load k[2] (in network byte order) */	ldd r26,Z+5	ldd r25,Z+6	ldd r24,Z+7	add r14,r24	/* Add in>>5 */	adc r15,r25	adc r16,r26	adc r17,r27	eor r18,r14	/* xor */	eor r19,r15	eor r20,r16	eor r21,r17	mov r25,r21	/* return */	mov r24,r20	mov r23,r19	mov r22,r18/* epilogue: frame size=0 */	pop r17	pop r16	pop r15	pop r14	pop r13	pop r12	ret/* epilogue end (size=7) *//* function tea_func size 83 (70) */.Lfe1:	.size	tea_func,.Lfe1-tea_func.global	tea_enc	.type	tea_enc,@functiontea_enc:/* prologue: frame size=12 */	ldi r26,lo8(12)	ldi r27,hi8(12)	ldi r30,pm_lo8(.L_tea_enc_body)	ldi r31,pm_hi8(.L_tea_enc_body)	rjmp __prologue_saves__+22.L_tea_enc_body:/* prologue end (size=5) *//*	r25:r24 &v (network byte order)	r23:r22 &k (network byte order)*/	mov r16,r24	/* r17:r16 = &v */	mov r17,r25	mov r14,r22	/* r15:r14 = &k */	mov r15,r23	std Y+1,__zero_reg__	std Y+2,__zero_reg__	std Y+3,__zero_reg__	std Y+4,__zero_reg__	mov r31,r17	/* Z = &v */	mov r30,r16	ld r27,Z	ldd r26,Z+1	ldd r25,Z+2	ldd r24,Z+3	std Y+9,r24	std Y+10,r25	std Y+11,r26	std Y+12,r27	ldd r27,Z+4	ldd r26,Z+5	ldd r25,Z+6	ldd r24,Z+7	std Y+5,r24	std Y+6,r25	std Y+7,r26	std Y+8,r27	ldi r18,lo8(31)	mov r13,r18.L5:	ldd r24,Y+1	ldd r25,Y+2	ldd r26,Y+3	ldd r27,Y+4	subi r24,lo8(-(-1640531527))	sbci r25,hi8(-(-1640531527))	sbci r26,hlo8(-(-1640531527))	sbci r27,hhi8(-(-1640531527))	std Y+1,r24	std Y+2,r25	std Y+3,r26	std Y+4,r27	mov r21,r15	mov r20,r14	mov r22,r28	mov r23,r29	subi r22,lo8(-(1))	sbci r23,hi8(-(1))	mov r24,r28	mov r25,r29	adiw r24,5	rcall tea_func	mov r18,r22	mov r19,r23	mov r20,r24	mov r21,r25	ldd r24,Y+9	ldd r25,Y+10	ldd r26,Y+11	ldd r27,Y+12	add r24,r18	adc r25,r19	adc r26,r20	adc r27,r21	std Y+9,r24	std Y+10,r25	std Y+11,r26	std Y+12,r27	mov r21,r15	mov r20,r14	subi r20,lo8(-(8))	sbci r21,hi8(-(8))	mov r22,r28	mov r23,r29	subi r22,lo8(-(1))	sbci r23,hi8(-(1))	mov r24,r28	mov r25,r29	adiw r24,9	rcall tea_func	mov r27,r25	mov r26,r24	mov r25,r23	mov r24,r22	ldd r18,Y+5	ldd r19,Y+6	ldd r20,Y+7	ldd r21,Y+8	add r18,r24	adc r19,r25	adc r20,r26	adc r21,r27	std Y+5,r18	std Y+6,r19	std Y+7,r20	std Y+8,r21	mov r24,r13	dec r13	tst r24	breq _PC_+2	rjmp .L5	ldd r24,Y+9	ldd r25,Y+10	ldd r26,Y+11	ldd r27,Y+12	mov r31,r17	mov r30,r16	st Z,r27	std Z+1,r26	std Z+2,r25	std Z+3,r24	std Z+4,r21	std Z+5,r20	std Z+6,r19	std Z+7,r18/* epilogue: frame size=12 */	ldi r30,7	subi r28,-12	rjmp __epilogue_restores__+22/* epilogue end (size=3) *//* function tea_enc size 121 (113) */.Lfe2:	.size	tea_enc,.Lfe2-tea_enc.global	tea_dec	.type	tea_dec,@functiontea_dec:/* prologue: frame size=12 */	ldi r26,lo8(12)	ldi r27,hi8(12)	ldi r30,pm_lo8(.L_tea_dec_body)	ldi r31,pm_hi8(.L_tea_dec_body)	rjmp __prologue_saves__+22.L_tea_dec_body:/* prologue end (size=5) *//*	r25:r24 &v (network byte order)	r23:r22 &k (network byte order)*/	mov r16,r24	/* r17:r16 = &v */	mov r17,r25	mov r14,r22	/* r15:r14 = &k */	mov r15,r23	ldi r24,lo8(-957401312)	ldi r25,hi8(-957401312)	ldi r26,hlo8(-957401312)	ldi r27,hhi8(-957401312)	std Y+1,r24	std Y+2,r25	std Y+3,r26	std Y+4,r27	mov r31,r17	mov r30,r16	ld r27,Z	ldd r26,Z+1	ldd r25,Z+2	ldd r24,Z+3	std Y+5,r24	std Y+6,r25	std Y+7,r26	std Y+8,r27	ldd r27,Z+4	ldd r26,Z+5	ldd r25,Z+6	ldd r24,Z+7	std Y+9,r24	std Y+10,r25	std Y+11,r26	std Y+12,r27	ldi r19,lo8(31)	mov r13,r19.L11:	mov r21,r15	mov r20,r14	subi r20,lo8(-(8))	sbci r21,hi8(-(8))	mov r22,r28	mov r23,r29	subi r22,lo8(-(1))	sbci r23,hi8(-(1))	mov r24,r28	mov r25,r29	adiw r24,5	rcall tea_func	mov r18,r22	mov r19,r23	mov r20,r24	mov r21,r25	ldd r24,Y+9	ldd r25,Y+10	ldd r26,Y+11	ldd r27,Y+12	sub r24,r18	sbc r25,r19	sbc r26,r20	sbc r27,r21	std Y+9,r24	std Y+10,r25	std Y+11,r26	std Y+12,r27	mov r21,r15	mov r20,r14	mov r22,r28	mov r23,r29	subi r22,lo8(-(1))	sbci r23,hi8(-(1))	mov r24,r28	mov r25,r29	adiw r24,9	rcall tea_func	mov r27,r25	mov r26,r24	mov r25,r23	mov r24,r22	ldd r18,Y+5	ldd r19,Y+6	ldd r20,Y+7	ldd r21,Y+8	sub r18,r24	sbc r19,r25	sbc r20,r26	sbc r21,r27	std Y+5,r18	std Y+6,r19	std Y+7,r20	std Y+8,r21	ldd r24,Y+1	ldd r25,Y+2	ldd r26,Y+3	ldd r27,Y+4	subi r24,lo8(-(1640531527))	sbci r25,hi8(-(1640531527))	sbci r26,hlo8(-(1640531527))	sbci r27,hhi8(-(1640531527))	std Y+1,r24	std Y+2,r25	std Y+3,r26	std Y+4,r27	mov r24,r13	dec r13	tst r24	breq _PC_+2	rjmp .L11	mov r31,r17	mov r30,r16	st Z,r21	std Z+1,r20	std Z+2,r19	std Z+3,r18	ldd r24,Y+9	ldd r25,Y+10	ldd r26,Y+11	ldd r27,Y+12	std Z+4,r27	std Z+5,r26	std Z+6,r25	std Z+7,r24/* epilogue: frame size=12 */	ldi r30,7	subi r28,-12	rjmp __epilogue_restores__+22/* epilogue end (size=3) *//* function tea_dec size 125 (117) */.Lfe3:	.size	tea_dec,.Lfe3-tea_dec/* File tea-avr.c: code  329 = 0x0149 ( 300), prologues  16, epilogues  13 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -