Что-то надо с этим делать.
Попутно ещё вопрос: что это за хрень получается из memcpy()?
Я думал, он умнее меня сможет блоки перекидать, а он вон чего творит...
Или я чего-то не понял...
Код
00004f5c <memcpy>:
4f5c: 0b 12 push r11;
4f5e: 0a 12 push r10;
4f60: 0a 4f mov r15, r10;
4f62: 0b 4d mov r13, r11;
4f64: 0d 4f mov r15, r13;
4f66: 0c 4e mov r14, r12;
4f68: 0b 93 cmp #0, r11;r3 As==00
4f6a: 5e 24 jz $+190;abs 0x5028
4f6c: 0f 9e cmp r14, r15;
4f6e: 5c 24 jz $+186;abs 0x5028
4f70: 0f 9e cmp r14, r15;
4f72: 2b 2c jc $+88 ;abs 0x4fca
4f74: 0f 4e mov r14, r15;
4f76: 0f da bis r10, r15;
4f78: 1f f3 and #1, r15;r3 As==01
4f7a: 0e 24 jz $+30 ;abs 0x4f98
4f7c: 0f 4e mov r14, r15;
4f7e: 0f ea xor r10, r15;
4f80: 1f f3 and #1, r15;r3 As==01
4f82: 02 20 jnz $+6 ;abs 0x4f88
4f84: 2b 93 cmp #2, r11;r3 As==10
4f86: 1c 2c jc $+58 ;abs 0x4fc0
4f88: 0e 4b mov r11, r14;
4f8a: 0b 8e sub r14, r11;
4f8c: ed 4c 00 00 mov.b @r12, 0(r13);
4f90: 1c 53 inc r12;
4f92: 1d 53 inc r13;
4f94: 3e 53 add #-1, r14;r3 As==11
4f96: fa 23 jnz $-10 ;abs 0x4f8c
4f98: 0e 4b mov r11, r14;
4f9a: 12 c3 clrc
4f9c: 0e 10 rrc r14;
4f9e: 0e 93 cmp #0, r14;r3 As==00
4fa0: 05 24 jz $+12 ;abs 0x4fac
4fa2: bd 4c 00 00 mov @r12+, 0(r13);
4fa6: 2d 53 incd r13;
4fa8: 3e 53 add #-1, r14;r3 As==11
4faa: fb 23 jnz $-8 ;abs 0x4fa2
4fac: 0e 4b mov r11, r14;
4fae: 1e f3 and #1, r14;r3 As==01
4fb0: 3b 24 jz $+120;abs 0x5028
4fb2: ed 4c 00 00 mov.b @r12, 0(r13);
4fb6: 1c 53 inc r12;
4fb8: 1d 53 inc r13;
4fba: 3e 53 add #-1, r14;r3 As==11
4fbc: fa 23 jnz $-10 ;abs 0x4fb2
4fbe: 34 3c jmp $+106;abs 0x5028
4fc0: 0f 4e mov r14, r15;
4fc2: 1f f3 and #1, r15;r3 As==01
4fc4: 2e 43 mov #2, r14;r3 As==10
4fc6: 0e 8f sub r15, r14;
4fc8: e0 3f jmp $-62 ;abs 0x4f8a
4fca: 0c 4e mov r14, r12;
4fcc: 0c 5b add r11, r12;
4fce: 0d 4f mov r15, r13;
4fd0: 0d 5b add r11, r13;
4fd2: 0f 4c mov r12, r15;
4fd4: 0f dd bis r13, r15;
4fd6: 1f f3 and #1, r15;r3 As==01
4fd8: 0f 24 jz $+32 ;abs 0x4ff8
4fda: 0f 4c mov r12, r15;
4fdc: 0f ed xor r13, r15;
4fde: 1f f3 and #1, r15;r3 As==01
4fe0: 03 20 jnz $+8 ;abs 0x4fe8
4fe2: 3b 90 03 00 cmp #3, r11;#0x0003
4fe6: 1d 2c jc $+60 ;abs 0x5022
4fe8: 0e 4b mov r11, r14;
4fea: 0b 8e sub r14, r11;
4fec: 3d 53 add #-1, r13;r3 As==11
4fee: 3c 53 add #-1, r12;r3 As==11
4ff0: ed 4c 00 00 mov.b @r12, 0(r13);
4ff4: 3e 53 add #-1, r14;r3 As==11
4ff6: fa 23 jnz $-10 ;abs 0x4fec
4ff8: 0e 4b mov r11, r14;
4ffa: 12 c3 clrc
4ffc: 0e 10 rrc r14;
4ffe: 0e 93 cmp #0, r14;r3 As==00
5000: 06 24 jz $+14 ;abs 0x500e
5002: 2c 83 decd r12;
5004: 2d 83 decd r13;
5006: ad 4c 00 00 mov @r12, 0(r13);
500a: 3e 53 add #-1, r14;r3 As==11
500c: fa 23 jnz $-10 ;abs 0x5002
500e: 0e 4b mov r11, r14;
5010: 1e f3 and #1, r14;r3 As==01
5012: 0a 24 jz $+22 ;abs 0x5028
5014: 3d 53 add #-1, r13;r3 As==11
5016: 3c 53 add #-1, r12;r3 As==11
5018: ed 4c 00 00 mov.b @r12, 0(r13);
501c: 3e 53 add #-1, r14;r3 As==11
501e: fa 23 jnz $-10 ;abs 0x5014
5020: 03 3c jmp $+8 ;abs 0x5028
5022: 0e 4c mov r12, r14;
5024: 1e f3 and #1, r14;r3 As==01
5026: e1 3f jmp $-60 ;abs 0x4fea
5028: 0f 4a mov r10, r15;
502a: 3a 41 pop r10;
502c: 3b 41 pop r11;
502e: 30 41 ret
4f5c: 0b 12 push r11;
4f5e: 0a 12 push r10;
4f60: 0a 4f mov r15, r10;
4f62: 0b 4d mov r13, r11;
4f64: 0d 4f mov r15, r13;
4f66: 0c 4e mov r14, r12;
4f68: 0b 93 cmp #0, r11;r3 As==00
4f6a: 5e 24 jz $+190;abs 0x5028
4f6c: 0f 9e cmp r14, r15;
4f6e: 5c 24 jz $+186;abs 0x5028
4f70: 0f 9e cmp r14, r15;
4f72: 2b 2c jc $+88 ;abs 0x4fca
4f74: 0f 4e mov r14, r15;
4f76: 0f da bis r10, r15;
4f78: 1f f3 and #1, r15;r3 As==01
4f7a: 0e 24 jz $+30 ;abs 0x4f98
4f7c: 0f 4e mov r14, r15;
4f7e: 0f ea xor r10, r15;
4f80: 1f f3 and #1, r15;r3 As==01
4f82: 02 20 jnz $+6 ;abs 0x4f88
4f84: 2b 93 cmp #2, r11;r3 As==10
4f86: 1c 2c jc $+58 ;abs 0x4fc0
4f88: 0e 4b mov r11, r14;
4f8a: 0b 8e sub r14, r11;
4f8c: ed 4c 00 00 mov.b @r12, 0(r13);
4f90: 1c 53 inc r12;
4f92: 1d 53 inc r13;
4f94: 3e 53 add #-1, r14;r3 As==11
4f96: fa 23 jnz $-10 ;abs 0x4f8c
4f98: 0e 4b mov r11, r14;
4f9a: 12 c3 clrc
4f9c: 0e 10 rrc r14;
4f9e: 0e 93 cmp #0, r14;r3 As==00
4fa0: 05 24 jz $+12 ;abs 0x4fac
4fa2: bd 4c 00 00 mov @r12+, 0(r13);
4fa6: 2d 53 incd r13;
4fa8: 3e 53 add #-1, r14;r3 As==11
4faa: fb 23 jnz $-8 ;abs 0x4fa2
4fac: 0e 4b mov r11, r14;
4fae: 1e f3 and #1, r14;r3 As==01
4fb0: 3b 24 jz $+120;abs 0x5028
4fb2: ed 4c 00 00 mov.b @r12, 0(r13);
4fb6: 1c 53 inc r12;
4fb8: 1d 53 inc r13;
4fba: 3e 53 add #-1, r14;r3 As==11
4fbc: fa 23 jnz $-10 ;abs 0x4fb2
4fbe: 34 3c jmp $+106;abs 0x5028
4fc0: 0f 4e mov r14, r15;
4fc2: 1f f3 and #1, r15;r3 As==01
4fc4: 2e 43 mov #2, r14;r3 As==10
4fc6: 0e 8f sub r15, r14;
4fc8: e0 3f jmp $-62 ;abs 0x4f8a
4fca: 0c 4e mov r14, r12;
4fcc: 0c 5b add r11, r12;
4fce: 0d 4f mov r15, r13;
4fd0: 0d 5b add r11, r13;
4fd2: 0f 4c mov r12, r15;
4fd4: 0f dd bis r13, r15;
4fd6: 1f f3 and #1, r15;r3 As==01
4fd8: 0f 24 jz $+32 ;abs 0x4ff8
4fda: 0f 4c mov r12, r15;
4fdc: 0f ed xor r13, r15;
4fde: 1f f3 and #1, r15;r3 As==01
4fe0: 03 20 jnz $+8 ;abs 0x4fe8
4fe2: 3b 90 03 00 cmp #3, r11;#0x0003
4fe6: 1d 2c jc $+60 ;abs 0x5022
4fe8: 0e 4b mov r11, r14;
4fea: 0b 8e sub r14, r11;
4fec: 3d 53 add #-1, r13;r3 As==11
4fee: 3c 53 add #-1, r12;r3 As==11
4ff0: ed 4c 00 00 mov.b @r12, 0(r13);
4ff4: 3e 53 add #-1, r14;r3 As==11
4ff6: fa 23 jnz $-10 ;abs 0x4fec
4ff8: 0e 4b mov r11, r14;
4ffa: 12 c3 clrc
4ffc: 0e 10 rrc r14;
4ffe: 0e 93 cmp #0, r14;r3 As==00
5000: 06 24 jz $+14 ;abs 0x500e
5002: 2c 83 decd r12;
5004: 2d 83 decd r13;
5006: ad 4c 00 00 mov @r12, 0(r13);
500a: 3e 53 add #-1, r14;r3 As==11
500c: fa 23 jnz $-10 ;abs 0x5002
500e: 0e 4b mov r11, r14;
5010: 1e f3 and #1, r14;r3 As==01
5012: 0a 24 jz $+22 ;abs 0x5028
5014: 3d 53 add #-1, r13;r3 As==11
5016: 3c 53 add #-1, r12;r3 As==11
5018: ed 4c 00 00 mov.b @r12, 0(r13);
501c: 3e 53 add #-1, r14;r3 As==11
501e: fa 23 jnz $-10 ;abs 0x5014
5020: 03 3c jmp $+8 ;abs 0x5028
5022: 0e 4c mov r12, r14;
5024: 1e f3 and #1, r14;r3 As==01
5026: e1 3f jmp $-60 ;abs 0x4fea
5028: 0f 4a mov r10, r15;
502a: 3a 41 pop r10;
502c: 3b 41 pop r11;
502e: 30 41 ret
PS; иногда бывает полезно поглядеть, чего заливаешь в железку...