Linux で SIC/XE アセンブラを開発する宿題をしています。
コードを作成したときにエラーが発生しましたが、なぜこれが起こるのかわかりません。この問題が発生した理由を説明していただけますか?
以下に示すコードは、トークンを含む「test.asm」ファイルを明らかにします。
178 printf("token1: %s \t",token1);
179 printf("token2: %s \t",token2);
180 printf("token3: %s \t",token3);
181 printf("token4: %s \t",token4);
182 printf("ss\nss");
これによると、特に「ss\nss」ステートメントは、次のような出力結果を期待していました。
sstoken1: LDT token2: LENGTH token3: (null) token4: (null) ss
sstoken1: WLOOP token2: TD token3: OUTPUT token4: (null) ss
ss
しかし、このプログラムを最後まで実行すると、セグメンテーション違反が発生し、奇妙な状況に遭遇しました。
sstoken1: OUTPUT token2: BYTE token3: X'05' token4: (null) ss
sstoken1: END token2: FIRST token3: (null) token4: (null) ss
Segmentation fault.
「Segmentation fault」ステートメントの前に「ss」がありません。理由がわかりません。説明してくれませんか?