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

📄 main.s

📁 GBA躲壁球游戏
💻 S
📖 第 1 页 / 共 4 页
字号:
	.short	1	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	1	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	1	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	1	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	1	.short	0	.short	1	.short	1	.short	0	.short	1	.short	1	.short	0	.short	1	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	1	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	1	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	1	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	1	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	0	.short	1	.short	1	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	1	.short	1	.short	1	.short	1	.short	0	.short	0	.short	1	.short	1	.short	1	.short	1	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	1	.short	1	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	1	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	0	.short	0	.short	0	.short	1	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	0	.short	0	.short	0	.short	0	.short	0	.short	1	.short	1	.short	1	.short	0	.short	0	.short	0	.short	0	.global	videoBuffer	.align	2	.type	videoBuffer, %object	.size	videoBuffer, 4videoBuffer:	.word	100663296	.global	velX	.align	2	.type	velX, %object	.size	velX, 4velX:	.word	2	.global	velY	.align	2	.type	velY, %object	.size	velY, 4velY:	.word	1	.global	score1	.bss	.global	score1	.align	2	.type	score1, %object	.size	score1, 4score1:	.space	4	.global	score2	.global	score2	.align	2	.type	score2, %object	.size	score2, 4score2:	.space	4	.text	.align	2	.global	setMode	.type	setMode, %functionsetMode:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 0, uses_anonymous_args = 0	@ link register save eliminated.	orr	r0, r0, #1024	@  mode	mov	r3, #67108864	@ lr needed for prologue	str	r0, [r3, #0]	bx	lr	.size	setMode, .-setMode	.align	2	.global	drawbox	.type	drawbox, %functiondrawbox:	@ Function supports interworking.	@ args = 4, pretend = 0, frame = 0	@ frame_needed = 0, uses_anonymous_args = 0	stmfd	sp!, {r4, r5, r6, r7, r8, lr}	cmp	r1, r3	@  y,  bottom	mov	r5, r3	@  bottom	mov	r6, r0	@  left	mov	r4, r1	@  y,  top	mov	r0, r2	@  right	ldrsh	r3, [sp, #24]	@  color,  color	bge	.L15	ldr	r8, .L18	mov	r7, r3, asl #16	@  color	rsb	r1, r1, r1, asl #4	@  y,  y.L13:	cmp	r6, r0	@  x,  right	bge	.L17	add	r3, r6, r1, asl #4	@  x	ldr	r2, [r8, #0]	@  videoBuffer	mov	r3, r3, asl #1	mov	lr, r7, lsr #16	@  color	rsb	ip, r6, r0	@  x,  x,  right.L12:	subs	ip, ip, #1	@  x,  x	strh	lr, [r3, r2]	@ movhi 	@  color	add	r3, r3, #2	bne	.L12.L17:	add	r4, r4, #1	@  y,  y	cmp	r4, r5	@  y,  bottom	add	r1, r1, #15	blt	.L13.L15:	ldmfd	sp!, {r4, r5, r6, r7, r8, lr}	bx	lr.L19:	.align	2.L18:	.word	videoBuffer	.size	drawbox, .-drawbox	.align	2	.global	buttonPressed	.type	buttonPressed, %functionbuttonPressed:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 0, uses_anonymous_args = 0	@ link register save eliminated.	mov	r3, #67108864	ldr	r2, [r3, #304]	tst	r2, r0	@  button	movne	r0, #0	@  button	moveq	r0, #1	@  button	@ lr needed for prologue	bx	lr	.size	buttonPressed, .-buttonPressed	.align	2	.global	print	.type	print, %functionprint:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 4	@ frame_needed = 0, uses_anonymous_args = 0	stmfd	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}	ldrb	ip, [r2, #0]	@ zero_extendqisi2	@ * str	mov	r3, r3, asl #16	cmp	ip, #0	sub	sp, sp, #4	mov	r9, r2	@  str	mov	sl, r0	@  left	mov	r3, r3, asr #16	@  color	mov	r8, #0	@  pos	beq	.L41	rsb	r2, r1, r1, asl #4	@  top,  top	mov	r2, r2, asl #4	mov	r3, r3, asl #16	@  color	ldr	r5, .L46	ldr	r6, .L46+4	str	r2, [sp, #0]	mov	r4, r3, lsr #16	@  color.L39:	sub	r3, ip, #32	and	r3, r3, #255	@  letter	ldr	r1, [sp, #0]	mov	r7, r3, asl #3	@  letter	add	r9, r9, #1	@  str,  str	mov	r0, #0	@  y.L38:	add	r3, sl, r8	@  left,  pos	add	r3, r3, r1	add	r2, r7, r0	@  y	mov	r2, r2, asl #4	mov	ip, r3, asl #1	mov	lr, #0	@  x.L37:	ldrh	r3, [r2, r5]	@  draw,  font	cmp	r3, #0	@  draw	ldrne	r3, [r6, #0]	@  videoBuffer	add	lr, lr, #1	@  x,  x	strneh	r4, [ip, r3]	@ movhi 	@  color	cmp	lr, #7	@  x	add	r2, r2, #2	add	ip, ip, #2	ble	.L37	add	r0, r0, #1	@  y,  y	cmp	r0, #7	@  y	add	r1, r1, #240	ble	.L38	ldrb	ip, [r9, #0]	@ zero_extendqisi2	@ * str	cmp	ip, #0	add	r8, r8, #8	@  pos,  pos	bne	.L39.L41:	add	sp, sp, #4	ldmfd	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}	bx	lr.L47:	.align	2.L46:	.word	font	.word	videoBuffer	.size	print, .-print	.section	.rodata.str1.4,"aMS",%progbits,1	.align	2.LC0:	.ascii	"%i\000"	.text	.align	2	.global	printScores	.type	printScores, %functionprintScores:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 8	@ frame_needed = 1, uses_anonymous_args = 0	mov	ip, sp	stmfd	sp!, {r4, r5, r6, r7, r8, fp, ip, lr, pc}	sub	fp, ip, #4	sub	sp, sp, #12	mov	r4, #0	mov	r0, r4	mov	r1, r4	mov	r2, #20	mov	r3, #10	str	r4, [sp, #0]	bl	drawbox	mov	r1, r4	mov	r3, #10	mov	r0, #220	mov	r2, #239	ldr	r8, .L49	str	r4, [sp, #0]	bl	drawbox	ldr	r3, .L49+4	sub	r5, fp, #40	mov	r6, #65280	ldr	r2, [r3, #0]	@  score1	mov	r1, r8	ldr	r7, .L49+8	add	r6, r6, #255	mov	r0, r5	mov	lr, pc	bx	r7	mov	r3, r6	mov	r1, r4	mov	r2, r5	mov	r0, #5	bl	print	ldr	r3, .L49+12	mov	r1, r8	ldr	r2, [r3, #0]	@  score2	mov	r0, r5	mov	lr, pc	bx	r7	mov	r1, r4	mov	r2, r5	mov	r3, r6	mov	r0, #220	bl	print	ldmea	fp, {r4, r5, r6, r7, r8, fp, sp, lr}	bx	lr.L50:	.align	2.L49:	.word	.LC0	.word	score1	.word	sprintf	.word	score2	.size	printScores, .-printScores	.align	2	.global	eraseBall	.type	eraseBall, %functioneraseBall:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 1, uses_anonymous_args = 0	mov	ip, sp	stmfd	sp!, {fp, ip, lr, pc}	ldr	r3, .L52	sub	fp, ip, #4	sub	sp, sp, #4	ldr	r2, .L52+4	ldr	r0, [r3, #0]	@  ballX	ldr	r1, [r2, #0]	@  ballY	mov	ip, #0	add	r2, r0, #6	add	r3, r1, #6	str	ip, [sp, #0]	bl	drawbox	ldmea	fp, {fp, sp, lr}	bx	lr.L53:	.align	2.L52:	.word	ballX	.word	ballY	.size	eraseBall, .-eraseBall	.align	2	.global	updateBall	.type	updateBall, %functionupdateBall:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 0, uses_anonymous_args = 0	stmfd	sp!, {r4, r5, r6, r7, r8, lr}	ldr	ip, .L59	ldr	r4, .L59+4	ldr	r0, .L59+8	ldr	lr, [r4, #0]	@  velX	ldr	r1, [ip, #0]	@  ballX	ldr	r7, .L59+12	add	r1, r1, lr	ldr	r3, [r7, #0]	@  velY	ldr	r2, [r0, #0]	@  ballY	ldr	r6, .L59+16	cmp	r1, #233	add	r2, r2, r3	rsb	r5, r3, #0	ldrgt	r3, [r6, #0]	@  score1	rsb	lr, lr, #0	addgt	r3, r3, #1	str	r1, [ip, #0]	@  ballX	mov	ip, r1	strgt	lr, [r4, #0]	@  velX	strgt	r3, [r6, #0]	@  score1	cmp	ip, #0	str	r2, [r0, #0]	@  ballY	ldr	r8, .L59+20	sub	r0, r2, #12	ble	.L58.L56:	cmp	r0, #141	strhi	r5, [r7, #0]	@  velY	ldmfd	sp!, {r4, r5, r6, r7, r8, lr}	bx	lr.L58:	ldr	r3, [r4, #0]	@  velX	ldr	r2, [r8, #0]	@  score2	rsb	r3, r3, #0	add	r2, r2, #1	str	r3, [r4, #0]	@  velX	str	r2, [r8, #0]	@  score2	b	.L56.L60:	.align	2.L59:	.word	ballX	.word	velX	.word	ballY	.word	velY	.word	score1	.word	score2	.size	updateBall, .-updateBall	.align	2	.global	drawBall	.type	drawBall, %functiondrawBall:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 1, uses_anonymous_args = 0	mov	ip, sp	stmfd	sp!, {fp, ip, lr, pc}	ldr	r3, .L62	sub	fp, ip, #4	sub	sp, sp, #4	ldr	r2, .L62+4	ldr	r0, [r3, #0]	@  ballX	ldr	r1, [r2, #0]	@  ballY	mov	ip, #61440	add	ip, ip, #15	add	r2, r0, #6	add	r3, r1, #6	str	ip, [sp, #0]	bl	drawbox	ldmea	fp, {fp, sp, lr}	bx	lr.L63:	.align	2.L62:	.word	ballX	.word	ballY	.size	drawBall, .-drawBall	.align	2	.global	erasePaddle1	.type	erasePaddle1, %functionerasePaddle1:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 1, uses_anonymous_args = 0	mov	ip, sp	stmfd	sp!, {fp, ip, lr, pc}	ldr	r3, .L65	sub	fp, ip, #4	sub	sp, sp, #4	ldr	r2, .L65+4	ldr	r0, [r3, #4]	@  paddleX	ldr	r1, [r2, #4]	@  paddleY	mov	ip, #0	add	r2, r0, #8	add	r3, r1, #28	str	ip, [sp, #0]	bl	drawbox	ldmea	fp, {fp, sp, lr}	bx	lr.L66:	.align	2.L65:	.word	paddleX	.word	paddleY	.size	erasePaddle1, .-erasePaddle1	.align	2	.global	updatePaddle1	.type	updatePaddle1, %functionupdatePaddle1:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 0, uses_anonymous_args = 0	stmfd	sp!, {r4, lr}	ldr	r3, .L74	ldr	r0, .L74+4	ldr	r2, [r3, #0]	@  velX	ldr	r1, [r0, #4]	@  paddleY	cmp	r2, #0	add	ip, r1, #14	@  py	blt	.L73.L67:	ldmfd	sp!, {r4, lr}	bx	lr.L73:	ldr	r3, .L74+8	ldr	r2, [r3, #0]	@  ballX	cmp	r2, #119	ldr	lr, .L74+12	bgt	.L67	ldr	r4, [lr, #0]	@  ballY	cmp	ip, r4	@  py	sub	r2, r1, #1	ble	.L69	cmp	r2, #11	movle	r3, #12	str	r2, [r0, #4]	@  paddleY	strle	r3, [r0, #4]	@  paddleY.L69:	cmp	ip, r4	@  py	bge	.L67	ldr	r3, [r0, #4]	@  paddleY	add	r3, r3, #1	cmp	r3, #132	str	r3, [r0, #4]	@  paddleY	movgt	r3, #132	strgt	r3, [r0, #4]	@  paddleY	b	.L67.L75:	.align	2.L74:	.word	velX	.word	paddleY	.word	ballX	.word	ballY	.size	updatePaddle1, .-updatePaddle1	.align	2	.global	drawPaddle1	.type	drawPaddle1, %functiondrawPaddle1:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 1, uses_anonymous_args = 0	mov	ip, sp	stmfd	sp!, {fp, ip, lr, pc}	ldr	r3, .L77	sub	fp, ip, #4	sub	sp, sp, #4	ldr	r2, .L77+4	ldr	r0, [r3, #4]	@  paddleX	ldr	r1, [r2, #4]	@  paddleY	mov	ip, #65280	add	r2, r0, #8	add	r3, r1, #28	str	ip, [sp, #0]	bl	drawbox	ldmea	fp, {fp, sp, lr}	bx	lr.L78:	.align	2.L77:	.word	paddleX	.word	paddleY	.size	drawPaddle1, .-drawPaddle1	.align	2	.global	erasePaddle2	.type	erasePaddle2, %functionerasePaddle2:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 1, uses_anonymous_args = 0	mov	ip, sp	stmfd	sp!, {fp, ip, lr, pc}	ldr	r3, .L80	sub	fp, ip, #4	sub	sp, sp, #4	ldr	r2, .L80+4	ldr	r0, [r3, #8]	@  paddleX	ldr	r1, [r2, #8]	@  paddleY	mov	ip, #0	add	r2, r0, #8	add	r3, r1, #28	str	ip, [sp, #0]	bl	drawbox	ldmea	fp, {fp, sp, lr}	bx	lr.L81:	.align	2.L80:	.word	paddleX	.word	paddleY	.size	erasePaddle2, .-erasePaddle2	.align	2	.global	updatePaddle2	.type	updatePaddle2, %functionupdatePaddle2:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 1, uses_anonymous_args = 0	mov	ip, sp	stmfd	sp!, {fp, ip, lr, pc}	mov	r0, #64	sub	fp, ip, #4	bl	buttonPressed	mov	r3, r0	cmp	r3, #0	ldr	r1, .L87	mov	r0, #128	beq	.L83	ldr	r3, [r1, #8]	@  paddleY	sub	r2, r3, #2	cmp	r3, #10	strgt	r2, [r1, #8]	@  paddleY.L83:	bl	buttonPressed	cmp	r0, #0	ldr	r1, .L87	beq	.L82	ldr	r3, [r1, #8]	@  paddleY	add	r2, r3, #2	cmp	r3, #130	strle	r2, [r1, #8]	@  paddleY.L82:	ldmea	fp, {fp, sp, lr}	bx	lr.L88:	.align	2.L87:	.word	paddleY	.size	updatePaddle2, .-updatePaddle2	.align	2	.global	drawPaddle2	.type	drawPaddle2, %functiondrawPaddle2:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 1, uses_anonymous_args = 0	mov	ip, sp	stmfd	sp!, {fp, ip, lr, pc}	ldr	r3, .L90	sub	fp, ip, #4	sub	sp, sp, #4	ldr	r2, .L90+4	ldr	r0, [r3, #8]	@  paddleX	ldr	r1, [r2, #8]	@  paddleY	mov	ip, #65280	add	r2, r0, #8	add	r3, r1, #28	str	ip, [sp, #0]	bl	drawbox	ldmea	fp, {fp, sp, lr}	bx	lr.L91:	.align	2.L90:	.word	paddleX	.word	paddleY	.size	drawPaddle2, .-drawPaddle2	.align	2	.global	checkCollisions	.type	checkCollisions, %functioncheckCollisions:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 0, uses_anonymous_args = 0	stmfd	sp!, {r4, lr}	ldr	r3, .L95	ldr	lr, .L95+4	ldr	r2, [r3, #0]	@  ballY	ldr	ip, [lr, #0]	@  ballX	add	r2, r2, #3	@  y	ldr	r1, .L95+8	rsb	r2, r2, r2, asl #4	@  y,  y	add	r3, ip, #3	@  x	add	r3, r3, r2, asl #4	@  x	ldr	r0, [r1, #0]	@  videoBuffer	mov	r3, r3, asl #1	ldrh	r2, [r3, r0]	ldr	r4, .L95+12	cmp	r2, #0	ldrne	r3, [r4, #0]	@  velX	rsbne	r3, r3, #0	addne	r2, ip, r3	strne	r2, [lr, #0]	@  ballX	strne	r3, [r4, #0]	@  velX	ldmfd	sp!, {r4, lr}	bx	lr.L96:	.align	2.L95:	.word	ballY	.word	ballX	.word	videoBuffer	.word	velX	.size	checkCollisions, .-checkCollisions	.align	2	.global	waitRetrace	.type	waitRetrace, %functionwaitRetrace:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 0, uses_anonymous_args = 0	@ link register save eliminated.	@ lr needed for prologue	mov	r2, #67108864.L98:	ldrh	r3, [r2, #6]	cmp	r3, #160	bne	.L98	mov	r2, #67108864.L101:	ldrh	r3, [r2, #6]	cmp	r3, #160	beq	.L101	bx	lr	.size	waitRetrace, .-waitRetrace	.section	.rodata.str1.4	.align	2.LC1:	.ascii	"PONG\000"	.text	.align	2	.global	main	.type	main, %functionmain:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 1, uses_anonymous_args = 0	mov	ip, sp	stmfd	sp!, {r4, r5, r6, r7, r8, fp, ip, lr, pc}	sub	fp, ip, #4	sub	sp, sp, #4	mov	r0, #3	bl	setMode	ldr	ip, .L109	mov	lr, #117	str	lr, [ip, #0]	@  ballX	ldr	ip, .L109+4	mov	r6, #0	ldr	r7, .L109+8	ldr	r8, .L109+12	mov	r4, #40	str	r4, [ip, #0]	@  ballY	mov	r0, r6	mov	r1, r6	mov	r5, #66	mov	r2, #239	mov	r3, #159	mov	lr, #220	mov	ip, #10	str	lr, [r7, #8]	@  paddleX	str	r5, [r8, #8]	@  paddleY	str	ip, [r7, #4]	@  paddleX	str	r5, [r8, #4]	@  paddleY	str	r6, [sp, #0]	bl	drawbox	mov	r0, #104	mov	r1, #1	ldr	r2, .L109+16	mov	r3, #60928	bl	print.L108:	bl	waitRetrace	bl	eraseBall	bl	erasePaddle1	bl	erasePaddle2	bl	updatePaddle1	bl	updatePaddle2	bl	updateBall	bl	drawPaddle1	bl	drawPaddle2	bl	checkCollisions	bl	drawBall	bl	printScores	b	.L108.L110:	.align	2.L109:	.word	ballX	.word	ballY	.word	paddleX	.word	paddleY	.word	.LC1	.size	main, .-main	.align	2	.global	drawpixel	.type	drawpixel, %functiondrawpixel:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 0, uses_anonymous_args = 0	@ link register save eliminated.	ldr	r3, .L112	rsb	r1, r1, r1, asl #4	@  y,  y	add	r0, r0, r1, asl #4	@  x	ldr	r1, [r3, #0]	@  videoBuffer	mov	r0, r0, asl #1	@ lr needed for prologue	strh	r2, [r0, r1]	@ movhi 	bx	lr.L113:	.align	2.L112:	.word	videoBuffer	.size	drawpixel, .-drawpixel	.align	2	.global	getpixel	.type	getpixel, %functiongetpixel:	@ Function supports interworking.	@ args = 0, pretend = 0, frame = 0	@ frame_needed = 0, uses_anonymous_args = 0	@ link register save eliminated.	ldr	r3, .L115	rsb	r1, r1, r1, asl #4	@  y,  y	add	r0, r0, r1, asl #4	@  x	ldr	r2, [r3, #0]	@  videoBuffer	mov	r0, r0, asl #1	ldrh	r0, [r0, r2]	@  x	@ lr needed for prologue	bx	lr.L116:	.align	2.L115:	.word	videoBuffer	.size	getpixel, .-getpixel	.comm	paddleX, 12, 32	.comm	paddleY, 12, 32	.comm	ballX, 4, 32	.comm	ballY, 4, 32	.ident	"GCC: (GNU) 3.3.2"

⌨️ 快捷键说明

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