오늘은 다하고 나니 약 4시네여.. 힘들당;
잘 자요..
짤이 아직도 안올라가는데 나만 그럼?;;
잘 자요..
짤이 아직도 안올라가는데 나만 그럼?;;
[원본코드]
020A9838 E3540000 cmp r4,#0x0 //r4=00000000
020A983C 0A04A82B beq #0X20A9854
....
020A9854 E3A01008 mov r1,#0x8
020A9858 E3540000 cmp r4,#0x0
020A985C A3A0100C movge r1,#0xC
020A9860 E5950008 ldr r0,[r5,#0x8]
020A9864 E3540000 cmp r4,#0x0
020A9868 E0800001 add r0,r0,r1
020A986C E5850008 str r0,[r5,#0x8]
....
020A8E74 E1A01F01 mov r1,r1,lsl #0x1E
....
020A8E7C E1A01EA1 mov r1,r1,lsr #0x1D
[수정코드]
020A9838 E3540000 cmp r4,#0x0
020A983C 0A04A82B beq #0x21D38F0 //새롭게 작성한 공간으로 점프
....
021D38F0 E3A01008 mov r1,#0x8
021D38F4 E3540000 cmp r4,#0x0
021D38F8 A3A01005 movge r1,#0x4 //2바이트만 그려주기 위해
021D38FC E5950008 ldr r0,[r5,#0x8]
021D3900 E0800001 add r0,r0,r1
021D3904 EAFB57D8 b #0x20A986C
.....
020A8E74 E1A01F01 mov r1,r1,lsl #0x1E
.....
020A8E7C E3A01000 mov r1,#0x0
//원본코드에서 연산을 하면 항상 0의 값을 가지는데
반각처리시 예외값을 가지므로 항상0이 되도록 수정.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
020A8E5C E5906010 ldr r6,[r0,#0x10] //r6=그려줄 주소(offset)
020A8E60 E1A05144 mov r5,r4,asr #0x2
020A8E64 E0866141 add r6,r6,r1,asr #0x2
// 다음주소:3바이트씩 더해주는 방식
R1=#0xC의 배수
반각사용시 수정해서 2바이트만 공백으로 처리
C asr #0x2 = 3 //뒤에 2개비트는 떨어짐.
18 asr #0x2 = 6
24 asr #0x2 = 9
댓글 0