📄 drawpicture.s
字号:
@@ Copyright 2002 Kenneth Guy,
@@
.global DrawPictureAsm__12RScreenUtilsPQ212RScreenUtils8TPicture
DrawPictureAsm__12RScreenUtilsPQ212RScreenUtils8TPicture:
@@ r0, TScreenUtils* this
@ 0 - iScreenBase
@@ r1, TDrawPicture*
@@ offset - 0 const TUint16* iData;
@@ offset - 4 TUint32 iXSize;
@@ offset - 8 TUint32 iYSize;
@@ offset - 12 TUint32 iXPos;
@@ offset - 16 TUint32 iYPos;
@@ X is in 2 pixel blocks, (ie one 32bit word), so 0-319
@@ Y is 0-199
@@ save registers and return address on full declining stack
stmfd sp!, {r0-r12,lr}
ldr r0,[r0] @ r0 = iScreenBase
ldmia r1,{r2,r3,r4,r5,r6} @ iData,iXSize,iYSize,iXPos,iYPos;
add r0,r0,r6,lsl#10 @ add iYPos*1280 to iScreenBase
add r0,r0,r6,lsl#8
add r0,r0,r5,lsl#2 @ iXPos*4
mov r7,r0 @ remember start of pixel line;
mov r9,#0
drawPictureAreaLineLoop:
mov r1,r3
drawPictureAreaPixelLoop:
ldr r8,[r2],#4
str r8,[r0],#4
subs r1,r1,#1
bne drawPictureAreaPixelLoop
add r7,r7,#1280
mov r0,r7
subs r4,r4,#1
bne drawPictureAreaLineLoop
ldmfd sp!, {r0-r12,lr}
bx lr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -