0

私はアセンブリ クラスを受講していますが、Windows 95 に準拠しているため、提供されたアセンブリ プログラムを実行できないことがわかりました xx

私は Rasperry PI を実行しており、ARM コードのアセンブリを簡単に実行できます。

http://thinkingeek.com/2013/01/09/arm-assemblyr-raspberry-pi-chapter-1/

/* -- first.s */
/* This is a comment */
.global main /* 'main' is our entry point and must be global */
.func main   /* 'main' is a function */

main:          /* This is main */
    mov r0, #2 /* Put a 2 inside the register r0 */
    bx lr      /* Return from main */

$ as -o first.o first.s
$ gcc -o first first.o
$ ./first ; echo $?
2

ただし、これは標準の ARM 32 ビット セットアップであり、たとえば、thumb-2 セットアップ用にコンパイルして実行する必要があります。

    AREA PrintText, CODE, READONLY
SWI_WriteC  EQU &0     ;output character in r0 
SWI_Exit    EQU &11    ;finish program
        ENTRY

        BL  Print   ;call print subroutine
        =   "Text to print",&0a,&0d,0   
        ALIGN
        SWI     SWI_Exit    ;finish
Print       LDRB    r0,[r14], #1    ;get a character
        CMP     r0, #0      ;end mark NUL?
        SWINE   SWI_WriteC  ;if not, print
        BNE Print
        ADD r14, r14, #3    ; pass next word boundary
        BIC r14, r14, #3    ; round back to boundary
        MOV pc, r14     ;return
        END

この親指のスタイルを実行するために Pi で何が必要かを知っている人はいますか? 編集:

上記のコマンドに -mthumb を追加しようとしましたが、変更が見られないため、正しいとは思いません。

as -mthumb -o test.o test.s

4

2 に答える 2