前提・実現したいこと
現在、アセンブリ言語を1から学習しています。
ソースを書いて、なんとかリンクまで終わりましたが、実行時にエラーが発生してしまいます。
発生している問題・エラーメッセージ
Illegal instruction
該当のソースコード
.text @ text セクション .align 2 .global _start @ 必須 /* 定数への名前付け */ sys_write = 0x900004 @write システムコール sys_exit = 0x900001 @exit システムコール _start: @このラベルから実行開始 mov r3, #5 @ 5回繰り返す 1: ldr r1, msg @ 文字列先頭アドレス mov r0, #1 @ 標準出力( fd = 1 )を指定 ldr r2, msg_sz @ 出力データの長さ(byte) swi #sys_write subs r3, r3, #1 @ カウンタを更新 bne 1b @ 後方のローカルラベルへ /* 終了時実行 */ mov r0, #0 @ 終了コード0 swi #sys_exit @ 終了 /* 書き換え不要定数 -> text セクションに */ msg: .long msg0 @ 文字列格納アドレス msg_sz: .long msg_sz0 @文字列の長さ格納アドレス .data @ data セクション .align 2 /* 初期化が必要なデータを置く */ msg0: .asciz "hello world\n" .align 2 @ 4バイト境界に設定 msg_sz0 = . - msg0 @ 文字列の長さを計算 data1: .hword 12345 .bss @ bss セクション .align 2 /* 初期化が必要なデータを置く */ data: .long 0 @ 今回不使用
試したこと
https://qiita.com/edo_m18/items/a7c747c5bed600dca977
https://www.mztn.org/slasm/arm07.html
上のサイトを見て作っています。
Raspberry pi なので、ARMアーキテクチャで間違いないと思います。
補足情報(FW/ツールのバージョンなど)
アセンブラは上のサイトと同じas、ldです。
役に立つがわかりませんが
as
1GNU アセンブラ (GNU Binutils for Raspbian) 2.28 2Copyright (C) 2017 Free Software Foundation, Inc. 3This program is free software; you may redistribute it under the terms of 4the GNU General Public License version 3 or later. 5This program has absolutely no warranty.
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。