void foo(__reg("a0") short *, __reg("a1") short *, __reg("a2") short *, __reg("d0") int) =
" load (a0), e0\n"
....
"TheLoop:\n"
...
" bne TheLoop\n";void foo(__reg("a0") short *, __reg("a1") short *, __reg("a2") short *, __reg("d0") int) =
" inline\n"
" load (a0), e0\n"
....
"TheLoop:\n"
...
" bne TheLoop\n";
" einline\n"@fedaykin, post #1
@fedaykin, post #1
btst #6,$bfe001 bne.b *-8 rts
start: btst #6,$bfe001 bne.b start rts
btst #6,$bfe001 bne.b *+8 nop nop nop rts
btst #6,$bfe001 bne.b tu nop nop nop tu rts
void foo() =
".TheLoop:\n"
"\t nop\n"
"\t bne .TheLoop\n"
"\t rts";
void tes()
{
foo();
}
int main()
{
foo();
label1:
foo();
return 0;
} @asman, post #3
Ogólnie opcody mają parzystą liczbę bajtów i najmniej ich jest dwa ( na przykład nop, rts) a najwięcej to bodajże 10 ( move.l adres1,adres2 ).
move.l ([0xdeadbeef, A0, D0.w*2], 0xcafebabe),([0x123456, A1], D3.w*4, 0x987654)
@kiero, post #6
void foo(__reg("a0") short *, __reg("a1") short *, __reg("a2") short *, __reg("d0") int) =
" inline\n"
" load (a0), e0\n"
....
".TheLoop:\n"
...
" bne .TheLoop\n";
" einline\n"@Hexmage960, post #2