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