szktty #5227(2008/01/08 12:56 GMT) [ Other ] Rating0/0=0.00
Mac OS X (PowerPC 32bit) アセンブリで、スタックを使って。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
.machine ppc .globl _main ;; r6: リストのポインタ ;; r7: リストの要素数 ;; r8: カウント _main: ;; 初期化 lis r6, hi16(list) addi r6, r6, lo16(list) lis r7, hi16(list_size) addi r7, r7, lo16(list_size) li r8, 0 _push: lbz r10, 0(r6) stbu r10, -1(r1) addi r6, r6, 1 addi r8, r8, 1 cmpl cr7, r7, r8 bgt cr7, _push li r8, 0 _pop: lbz r10, 0(r1) stwu r8,-4(r1) ; スタックに退避 ;; 表示 li r3, 1 ; stdout lis r4, hi16(format) addi r4, r4, lo16(format) addi r10, r10, 48 ; ASCII stb r10, 0(r4) li r5, 2 li r0, 4 ; sys_write sc lwz r8, 0(r1) ; スタックから復帰 addi r1, r1, 4 addi r1, r1, 1 addi r8, r8, 1 cmpl cr7, r7, r8 bgt cr7, _pop ;; sys_exit() li r3, 0 li r0, 1 sc .data .align 2 list: .byte 1,2,3,4,5 .align 2 list_size = 5 format: .asciz " \n" .align 2
Rating0/0=0.00-0+
[ reply ]
szktty
#5227()
[
Other
]
Rating0/0=0.00
Mac OS X (PowerPC 32bit) アセンブリで、スタックを使って。
.machine ppc .globl _main ;; r6: リストのポインタ ;; r7: リストの要素数 ;; r8: カウント _main: ;; 初期化 lis r6, hi16(list) addi r6, r6, lo16(list) lis r7, hi16(list_size) addi r7, r7, lo16(list_size) li r8, 0 _push: lbz r10, 0(r6) stbu r10, -1(r1) addi r6, r6, 1 addi r8, r8, 1 cmpl cr7, r7, r8 bgt cr7, _push li r8, 0 _pop: lbz r10, 0(r1) stwu r8,-4(r1) ; スタックに退避 ;; 表示 li r3, 1 ; stdout lis r4, hi16(format) addi r4, r4, lo16(format) addi r10, r10, 48 ; ASCII stb r10, 0(r4) li r5, 2 li r0, 4 ; sys_write sc lwz r8, 0(r1) ; スタックから復帰 addi r1, r1, 4 addi r1, r1, 1 addi r8, r8, 1 cmpl cr7, r7, r8 bgt cr7, _pop ;; sys_exit() li r3, 0 li r0, 1 sc .data .align 2 list: .byte 1,2,3,4,5 .align 2 list_size = 5 format: .asciz " \n" .align 2Rating0/0=0.00-0+
[ reply ]