1.1 armasm のエラーおよび警告メッセージのリスト

armasm で生成されるエラーおよび警告メッセージのリスト

A1017E : :INDEX:PC 相対式では使用できません
:INDEX:式演算子が、PC 相対式(通常はプログラムラベル)に適用されました。:INDEX:は、レジスタ相対式での、ベースレジスタからのオフセットを返します。
<areaname> というエリア内の <label> というラベルのオフセットを取得する場合は、<label> - <areaname> という形式で指定します。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1020E : 不正な事前定義:<directive>
--predefine(-pd)コマンドラインオプションのオペランドが認識されませんでした。ディレクティブは、スペースを含んでいる場合は引用符で囲む必要があります。例えば、Windows では次のようにします。
--predefine "versionnum SETA 5"
SETS ディレクティブを使用する場合は、ディレクティブの引数も引用符で囲む必要があります。引用符は、オペレーティングシステムおよびシェルに応じてエスケープしなければなりません。以下に例を示します。
--predefine "versionstr SETS \"5A\""
A1021U : 入力ファイルがありません
コマンドラインで、入力ファイルが指定されませんでした。原因としては、引数を囲む引用符のうち、終了側の引用符がなかったことが考えられます。
A1023E : ファイル "<filename>" を開けませんでした:<reason>
A1024E : ファイル "<filename>" をロードできませんでした:<reason>
A1042E : 認識されない APCS 修飾子 '<qualifier>'
--apcs コマンドラインオプションに指定された引数にエラーがあります。<qualifier> のスペルを確認して下さい。
A1051E : --depend ファイル '<filename>' を開けません:<reason>
A1055E : --errors ファイル '<filename>' を開けません:<reason>
A1056E : ターゲットの cpu '<cpu>' が認識されません
--cpu コマンドラインオプションで指定された名前が、認識されているプロセッサ名ではありません。引数のスペルを確認して下さい。
サポートされているプロセッサおよびアーキテクチャのリストを表示するには、--cpu=list を使用します。
A1067E : 出力ファイルが '<filename1>' として指定されましたが、既に '<filename2>' として指定されています
コマンドラインで、複数の出力ファイル(-o filename)が指定されました。コマンドラインオプションのスペルの間違いが原因である可能性があります。
A1071E : リストファイル '<filename>' を開けません:<reason>
--list <filename> コマンドラインオプションで指定されたファイルが開けませんでした。この例外は、以下のいずれかの理由で発生することがあります。
  • 指定された名前が無効
  • スペースがない
  • 同じ名前の読み取り専用ファイルが既に存在する
  • ファイルが別のプロセスによって使用されている
ファイルのパスが正しく指定されていることを確認して下さい。
A1072E : リストファイル '<filename>' として .s ファイルまたは .o ファイルを指定することはできません
--list コマンドラインオプションの filename 引数が、ソースファイルまたはオブジェクトファイルであることを示す拡張子を持っています。原因としては、コマンドラインで filename 引数を指定し忘れたことが考えられます。--list コマンドラインオプションに正しい引数が指定されていることを確認して下さい。
A1073E : 出力ファイル '<filename>' としてソースファイルを指定することはできません
コマンドラインで指定されたオブジェクトファイルが、ソースファイルであることを示すファイル名拡張子を持っています。原因としては、コマンドラインでオブジェクトファイル名を指定し忘れたことが考えられます。
A1074E : 依存ファイル '<filename>' としてソースファイルを指定することはできません
--depend コマンドラインオプションの filename 引数が、ソースファイルであることを示す拡張子(.s)を持っています。原因としては、コマンドラインで filename 引数を指定し忘れたことが考えられます。正しい引数が指定されていることを確認して下さい。
A1075E : エラーファイル '<filename>' としてソースファイルを指定することはできません
--errors コマンドラインオプションの filename 引数が、ソースファイルであることを示す拡張子(.s)を持っています。原因としては、コマンドラインで filename 引数を指定し忘れたことが考えられます。正しい引数が指定されていることを確認して下さい。
A1085W : 強制ユーザモード LDM/STM の後にバンク付きの R8-R14 を使用することはできません
ARM アーキテクチャでは、ユーザレジスタ LDM または STM のすぐ後に続く命令でバンクレジスタにアクセスすることはできません。NOPLDM または STM の直後に追加すると、このエラーを回避することができます。
以下に例を示します。
stmib sp, {r0-r14}^ ; Return a pointer to the frame in a1. mov r0, sp
変更後:
stmib sp, {r0-r14}^ ; Return a pointer to the frame in a1. nop mov r0, sp
A1088W : エリア AREA の宣言が正しくありません |$$$$$$$|
このメッセージは AREA ディレクティブが指定されていないと生成されます。メッセージ番号 A1105E も参照して下さい。
A1099E : 構造体スタックが最大スタックサイズ <max> をオーバーフローしています
A1100E : 構造体スタックがアンダーフローしています
A1105E : Area ディレクティブがありません
このメッセージは AREA ディレクティブが指定されていないと生成されます。メッセージ番号 A1088W も参照して下さい。
A1106E : コンマがありません
A1107E : 不正なシンボル型。ラベルが期待されます。
A1108E : シンボル '<name>' が複数回定義されています
A1109E : 不正な式の型
A1110E : 定数式が期待されます
例えば SETA の後には、定数式を指定する必要があります。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1111E : 定数式またはアドレス式が期待されます
A1112E : アドレス式が期待されます
A1113E : ストリング式が期待されます
例えば SETS の後には、ストリング式を指定する必要があります。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1114E : レジスタ相対式が期待されます
A1116E : ストリングのオペランドはDCBに対してのみ指定できます
A1117E : レジスタシンボル '<name>' は既に定義されています
A1118E : 現在のマクロ拡張がありません
A1119E : 条件内では MEND を使用できません
MEND は "END of Macro" の意味であり、英語の単語 "mend" ではありません。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1120E : 不正なグローバル名
A1121E : グローバル名 '<name>' は既に存在しています
A1122E : ローカル変数は、マクロ外では使用できません
A1123E : 不正なローカル名
A1125E : グローバル/ローカルシンボル '<name>' の型が不明または間違っています
A1126E : 不正なアライメント境界です。2 の倍数にする必要があります
A1127E : 不正な IMPORT/EXTERN 名
A1128E : 共通名 '<sym>' は既に存在しています
A1129E : インポートされた名前 '<sym>' は既に存在しています
A1130E : エクスポートされた名前が不正です
A1131E : エクスポートされたシンボル '<sym>' のシンボル型が不正です
A1132E : REQUIRE ディレクティブは <entity> 形式の出力ではサポートされていません
A1133E : 必須のシンボル名が不正です
A1134E : 必須のシンボル型が不正です。シンボルが外部またはラベルで、かつシンボルが再配置可能および絶対であることが期待されます。
A1135E : エリア名がありません
アルファベット以外の文字で始まる AREA 名は縦棒で囲む必要があります。例えば、次のような名前の場合、
AREA 1_DataArea, CODE, READONLY
次のように変更します。
AREA |1_DataArea|, CODE, READONLY
A1136E : エントリアドレスは既に設定されています
A1137E : 行の終わりに予期しない文字があります
この問題は、命令の行に、命令の一部ではない余分な文字が発見された場合に発生します。
以下に例を示します。
ADD r0, r0, r1 comment
以下のように変更できます。
ADD r0, r0, r1 ; comment
A1138E : 文字列 "<string>" は操作に対して短すぎます。長さは <oplength> より大きくする必要があります。
A1139E : 文字列がオーバーフローしています。文字列が <max> 文字を超えています。
A1140E : 不正なオペランド型
A1141E : 再配置された式のみを加算または減算できます
A1142E : 減算による再配置は <entity> 形式の出力ではサポートされていません
この問題は、次のように、減算シンボルが別のエリアにある場合に発生します。
IMPORT sym1
IMPORT sym2
DCD (sym2 - sym1)
A1143E : COMMON ディレクティブは %s 形式の出力ではサポートされていません
A1144E : DCDO ディレクティブは %s 形式の出力ではサポートされていません
A1145E : エクスポートされたシンボル '<sym>' は定義されていません
A1146E : 出力ファイル &lt;filename&gt; を開けません:&lt;reason&gt;
A1147E : 不正なシフト名
A1148E : 不明なシフト名 <name>。LSL、LSR、ASR、ROR、RRX のいずれかが期待されます。
A1150E : 不正なシンボル。定義されていないか、外部です。
この問題は、通常、以下の場合に発生します。
  • 現在のファイルが、いくつかのシンボルを定義するために、他のファイルの INCLUDE を必要とする場合。以下に例を示します。
    "init.s", line 2: Error: A1150E: Bad symbol
    2 00000000 DCD EBI_CSR_0
    
    この場合、必須の定義ファイルを含めることで解決できます。以下に例を示します。
    INCLUDE targets/eb40.inc
    
  • 現在のファイルが、いくつかのシンボルのために、IMPORT を必要とする場合。以下に例を示します。
    "init.s", line 4: Error: A1150E: Bad symbol
    4 00000000 LDR r0, =||Image$$RAM$$ZI$$Limit||
    
    この場合、必須のシンボルをインポートすることで解決できます。以下に例を示します。
    IMPORT ||Image$$RAM$$ZI$$Limit||
    
A1151E : 不正なレジスタ名シンボル
例:
MCR p14, 3, R0, Cr1, Cr2
コプロセッサレジスタ CR は、ビルドのコードでは小文字(c)でラベル付けする必要があります。ARM レジスタは、以下のように、r でも R でもかまいません。
MCR p14, 3, r0, c1, c2
または
MCR p14, 3, R0, c1, c2
A1152E : 予期しない演算子
A1153E : 未定義のシンボル
A1154E : 予期しないオペランド。演算子が期待されます。
A1155E : <operator> と等しい予期しない単項演算子
A1156E : 開き括弧がありません
A1157E : ディレクティブの後に構文エラーがあります
A1158E : 行の先頭が不正です。先頭は空白にする必要があります。
一部のディレクティブ(ENTRYIMPORTEXPORTGET など)は、行の先頭にラベルがない行でしか使えません。ラベルが存在する場合は、このエラーが発生します。
A1159E : 行の先頭にラベルがありません
一部のディレクティブ(FUNCTIONSETS など)は、行の先頭にラベルが必要です。以下に例を示します。
my_func FUNCTION
または
label SETS
ラベルが存在しない場合は、このエラーが発生します。
A1160E : 不正なローカルラベル番号
数値のローカルラベルは範囲 0 ~ 99 の数値で、その後に名前を付けることもできます。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1161E : ローカルラベル定義の後に構文エラーがあります
A1162E : 不正なルーチン名 '<name>'
A1163E : 不明なオペコード <name> です。オペコードまたはマクロが期待されます。
この最も一般的な原因は、以下のとおりです。
  • 命令の前の左余白にホワイトスペースを入れるのを忘れている。例えば、次の命令は、
    MOV PC,LR
    
    次のように変更します。
     MOV PC,LR
    
  • --fpu スイッチを使わずに、ハードウェア浮動小数点命令を使用している。以下に例を示します。
     FMXR FPEXC, r1 ;
    
    これは、 armasm --fpu=vfp でアセンブルする必要があります。
  • オペコードの入力を間違えた。例えば、
     ADDD
    
    以下は、正しくない例です。
     ADD
    
A1164E : オペコードは選択されたプロセッサではサポートされていません
armasm コマンドラインで選択されたプロセッサでは、この命令はサポートされていません。
以下を参照してください。
A1165E : 実際のパラメータが多すぎます。<actual> パラメータが期待されます。
A1166E : ラベルの後に構文エラーがあります
A1167E : 行の先頭が無効です
A1168E : プレインデクス形式では変換できません
A1169E : 閉じ角括弧がありません
A1170E : イミディエート 0x&lt;adr&gt; がこの操作の範囲外です。(0x&lt;adr&gt;)未満である必要があります。
このエラーは、DCBDCW、または DCWU ディレクティブを大きすぎるイミディエートと共に使用した場合に発生します。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1171E : 閉じ括弧がありません
A1172E : 不正なローテータ <rotator> です。ローテータは偶数かつ 0 以上 30 以下である必要があります。
A1173E : ADR/L は外部シンボルでは使用できません
ADR および ADRL 疑似命令は、同じコードエリア内のラベルと共に使う場合のみ使用できます。レジスタにエリア外のアドレスをロードするには、代わりに LDR を使用して下さい。
A1174E : データ転送オフセット 0x&lt;val&gt; が範囲外です。使用可能な値は 0x&lt;min&gt; ~ 0x&lt;max&gt; です
A1175E : 不正なレジスタ範囲
A1176E : 分岐のオフセット 0x&lt;val&gt; が範囲外です。使用可能な値は 0x&lt;min&gt; ~ 0x&lt;max&gt; です
分岐は PC 相対で、範囲の制限があります。数値のローカルラベルを使用している場合は、ROUT ディレクティブを使うとその有効範囲が制限できます。これにより、誤って違うラベルが参照されるのを防ぐことができます。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1179E : 不正な 16 進数
A1180E : 閉じ引用符がありません
A1181E : 不正な演算子
A1182E : ベースとなる <base> 数が不正です
A1183E : 数値オーバーフロー
A1184E : 外部シンボルは式内では有効ではありません
A1185E : シンボルがありません
A1186E : データエリア内で生成されたコード
命令がデータエリア内にアセンブルされました。この問題は、AREA ディレクティブで CODE 属性を省略した場合に発生することがあります。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
AREA
A1187E : マクロのパラメータにエラーがあります
A1188E : レジスタ値 &lt;val&gt; は範囲外です。使用可能な値は &lt;min&gt; ~ &lt;max&gt; です
A1189E : '#' がありません
A1190E : 予期しない '<entity>'
A1191E : 浮動小数点レジスタ番号が範囲(0 ~ <maxi>)を超えています
A1192E : コプロセッサレジスタ番号が範囲(0 ~ 15)を超えています
A1193E : コプロセッサ番号が範囲(0 ~ 15)を超えています
A1194E : 不正な浮動小数点数
A1195W : 小さな浮動小数点値は 0.0 に変換されます
A1196E : 浮動小数点数を禁止するには遅すぎます
A1198E : 不明なオペランド
この問題は、オペランドが誤って入力された場合に発生します。
以下に例を示します。
armasm --cpu=8-A.64 init.s -g -PD "ROM_RAM_REMAP SETL {FALS}"
これは、以下のようにする必要があります。
armasm --cpu=8-A.64 init.s -g -PD "ROM_RAM_REMAP SETL {FALSE}"
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1199E : コプロセッサ命令が範囲(0 ~ <maxi>)を超えています
A1200E : 構造体が一致しません。While/Wend が期待されます。
A1201E : 代入された行が長すぎます。最大長は <max> です。
A1202E : 代入されたシンボル '<name>' の宣言がありません
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1203E : マクロプロトタイプのラベルパラメータの先頭が不正です
A1204E : 不正なマクロパラメータのデフォルト値
A1205E : レジスタ <reg> がリスト内に複数あります
A1206E : レジスタは、レジスタ番号の昇順で表示されている必要があります
この警告は、例えば LDMSTM 命令で、レジスタが昇順で指定されておらず、--checkreglist オプションが使用されている場合に発生します。
A1207E : 不正または不明な属性
このエラーは、AREA ディレクティブで無効な属性が指定された場合に発生します。以下に例を示します。
AREA test,CODE,READONLY,HALFWORD
HALFWORD は無効なので、削除します。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
AREA
A1209E : ADRL は PC と共にデスティネーションとして使用することはできません
A1210E : 初期化されていないエリア '<name>' にゼロ以外のデータがあります
A1211E : 開き角括弧がありません
A1212E : ゼロによる除算
A1213E : 属性 <entity> を属性 <entity> と共に使用することはできません
A1214E : シンボル '<sym>' をレジスタリストとして定義するには遅すぎます
A1215E : 不正なレジスタリストシンボル
A1216E : 不正なストリングエスケープシーケンス
A1217E : コードファイル '<codeFileName>' への書き込み中にエラーが発生しました:<reason>
A1219E : APSR 指定子、CPSR 指定子、または SPSR 指定子が不正です
以下に例を示します。
 MRS r0, PSR
この場合、以下のように、どのステータスレジスタ(CPSR または SPSR)を使用するかを指定する必要があります。
 MRS r0, CPSR
A1220E : BLX <address> は無条件にする必要があります
A1221E : エリアの属性 '<entity>' は <entity> オブジェクトのファイル形式ではサポートされていません
A1223E : Comdat シンボル '<name>' は定義されていません
A1224E : <entity> 形式では、エリア間の PC 相対データ転送は実行できません
A1225E : ASSOC 属性は非 comdat エリアでは使用できません
A1226E : SELECTION 属性は非 comdat エリアでは使用できません
A1227E : Comdat 関連エリア '<name>' はこの時点でファイル内に定義されていません
A1228E : Comdat 関連エリア '<name>' はエリア名ではありません
A1229E : COMDAT シンボルがありません
A1230E : Missing '}' after COMDAT symbol
A1234E : シンボル '<sym>' の未定義または未エクスポートの Weak エイリアス
A1237E : レジスタまたはレジスタの組み合わせがこの操作に対して無効です
A1238E : この操作で使用する場合、イミディエート値はワード境界で整列している必要があります
A1240E : イミディエート値はこの操作では使用できません
A1241E : この操作ではイミディエート値を使用する必要があります
A1242E : この操作で使用する場合、オフセットはワード境界で整列している必要があります
A1243E : この操作では、オフセットはハーフワード境界で整列している必要があります
A1244E : '!' がありません
A1245E : Thumb コードから ARM コードへの B または BL です
A1246E : ARMコードからThumbコードへのBまたはBLです
A1247E : ARM コードから ARM コードへの BLX です。BL を使用してください。
この問題は、このアセンブラファイル内に A32 コードから A32 コードへの BLX label 分岐がある場合に発生します。これが許可されないのは、BLX label では常に命令セットの状態変更が起きるためです。通常は、代わりに BL を使用することで解決できます。
A1248E : Thumb コードから Thumb コードへの BLX です。BL を使用してください。
この問題は、このアセンブラファイル内に T32 コードから T32 コードへの BLX label 分岐がある場合に発生します。これが許可されないのは、BLX label では常に命令セットの状態変更が起きるためです。通常は、代わりに BL を使用することで解決できます。
A1249E : ポストインデクスアドレッシングモードは使用できません
A1250E : プレインデクスアドレッシングモードはこの命令では使用できません。[Rn, Rm] を使用してください。
A1253E : 外部シンボルへの Thumb 分岐は再配置できません:<fmt> では表現できません
A1254E : ハーフワードリテラル値はサポートされていません
次の例では、LDRHLDR に変更します。LDR は、レジスタに定数をロードする標準的な方法です。
 LDRH R3, =constant
A1256E : DATA ディレクティブは CODE エリアでのみ使用できます
A1259E : 無効な PSR フィールド指定子です。構文は <PSR>_ で、<PSR> には CPSR または SPSR が入ります。
A1260E : PSR フィールド '<entity>' が複数回指定されています
A1261E : MRS ではフィールドを選択できません。直接 APSR、CPSR、または SPSR を使用してください
この問題は、MRS 命令と共に CPSR または SPSR のフィールドを使おうとした場合に発生します。以下に例を示します。
MRS r0, CPSR_c
A1262U : 式記憶エリアアロケータがエラーになりました
A1265U : 構造体が一致しません:INCLUDE ファイルの最後で IF または WHILE が一致しません
A1267E : ファイル <filename> に対して不正な GET または INCLUDE です
A1268E : 条件またはマクロが一致しません
A1269U : 構造体スタック上に予期しない GET があります
A1270E : ファイル "<entity>" が見つかりません
A1271E : 行が長すぎます。最大行長は <MaxLineLength> です。
A1272E : 入力ファイルの終わり
A1273E : '\\' はストリングの分割には使用できません
A1274W : コメントの最後に '\\' があります
A1283E : リテラルプールが離れすぎています。LTORG を使用して 1KB 以内になるようにアセンブルしてください。
T32 コードでは、リテラルプールを、アクセスを試みる LDR 命令の 1 KB 以内にしなければなりません。メッセージ A1284E および A1471W も参照して下さい。
A1284E : リテラルプールが離れすぎています。LTORG を使用して 4KB 以内になるようにアセンブルしてください。
A32 コードでは、リテラルプールを、アクセスを試みる LDR 命令の 4 KB 以内にしなければなりません。この問題を解決するには、LTORG ディレクティブをアセンブリソースコード内の適切な場所に追加します。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1285E : 不正なマクロ名
A1286E : マクロは既に存在しています
A1287E : マクロプロトタイプのパラメータの先頭が不正です
A1288E : マクロプロトタイプのパラメータが不正です
A1289E : マクロプロトタイプのパラメータの区切り文字が無効です
A1290E : マクロ定義が大きすぎます。最大長は <max> です。
A1291E : マクロ定義を入れ子にすることはできません
A1310W : シンボル属性が認識されません
A1311U : 拡張内でマクロ定義が試行されました
A1312E : アサートがエラーになりました
A1313W : ファイルの終わりに END ディレクティブがありません
アセンブラは、ファイル内のコードがどこで終了するかを知るために、END ディレクティブを必要とします。このディレクティブの後には、自由な形式でコメントなどの情報を追加できます。
A1314W : 予約されている命令(NV 条件を使用)
A1315E : NV 条件はターゲットの CPU ではサポートされていません
A1316E : MSR に対するシフトされたレジスタオペランドの効果が定義されていません
A1319E : 影響が定義されていません(PC を Rs として使用)
A1320E : 影響が定義されていません(レジスタ指定シフトで PC を Rn または Rm として使用)
A1321E : 影響が定義されていません(PC をオフセットレジスタとして使用)
A1322E : PC の非境界整列転送です。転送先アドレスは 4 バイト境界で整列されている必要があります。それ以外の場合、予測不能な結果になります
このエラーは、LDR 命令を使用してワード境界で整列されていないアドレスから PC をロードしようとすると報告されます。以下に例を示します。
AREA Example, CODE LDR pc, [pc, #6] ; Error – オフセットは 4 の倍数である必要があります END
このコードよって、予期していなかった結果が生じます。
A1323E : 予約済みの命令(Rm = Rn とポストインデクスの併用)
A1324E : 影響が定義されていません(PC + ライトバック)
A1327E : 移植不可能命令(ライトバックとベースを使用する LDM がレジスタリストで指定されている場合、ベースの最終的な値は予期できません)
LDM では、ベースレジスタ <Rn><registers> で指定されていて、ベースレジスタのライトバックが指定されている場合、<Rn> の最終的な値は UNKNOWN です。
A1328E : 移植不可能命令(ライトバックとベースを使用する STM がレジスタリストの最初にない場合、ベースの格納値は予期できません)
STM 命令では、<Rn><registers> で指定されていて、ライトバックが指定されている場合、次のようになります。
  • <Rn><register_list> で指定されている最も小さな番号のレジスタであるならば、<Rn> の元の値が格納されます。
  • そうでないならば、<Rn> の格納値は UNKNOWN です。
A1329E : 予測不能な命令(ベースへのライトバックを使用した強制ユーザモード転送)
この問題は、PUSH {r0}^ のような命令によって発生します(^ は、ユーザレジスタへのアクセスを示します)。この命令ではベースレジスタへのライトバックはできません。ベースレジスタは、別途更新する必要があります。以下に例を示します。
 SUB sp, sp,#4
 STMID sp, {r0}^ 
また、STMFD R0!, {r13, r14}^ を次のように置き換える方法もあります。
 SUB r0, r0,#8
 STM r0, {r13, r14}^ 
メッセージ番号 A1085W も参照して下さい。
A1331E : 予測不能な命令(ソースまたはデスティネーションとしての PC)
A1332E : 影響が予測不能です(PC 相対 SWP)
A1334E : 影響が定義されていません(PC/PSR の使用)
A1335E : 意味のない命令(PC にライトバックすることはできません)
A1337E : 意味のない命令(PC はデスティネーションです)
A1338E : 疑わしい命令(PC がオペランドとして使用されています)
A1339E : RdLo と RdHi が同じレジスタの場合予測できません
A1341E : 境界整列されていないデスティネーションへの分岐です。<max> バイト境界で整列されているデスティネーションが期待されます。
A1342W : シンボルがこの命令と離れすぎている場合、別の AREA 内のシンボルの <name> はリンク時のエラーの原因になります
A1344I : ホストエラー:メモリが不足しています
A1355U : AREA 内にないラベルが見つかりました
この問題は、アセンブラディレクティブの前にホワイトスペースがない場合に発生します。ARM アセンブラディレクティブは、次のようにインデントされている必要があります。
    IF :DEF: FOO 
    ; code 
    ENDIF 
以下は、正しくない例です。
IF :DEF: FOO 
 ; code 
ENDIF 
最初の列で始まるシンボルは、ラベルであると見なされます。
A1356E : 命令がターゲットの CPU でサポートされていません
この問題は、選択されたアーキテクチャまたはプロセッサでサポートされていない命令を使おうとした場合に発生します。
以下に例を示します。
 SMULBB r0,r0,r1 ;
これは、次のようにアセンブルできます。
armasm --cpu 5TE
以下を参照してください。
A1406E : 不正な 10 進数
A1407E : 大きすぎる浮動小数点値
A1408E : 大きすぎる(単精度)浮動小数点値
A1409W : 小さな(単精度)浮動小数点値は 0.0 に変換されます
A1411E : ベクタ指定子に閉じの '&gt;' がありません
A1412E : ベクタ長が不正です。<min> と <max> の間にする必要があります。
A1413E : ベクタのストライドが不正です。<min> と <max> の間にする必要があります。
A1414E : ベクタはそれ自身を循環して上書きされます。長さ * ストライドが <max> 以下である必要があります。
A1415E : VFPASSERT の後に 'VECTOR' または 'SCALAR' を指定する必要があります
A1416E : ベクタ長が現在のベクタ長 <len> と一致しません
A1417E : ベクタのストライドが現在のベクタのストライドと一致しません
A1418E : レジスタの型 '<type>' が命令に対して不正です。浮動小数点/倍精度型のレジスタが期待されます。
A1419E : スカラオペランドがスカラバンク内にありません
A1420E : ベクタオペランドの長さが異なっています
A1421E : ベクタオペランドのストライドが異なっています
A1422E : このベクタオペランドとスカラオペランドの組み合わせは使用できません
A1423E : この操作はベクタ化できません
A1424E : この命令に対するオペランドではベクタ指定子は使用できません
A1425E : デスティネーションのベクタをスカラバンク内に置くことはできません
A1426E : ソースのベクタをスカラバンク内に置くことはできません
A1427E : オペランドが部分的にオーバラップしています
A1428E : レジスタリストに型の異なるレジスタが含まれています
A1429E : 期待されるレジスタリスト
この問題は、FRAME SAVE および FRAME RESTORE ディレクティブにレジスタリストが指定されていない場合に、アセンブラによって通知されます。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1430E : 不明な frame ディレクティブ
A1431E : frame ディレクティブは PROC/FUNCTION の外部では使用できません
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1432E : 浮動小数点レジスタ型は、選択した浮動小数点アーキテクチャと互換性がありません
A1433E : この命令のライトバック形式のみが存在します
命令で指定されたアドレッシングモードは、ライトバック指定子(つまり、ベースレジスタの後の '!')を含んでいませんでしたが、命令セットは命令のライトバック形式だけをサポートしています。ライトバック形式を使用するか、要求された動作をする命令に置き換えて下さい。
A1434E : アーキテクチャ属性 '&lt;attr1&gt;' と '&lt;attr2&gt;' が競合しています
A1435E : アーキテクチャ用にアセンブルする場合、{PCSTOREOFFSET} は定義されていません
{PCSTOREOFFSET} は、プロセッサ用にアセンブルする場合にだけ定義され、アーキテクチャ用の場合は定義されません。
A1437E : {ARCHITECTURE} が定義されていません
{ARCHITECTURE} は、アーキテクチャ用にアセンブルする場合にだけ定義され、プロセッサ用の場合は定義されません。
A1446E : 不正または不明な属性 '<attr>' です。代わりに --apcs /interwork を使用してください
以下に例を示します。
 AREA test1, CODE, READONLY

 AREA test, CODE, READONLY, INTERWORK
このコードは、元はレガシー ARM ソフトウェア開発ツールキット(STD)と共に動作することが想定されていたと考えられます。INTERWORK エリア属性は、現在では廃止されています。このエラーが表示されないようにするには、以下の処理を行います。
  • AREA の行から ", INTERWORK" を削除します。
  • 代わりに、 armasm --apcs /interwork foo.s でアセンブルします。
A1447W : ファイルの終わりに END ディレクティブがありませんが、END というラベルが見つかりました
この問題は、インデントされていない END ディレクティブによって発生します。
A1448E : 廃止予定の形式の PSR フィールド指定子が使用されています(_f を使用してください)
A1449E : 廃止予定の形式の PSR フィールド指定子が使用されています(_c を使用してください)
A1450E : 廃止予定の形式の PSR フィールド指定子が使用されています(将来の互換性のために _cxsf を使用してください)
armasm では、以下の形式で、MRS および MSR 命令のすべてがサポートされています。
 MRS(cond) Rd, CPSR   MRS(cond) Rd, SPSR   MSR(cond) CPSR_fields, Rm   MSR(cond) SPSR_fields, Rm   MSR(cond) CPSR_fields, #immediate   MSR(cond) SPSR_fields, #immediate
ここで、fields は、cxsf の任意の組み合わせです。
アセンブラの従来のバージョンでは、制御フィールドとフラグフィールドを変更するために、MSR 命令で次のような他の形式も使用できました。
  • cpsr または cpsr_all、制御およびフラグフィールド
  • cpsr_flg、フラグフィールドのみ
  • cpsr_ctl、制御フィールドのみ
同様の制御およびフラグ設定が、SPSR にも適用されます。
これらの形式は、廃止予定になっているため、使用しないで下さい。これらの形式が従来のコードに含まれている場合、アセンブラによって以下のメッセージが通知されます。
廃止予定の形式の PSR フィールド指定子が使用されています(_cxsf を使用してください)
警告が表示されないようにするには、多くの場合、代わりに _c_f_cf、または _cxsf を使うようにコードを変更します。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
以下の FAQ を参照して下さい。
A1454E : FRAME STATE RESTORE ディレクティブに対応する FRAME STATE REMEMBER がありません
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1456W : INTERWORK エリアディレクティブは現在サポートされていません。--apcs /inter が選択された場合と同様に続行されます。
例えば、次のコードはこの警告を生成します。
 AREA test, CODE, READONLY, INTERWORK
このコードは、元はレガシー ARM ソフトウェア開発ツールキット(STD)と共に動作することが想定されていたと考えられます。INTERWORK エリア属性は、現在では廃止されています。この警告が表示されないようにするには、以下の処理を行います。
  1. AREA の行から ", INTERWORK" を削除します。
  2. 代わりに、 armasm --apcs /interwork foo.s でアセンブルします。
メッセージ番号 A1446E も参照して下さい。
A1457E : INTERWORK と NOINTERWORK コードエリアを同じファイル内に混在させることはできません。
INTERWORK と(既定の)NOINTERWORK コードエリアは、同じファイル内に混在させることができません。このコードは、元来、ARM ソフトウェア開発ツールキット(SDT)で使用することを目的としている可能性があります。INTERWORK AREA 属性は、ARM コンパイラツールチェーンでは廃止されています。
以下に例を示します。
 AREA test1, CODE, READONLY    …  AREA test2, CODE, READONLY, INTERWORK
このエラーが表示されないようにするには、以下の手順を実行します。
  1. 2 つの AREA を、例えば test1.stest2.s のような個別のアセンブリファイルに移動します。
  2. , INTERWORKtest2.sAREA の行から削除します。
  3. test1.s armasm --apcs /nointerwork でアセンブルします。
  4. test2.s armasm --apcs /interwork でアセンブルします。
  5. リンク時に、リンカによって必要なインターワーキングベニアが追加されます。
メッセージ番号 A1446E も参照して下さい。
A1458E : fpu が None の場合、DCFD または DCFDU は使用できません。
A1459E : レジスタに対する B または BL は実行できません。
命令のこの形式は使用できません。使用できる形式については、以下を参照して下さい。
A1461E : 指定されたプロセッサまたはアーキテクチャは Thumb 命令をサポートしていません
--cpu オプションを使用して特定のアーキテクチャまたは CPU を指定した後で、このエラーを生成した AREA 内に Thumb コードを組み込んだと考えられます。
例えば、次のコマンドラインでは、選択されたアーキテクチャ ARMv4 は、Thumb コードをサポートしていません。
armasm --cpu 4 code.s
A1462E : 指定されたメモリ属性はこの命令をサポートしていません
A1463E : SPACE ディレクティブは大きすぎるためこのエリアに収まりません。エリアのサイズの制限は 2^32 です。
A1464W : ENDP/ENDFUNC に対応する PROC/FUNC がありません
A1466W : 演算子の優先順位とは、C では式が異なる方法で評価されることを意味します
armasm は常に、特定の式を C とは異なる順序で評価してきました。この警告は、C プログラマがアセンブリ言語で記述する際の手助けになります。
警告が表示されないようにするには、以下のいずれかの手順を実行します。
  • 括弧を追加することによって、評価の順序が明示的になるようにコードを変更します。
  • --unsafe スイッチで、警告を非表示にします。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1467W : 負のオフセット <offset> を使用した FRAME ADDRESS は推奨されません
A1468W : 標準構造フレームアドレスより上にレジスタを保存する FRAME SAVE は推奨されません
A1469E : FRAME STATE REMEMBER ディレクティブに対応する FRAME STATE RESTORE がありません
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1471W : ディレクティブ <directive> は実行可能な位置にある可能性があります
この問題は、例えば LTORG ディレクティブで発生する場合があります(メッセージ A1283E および A1284E を参照)。LTORG は、この位置でのリテラルプール DCD データをダンプするようにアセンブラに指示します。
この警告が発生しないようにするには、データをプロセッサが命令として実行できない場所に配置する必要があります。LTORG の位置として適切なのは、無条件分岐の直後、またはサブルーチンの最後にある復帰命令の後です。
最後の手段として、データが実行されるのを防ぐために、LTORG の部分に分岐を追加することもできます。以下に例を示します。
  B unique_label
  LTORG
unique_label
A1475E : 少なくとも 1 つのレジスタを転送する必要があります。転送しないと結果を予測できません。
A1476E : ワード境界で整列されていないアドレスでの BX r15 は予測できません
A1477E : このレジスタの組み合わせは予測不能な動作になります
このエラーは、実行時に予測不可能な結果が生じる命令をアセンブリしている場合に生成されます。この 予測不可能 な結果を回避するには、コードを記述し直す必要があります。例えば、次の命令は Thumb 命令のアセンブル時にこのエラーを必ず発生し、ターゲットアーキテクチャは ARMv6T2 以降です。
ADD sp, r0, #100 ; error - 予測不要な SP の使用 CMP pc, #1 ; error - 予測不要な PC の使用 PUSH    {r0, pc} ; error - 予測不要なレジスタの組み合わせの使用
A1479W : 要求されたアライメント <alignreq> がエリアアライメント <align> より大きいため、エリアアライメントを大きくしました
これは、ALIGN ディレクティブの整列境界が、それを含む AREA よりも粗い場合の警告です。これは使用できません。この問題を解消するために、AREA の側のアライメントがアセンブラによって自動的に増やされます。この警告を発生させる単純な例は、次のようなものです。
 AREA test, CODE, ALIGN=3  ALIGN 16  mov pc, lr  END
この例では、AREA (ALIGN=3) のアライメントが 2^3=8 バイト境界ですが、mov pc,lr 命令は 16 バイト境界になっているため、エラーになります。

2 つのアライメントの種類が、異なる方法で指定されています。
この警告は、AREA ... ALIGN=0 を使ってコードセクションをバイト境界に整列させるときにも発生します。そのような設定はできません。コードセクションは、次のようにだけ整列できます。
  • A32 コードでは、4 バイト境界。つまり、"ALIGN=2" を使用します。
  • T32 コードでは、2 バイト境界。つまり、"ALIGN=1" を使用します。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1480W : ディレクティブまたは命令と同じ名前をマクロに付けることはできません
A1481E : オブジェクトファイル形式はこのエリアアライメントをサポートしていません
A1482E : シフトオプションが範囲外です。使用可能な値は <min> ~ <max> です。
A1484W : 現在サポートされていないシフト名 'ASL' です。代わりに LSL を使用してください。
ARM アーキテクチャには、ASL シフト演算がありません。ARM バレルシフタには、以下のシフトの種類だけがあります。
  • ROR
  • ASR
  • LSR
  • LSL
算術(符号付き)左シフトは、論理左シフトと同じです。符号ビットは、常にシフトアウトされるためです。
名前 ASL が使用されている場合、アセンブラはこの警告を発して ASLLSL に変換します。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1485E : LDM/STM 命令が --split_ldm で許可されている最大レジスタ数 &lt;max&gt; を超えています
A1486E : 別の AREA のシンボルの ADR/ADRL は ELF ではサポートされていません。
ADR および ADRL 疑似命令は、同じコードセクション内のラベルと共に使う場合のみ使用できます。レジスタにエリア外のアドレスをロードするには、代わりに LDR を使用して下さい。
A1487W : 現在サポートされていない命令名 'ASL' です。代わりに LSL を使用してください。
この警告は、--16 コマンドラインオプションを使用してアセンブルする場合、CODE16 ディレクティブを使用してアセンブルする場合、UAL 以前の Thumb コードで ASL 命令が使用された場合に生成されます。対応する ARM ASL メッセージ A1484W を参照して下さい。
A1488W : 行 <lineno> の PROC/FUNC に対応する ENDP/ENDFUNC がありません(ファイル '<filename>')
A1489E : <FPU> が定義されていません
A1490E : <CPU> が定義されていません
{CPU} は、プロセッサ用にアセンブルする場合にだけ定義され、アーキテクチャ用の場合は定義されません。
A1491W : 内部エラー:不正なアライメントを使用した再配置がオフセット <offset> で見つかりました
この問題は、アセンブラのエラーを示している場合があります。購入元にお問い合わせ下さい。
A1492E : イミディエート 0x&lt;val&gt; がこの操作の範囲外です。使用可能な値は 0x&lt;min&gt; ~ 0x&lt;max&gt; です
A1493E : REQUIRE は AREA 内にある必要があります
A1495W : 分岐のターゲットがデータアドレスです
armasm はシンボルの種類を判断し、データへの分岐を検出します。この警告が表示されないようにするには、--diag-suppress 1495 を指定します。
A1496W : シンボル '<symbol>'(オフセット <offset>)に関する ROPI アドレスの絶対再配置を実行すると、リンクエラーが発生する場合があります
例えば、--apcs /ropi で次のコードをアセンブルするときに、この警告が発生します。これは、PI コードシンボルへの絶対再配置(R_ARM_ABS32)が生成されるためです。
  AREA code, CODE
 codeaddr DCD codeaddr
  END
A1497W : シンボル '<symbol>'(オフセット <offset>)に関する RWPI アドレスの絶対再配置を実行すると、リンクエラーが発生する場合があります
例えば、--apcs /rwpi で次のコードをアセンブルするときに、この警告が発生します。これは、PI データシンボルへの絶対再配置(R_ARM_ABS32)が生成されるためです。
  AREA data, DATA
 dataaddr DCD dataaddr
  END
A1498E : Thumb 命令の後に予期しない文字があります
例えば、次の命令は UAL と UAL 以前のコードで有効です。
 ADD r0, r0, r1
ただし、次の命令は UAL 以前の Thumb コードでは無効です。予期しない文字は、, ASR #1 です。
 ADD r0, r0, r1, ASR #1
A1499E : レジスタの組み合わせは有効な連続ペアではありません
A1500E : '<eword>' が期待する場所に他の文字が指定されています
A1501E : シフトオプションが範囲外です。使用可能な値は 0、8、16、または 24 です。
A1502W : レジスタ <reg> は caller-save レジスタであり、この操作では有効ではありません
A1505E : 不正な式の型。論理式が期待されます。
A1506E : 累算器は accx の形式である必要があります。x の範囲は 0 ~ <max> です。
A1507E : レジスタリストの 2 番目のパラメータは最初のパラメータ以上である必要があります。
A1508E : 構造体が一致しません。条件が期待されます。
A1509E : 不正なシンボル型です。ラベルまたは weak 外部シンボルが期待されます。
A1510E : イミディエート 0x&lt;imm&gt; は、0 ~ 255 およびローテーションで表すことはできません
A1511E : イミディエートは 2 つのデータ処理命令の組み合わせで表すことはできません
A1512E : イミディエート 0x&lt;val&gt; がこの操作の範囲外です。使用可能な値は &lt;min&gt; ~ &lt;max&gt; です
A1513E : シンボルが見つからないか、シンボル型が '<name>' に対して互換性がありません
A1514E : 不正なグローバル名 '<name>'
A1515E : 不正なローカル名 '<name>'
A1516E : 不正なシンボル '<name>'。定義されていないか、外部です。
A1517E : <operator> と等しい予期しない演算子
A1539E : リンク順序の依存関係 '<name>' がエリアではありません
A1540E : self にリンク順序の依存関係を指定することはできません
A1541E : <code> は有効な条件コードではありません
A1542E : マクロ名 <name1> と <name2>[パラメータ] が矛盾しています
A1543W : マクロパラメータのデフォルト値が空です
A1544E : 空の PSR フィールド指定子は無効です。フィールドには c、x、s、f のいずれか 1 つを指定する必要があります。
A1545U : 1 つの <objfmt> ファイルにセクションが多すぎます
A1546W : スタックポインタの更新によって、8 バイトのスタックのアライメントが分断される可能性があります
スタックは外部境界上の 8 バイト境界で整列されていなければならないので、奇数のレジスタをプッシュすると、この警告が発生します。以下に例を示します。
PUSH {r0}
この警告はデフォルトでは非表示になっています。この警告が表示されるようにするには、--diag_warning 1546 を使用します。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1547W : PRESERVE8 ディレクティブが自動的に設定されました
例:
PUSH {r0,r1}
この警告は、PRESERVE8 ディレクティブがユーザによって明示的に設定されず、アセンブラによって自動的に設定されたために発生します。この警告はデフォルトでは非表示になっています。これを有効にするには、--diag_warning 1547 を使用します。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1548W : コードに SP のインデクス/オフセットされた LDRD/STRD が含まれていますが、REQUIRE8 が設定されていません
この警告は、REQUIRE8 ディレクティブが必要であるのに設定されなかった場合に発生します。以下に例を示します。
PRESERVE8 STRD r0,[sp,#8]
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1549W : PRESERVE8 を設定せずに REQUIRE8 を設定するのは異常です。
例:
PRESERVE8 {FALSE}
REQUIRE8
STRD r0,[sp,#8]
A1550U : 入力と出力のファイル名が同じです。
A1551E : Comdef エリア <name> を非 comdat グループに追加することはできません
A1560E : 定数以外のバイトリテラル値はサポートされていません
A1561E : MERGE セクションと STRING セクションはデータセクションである必要があります
A1562E : Merge セクションのエントリサイズは 0 より大きくする必要があります
A1563W : 命令によって CPU が <stalls> サイクルの間ストールします
--cpu オプションによって選択されたプロセッサのパイプラインが原因で、コード内で発生する可能性があるインターロックに関する情報を、アセンブラから取得できます。そのためには、 armasm --diag_warning 1563 を使用してアセンブルします。

--cpu オプションで Cortex-A8 などのマルチイッシュープロセッサが指定されている場合、インターロック警告は正しくないことがあります。
警告 A1746W も参照して下さい。
A1572E : 演算子 SB_OFFSET_11_0 は、LDR/STR 命令でのみ使用できます
A1573E : 演算子 SB_OFFSET_19_12 は、データ処理命令でのみ使用できます
A1574E : "<str>" の 1 つ以上のフラグ文字が期待されます
A1575E : bit[0] が 1 に等しい BLX はアーキテクチャ上定義されていません
A1576E : 不正なコプロセッサレジスタ名シンボル
A1577E : 不正なコプロセッサ名シンボル
A1578E : 不正な浮動小数点レジスタ名シンボル '<sym>'
A1581W : <no_padbytes> バイトのパディングがアドレス <address> で追加されました
生成されるコードにパディングバイトが追加される場合、デフォルトではアセンブラによって警告が生成されます。この問題は、より大きな境界が必要なアドレスで命令またはディレクティブが使用されると、常に発生します。たとえば、いくつかの T32 命令の後で確実に A32 命令が 4 バイト境界で開始される必要がある場合や、DCB の後に DCD が続く場合です。
以下に例を示します。
 AREA Test, CODE, READONLY  THUMB ThumbCode  MOVS r0, #1  ADR r1, ARMProg  BX r1  ; ALIGN ; &lt;&lt;&lt; 最初の警告を回避するためにコメントを解除  ARM ARMProg  ADD r0,r0,#1  BX LR  DCB 0xFF  DCD 0x1234  END
このコードでは、次の警告が生成されます。
A1581W:2 バイトのパディングが 0x6 で追加されました 8 00000008 ARM A1581W:3 バイトのパディングがアドレス 0x11 で追加されました 13 00000014 DCD 0x1234
この警告は、T32 専用コードで ADR を使用した場合にも発生します。ADR T32 疑似命令は、ワード境界で整列されたアドレスしかロードできませんが、T32 コード内のラベルはワード境界で整列されていない場合があります。ALIGN を使用して、T32 コード内のアドレスを 4 バイト境界調整で整列させることができます。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1582E : リンク順序エリア '<name>' が定義されていません
A1583E : グループシンボル '<name>' が定義されていません
A1584E : モード &lt;mode&gt; はこの命令では使用できません
A1585E : オペランド型(<typ1>)は演算子 <op> に対して不正です
A1586E : オペランド型(<typ1>、<typ2>)は演算子 <op> に対して不正です
A1587E : レジスタリスト内のレジスタ数 <count> が多すぎます。最大数は <max> です。
A1588E : AlignはVLD命令およびVST命令でのみ使用できます
A1589E : エレメントインデクスはすべてのレジスタで一定である必要があります
A1590E : サブスクリプトのエレメントとサブスクリプト以外のエレメントを組み合わせることはできません
A1593E : 不正なアライメント。転送サイズ UIMM * <dt> と一致している必要があります。
A1595E : 不正なアライメント。<st> * <dt> と一致しているか、<st> が 4 の場合、64 である必要があります
A1596E : dt st の組み合わせに対してアライメント <align> が不正です
A1597E : dtが8の場合、レジスタを2ずつインクリメントすることはできません
A1598E : 不正なレジスタリストの長さ
A1599E : サブスクリプトが範囲外です。0 と <max_index> の間にある必要があります。
A1600E : セクション型は、SHT_LOOS と SHT_HIUSER の範囲内にある必要があります。
A1601E : イミディエートを表現できません
A1603E : IT ブロック内のこの命令は、予測不能な結果になります
A1604W : デスティネーションへの Thumb 分岐で、<max> バイトに整列されていません
A1606E : シンボル属性 <attr1> は、属性 <attr2> とともに使用できません
A1607E : Thumb-2 ワイド分岐命令が使用されましたが、Thumb-1 ナロー分岐命令にフィットするオフセットです
A1608W : MOV pc,<rn> 命令が使用されましたが、BX <rn> の方が適しています
A1609W : MOV <rd>,pc 命令ではビット 0 に設定されないため、復帰アドレスは作成されません
この警告は、Thumb 状態での実行中に PC の現在値がレジスタにコピーされる場合に発生します。この方法で復帰アドレスを作成しようとすると、ビット[0] が設定されないため、失敗します。この命令に BX しようとすると、状態が ARM に切り替えられます。
復帰アドレスを作成するには、以下のコードを使用します。
 MOV r0, pc
 ADDS r0, #1
その後は、以下のようにしてこの警告を非表示にしても安全です。
--diag_suppress 1609
A1611E : この命令では、レジスタリストを 2 ずつインクリメントすることはできません
A1612E : <type> アドレシングは <instr> では使用できません
A1613E : この操作では無効なレジスタまたはレジスタの組み合わせ &lt;registers&gt; です。&lt;expected&gt; のうちの 1 つが必要です
A1614E : dtが64の場合、スカラアクセスは実行できません
A1615E : 全レーンへの単一の要素または構造体のストアが定義されていません
A1616E : 命令、オフセット、イミディエート、またはレジスタの組み合わせが、現在の命令セットでサポートされていません
このエラーは、オペランドの無効な組み合わせを使おうとした場合に発生することがあります。例えば、Thumb での次のようなコードです。
MOV r0, #1 ; /* 不可 */ MOVS r0, #1 ; /* Ok */
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1617E : 指定した幅は、現在の命令セットでサポートされていません
A1618E : 指定した命令は、現在の命令セットでサポートされていません
A1619E : 指定した条件が、前の IT と整合性がありません
A1620E : ファイル '<filename>' への書き込み中にエラーが発生しました:<reason>
A1621E : Thumb コードから ARM コードへの CBZ または CBNZ です
A1622E : 負のレジスタオフセットは、現在の命令セットでサポートされていません
A1623E : オフセットは、現在の命令セットでサポートされていません
A1624W : Thumb コードから ARM コードへの分岐です
A1625W : ARM コードから Thumb コードへの分岐です
A1626W : Thumb コードから ARM コードへの BL です
A1627W : ARM コードから Thumb コードへの BL です
この問題は、このファイル内に ARM コードから Thumb コードへの(またはその逆への)分岐がある場合に発生します。通常は、Thumb コードを別のアセンブラファイルに移動することで解決できます。その後、リンク時に、リンカによって必要なインターワーキングベニアが追加されます。
A1630E : 指定されたプロセッサまたはアーキテクチャは ARM 命令をサポートしていません
Cortex-M3 および Cortex-M1 などの ARM M プロファイルプロセッサでは、Thumb 命令セットだけが実装されており、ARM 命令セットは実装されていません。アセンブリファイルにいくつかの ARM 固有の命令が含まれており、これらのいずれかのプロセッサ用にビルドされていると考えられます。
A1631E : ロード/ストアでは、左へ 1、2、または 3 しかシフトできません
A1632E : IT AL ブロックでは、ELSE を使用できません
A1633E : LDR rx,= pseudo 命令は、ロードワード形式でしか使用できません
A1634E : Thumb の LDRD/STRD では、レジスタオフセットアドレシングモードはありません
A1635E : CBZ/CBNZ は、条件付きにすることはできません
A1636E : Thumb では、フラグ設定 MLA はサポートされていません
A1637E : 行の読み出しでエラーが発生しました:<reason>
A1638E : Thumb 内のレジスタオフセットのロード/ストアでは、ライトバックは使用できません
A1639E : 条件付きの DCI は Thumb モードでのみ使用できます
A1640E : オフセットは 4 の倍数である必要があります
A1641E : Thumb では、強制ユーザモード LDM/STM は使用できません
A1642W : 再配置されたナロー分岐は推奨されません
A1643E : 単精度/倍精度値に対して命令を使用できるかどうか判断できません
A1644E : 単精度レジスタを FLDMX/LSTMX とともに使用することはできません
A1645W : <old> に <new> を代入しました
armasm は、命令を置換する場合に警告を発行するように設定できます。以下に例を示します。
  • ADD negative_number SUB positive_number と同じです。
  • MOV negative_number MVN positive_number と同じです。
  • CMP negative_number CMN positive_number と同じです。
T32 命令セットでは、予測不能な単一レジスタ LDMLDR に変換されます。
この警告はデフォルトでは非表示になっていますが、--diag_warning 1645 を使って、表示されるようにすることができます。
--diag_warning 1645 を使用して、次のコードがアセンブルされた場合、
 AREA foo, CODE  ADD r0, #-1  MOV r0, #-1  CMP r0, #-1
アセンブラによって次のように通知されます。
警告:A1645W:Substituted ADD with SUB 3 00000000 ADD r0, #-1 Warning:A1645W:Substituted MOV with MVN 4 00000004 MOV r0, #-1 Warning:A1645W:Substituted CMP with CMN 5 00000008 CMP r0, #-1
生成されたコードは、次のようになります。
foo 0x00000000:e2400001 ..@.SUB r0,r0,#1 0x00000004:e3e00000 ....MVN r0,#0 0x00000008:e3700001 ..p.CMN r0,#1
A1647E : 不正なレジスタ名シンボルです。整数レジスタが必要です
構文のこの位置には、整数(コア)レジスタを指定する必要があります。
A1648E : 不正なレジスタ名シンボルです。ワイヤレス MMX SIMD レジスタが必要です
A1649E : 不正なレジスタ名シンボルです。ワイヤレス MMX ステータス/制御または汎用レジスタが必要です
A1650E : 不正なレジスタ名シンボルです。任意のワイヤレス MMX レジスタが必要です
A1651E : デスティネーションレジスタが R15 でない場合の TANDC、TEXTRC、TORC 命令が定義されていません
A1652W : FLDMX/FSTMX 命令は ARMv6 で廃止される予定です。精度が不明な値を保存および復元するには、FLDMD/FSTMD 命令を使用して下さい。
A1653E : ステータス/制御レジスタを使ったシフト命令が定義されていません
A1654E : バイトまたはハーフワードのロード/ストア時には、外部シンボルにアクセスできません
A1655E : ハーフワード/ワード/ダブルワードが整列されていない場合、命令は予測不能です
A1656E : この命令を使用する場合、ターゲットは少なくともワード境界で整列している必要があります
A1657E : WLDRB/WLDRH = 定数を使用して、バイト/ハーフワードリテラルをロードできません
A1658W : <opt> のサポートは廃止される予定です
armasm に渡されたオプションは、廃止される予定になっています。
『armasm ユーザガイド』の以下のセクションを参照して下さい。
A1659E : ARM/Thumb と Thumb-2EE 間で、B/BL/BLX を実行できません
A1660E : このレジスタタイプではスカラインデクスを指定できません
A1661E : このレジスタではアライメントを指定できません
A1662E : このレジスタタイプではデータ型を指定できません
A1663E : このレジスタでは既にデータ型が指定されています
A1664E : データ型指定子を認識できません
A1665E : データ型のサイズは、8、16、32、64 のいずれかである必要があります
A1666E : 浮動小数点型のサイズは、32 または 64 である必要があります
A1667E : 多項式型のサイズは、8 または 16 である必要があります
A1668E : 命令に指定されているデータ型の数が多すぎます
A1669E : この命令ではデータ型指定子を使用できません
A1670E : 64 ビットダブルワード型のレジスタ式が必要です
A1671E : 128 ビットクワッドワード型のレジスタ式が必要です
A1672E : 64 ビットまたは 128 ビットのレジスタ式が必要です
A1673E : ソースの 2 つのデータ型は、型とサイズが同じである必要があります
A1674E : ソースの第 1 オペランドは、第 2 オペランドの 2 倍のサイズの整数型である必要があります
A1675E : デスティネーションのデータ型とサイズは、ソースと同じである必要があります
A1676E : デスティネーションは、ソースの 2 倍のサイズの整数型である必要があります
A1677E : デスティネーションは、ソースと同じ型で、サイズは 1/2 にする必要があります
A1678E : デスティネーションは、ソースと同じサイズの型なしである必要があります
A1679E : デスティネーションは、ソースと同じ型で、サイズは 2 倍にする必要があります
A1680E : デスティネーションは、符号なし型で、サイズはソースの符号付き型の 1/2 である必要があります
A1681E : デスティネーションは、符号なし型で、サイズはソースの符号付き型と同じである必要があります
A1682E : デスティネーションが符号なし/符号付き型でソースが浮動小数点型であるか、ディスティネーションが浮動小数点型でソースが符号なし/符号付き型である必要があります。サイズは両方とも 32 ビットにしてください
A1683E : データ型指定子が、この命令の有効なエンコーディングと一致していません
A1684E : ソースオペランドは、サイズが <min> ~ <max> の、符号付き型または符号なし型である必要があります
A1685E : ソースオペランドは、サイズが <min> ~ <max> の、符号付き型、符号なし型、または浮動小数点型である必要があります
A1686E : ソースオペランドは、サイズが <min> ~ <max> の、符号付き型または浮動小数点型である必要があります
A1687E : ソースオペランドは、サイズが <min> ~ <max> の、整数型または浮動小数点型である必要があります
A1688E : ソースオペランドは、サイズが <min> ~ <max> の型なしである必要があります
A1689E : ソースオペランドは、<n> ビットの浮動小数点型である必要があります
A1690E : ソースオペランドは、サイズが <min> ~ <max> の符号付き型である必要があります
A1691E : ソースオペランドは、サイズが <min> ~ <max> の、整数型、浮動小数点型、または多項式型である必要があります
A1692E : ソースオペランドは、サイズが <min> ~ <max> の、符号付き型、符号なし型、または多項式型である必要があります
A1693E : ソースオペランドは、サイズが <min> ~ <max> の、符号なし型または浮動小数点型である必要があります
A1694E : 現在の命令セットでは、命令を条件付きにすることはできません
条件付き命令は、指定された命令セットでは使用できません。例えば、命令 MOVEQ は、A32 コード、および IT 命令が利用可能な T32 コードアーキテクチャでは使用できます。
A1695E : この命令ではスカラインデクスを使用できません
A1696E : 32、64、または 128 ビットのレジスタ式が必要です
A1697E : 32 または 64 ビットの VFP レジスタ式が必要です
A1698E : 32 ビットの VFP レジスタ式が必要です
A1699E : これらのレジスタでは、64 ビットのデータ型は使用できません
A1700E : ソースオペランドは、サイズが <min> ~ <max> の整数型である必要があります
A1701E : ソースオペランドでは、16 ビットの多項式型は使用できません
A1702E : この命令では、レジスタ Dm はスカラにできません
A1704E : このデータ型では、レジスタ Dm は D0 ~ D<upper> の範囲内である必要があります
A1705W : アセンブラが Qm レジスタを D<rnum>[<idx>] に変換しました
A1706E : レジスタ Dm はスカラである必要があります
A1708E : この命令の第 3 オペランドは、定数式である必要があります
A1709E : ARM またはスカラレジスタ式が必要です
A1710E : 現在のレジスタと以前のレジスタの差は <diff> である必要があります
A1711E : この命令では、レジスタリスト内にスカラレジスタを含めることはできません
A1712E : LSB と WIDTH を組み合わせて使用すると、動作が不安定になります
A1713E : APSR のフィールド指定子が無効です。APSR_ の後に n、z、c、v、q、g のいずれかを指定してください
A1714E : APSR のフィールド指定子の組み合わせが無効です
A1715E : PSR がターゲットアーキテクチャで定義されていません
A1716E : VMOV 命令のデスティネーションは、ARM 整数レジスタ、32 ビット単精度レジスタ、64 ビットダブルワードレジスタ、または 64 ビットダブルワードスカラレジスタである必要があります
A1717E : ソースレジスタは、ARM 整数レジスタ、32 ビット単精度レジスタ、または 64 ビットダブルワードスカラレジスタである必要があります
A1718E : ソースレジスタは、ARM 整数レジスタまたはデスティネーションと同じレジスタである必要があります
A1719W : この PSR 名は今後のリリースで廃止される予定です
A1720E : ソースレジスタは、64 ビットダブルワードスカラレジスタである必要があります
A1721E : デスティネーションレジスタには、all-lanes 指定子を使用できません
A1722E : IT ブロック内ではラベルは使用できません
A1723W : __RELOC は廃止される予定です。新しい RELOC ディレクティブを使用してください
A1724E : RELOC は、命令やデータ生成ディレクティブの直後にのみ使用できます
A1725W : コマンドラインでの 'armasm inputfile outputfile' という形式の使用は、今後サポートされなくなる予定です
A1726W : --max_cache を 8MB 未満にすることは、推奨されません
A1727W : 16 ビットの Thumb MOVS 命令の使用によりイミディエートが生成された可能性があります
A1728E : ソースレジスタは、デスティネーションレジスタと同じ型である必要があります
A1729E : レジスタリストには、32 ビット単精度レジスタまたは 64 ビットダブルワードレジスタのみを含めることができます
A1730E : これらの命令では、IA または DB アドレシングモードのみを使用できます
A1731E : クワッドワードレジスタでは、レジスタリストのインクリメントを 2 以上にすることはできません
A1732E : レジスタリストには、1 ~ 4 個の連続するダブルワードレジスタを含める必要があります
A1733E : レジスタリストには 2 個または 4 個のダブルワードレジスタを含める必要があります。4 個含める場合は、インクリメントを 2 にすることはできません
A1734E : レジスタリストには、インクリメント 1 または 2 の <n> 個のダブルワードレジスタを含める必要があります
A1735E : ポストインデクスオフセットは、ロード/ストアされたバイト数(<n>)と同じにして下さい
A1736E : リスト内のレジスタ数と要素数を同じにしてください
A1737E : PC や SP はオフセットレジスタとして使用できません
A1738E : イミディエート値の大きさが、この操作で対応している範囲を超えました
A1739W : 単一の VMOV 命令により定数が生成されました。2 番目の命令は NOP です
A1740E : FRAME PUSH ディレクティブや FRAME POP ディレクティブでは、0 未満のバイト数を指定できません
A1741E : 命令を条件付きにすることはできません
A1742E : LSL #Imm が必要です
A1744E : レジスタのアライメントは、16 ~ 256 の範囲内の 2 の累乗にする必要があります
A1745W : このレジスタの組み合わせは廃止される予定なので、アークテクチャの今後のリビジョンでは機能しない可能性があります
この警告は、以下の条件がすべて満たされた場合に生成されます。
  • 廃止予定のレジスタの組み合わせを使用している場合(例:
    PUSH    {r0, pc})。
  • 32 ビット T32 命令をサポートするターゲットアーキテクチャ、つまり ARMv6T2 以降のターゲットアーキテクチャに対してアセンブルしている場合。
  • A32 コードにアセンブルしている場合。

  • A32 コードではなく T32 にアセンブルしており、ターゲットアーキテクチャが ARMv6T2 以降のときには、代わりにエラー A1477E が生成されます。
  • 32 ビット T32 命令をサポートしていないアーキテクチャまたはプロセッサに対して、つまり、ARMv6T2 以前のすべての ARM® アーキテクチャに対してアセンブルを行うときには、デフォルトで、診断は表示されません。
A1746W : この CPU では、命令ストールが正しく診断されない可能性があります
この警告は、アセンブラが正確にモデル化していないプロセッサでメッセージ A1563W を有効にしていると示されます。この警告は、ユーザがコードを改善する際に A1563W の出力に依存できないことを示しています。
警告 A1563W も参照して下さい。
A1753E : メモリバリアのオプションを認識できません
A1754E : スカラレジスタの型を変更できません
A1755E : このレジスタには、既にスカラインデクスが指定されています
A1756E : すべてのレジスタのデータ型を指定する必要があります
A1757W : シンボル属性は角括弧内になければなりません。その他の構文は廃止されます
A1758W : このディレクティブを使用した複数のシンボルのエクスポートは廃止されます
A1759E : 指定されたプロセッサまたはアーキテクチャは Thumb-2EE 命令をサポートしていません
A1760W : ビルド属性 <from> は '<attr>' です
A1761W : <from> の '<diff>' とのビルド属性の差
A1762E : 分岐のオフセット 0x&lt;val&gt; が 16 ビット Thumb 分岐の範囲外ですが、32 ビット Thumb 分岐でエンコードできます。
この問題は、分岐命令へのオフセットが 16 ビットの分岐に収まらない大きさである場合に、T32 用にアセンブルすると発生します。アセンブラに 32 ビット分岐を生成するように指示するために、命令に .W 接尾文字を追加することができます。
A1763W : この命令に IT ブロックが挿入されました
このことは、T32 コードの多くの条件付き命令を使用できるように、アセンブラによって IT ブロックが挿入されたことを示しています。例えば、
 MOVEQ r0,r1
この警告はデフォルトではオフになっています。有効にするには、--diag_warning A1763 を使用します。
A1764W : <name> 命令はアーキテクチャ <arch> 以上では廃止されます
A1765E : ALIGN のパディング値のサイズは 1、2、または 4 バイトである必要があります
この問題は、任意に指定できる padsize 属性が ALIGN ディレクティブで使用され、そのサイズが不適切であった場合に発生します。整列先のパラメータは参照されません。パラメータには、2^0 から 2^31 の範囲で、2 の累乗値を指定できます。
A1766W : コードのパディング値のサイズは最低でも <size> バイト必要です。データとして処理します
A1767E : 属性の後に予期しない文字があります
A1768E : '=' がありません
A1769E : 不正な NEON または VFP システムレジスタ名シンボル
A1771E : <exp> ビットのビットパターンが期待される場所の不正な浮動小数点ビットパターン
A1772E : デスティネーションは符号付きまたは符号なしの整数型、ソースは 32 ビットまたは 64 ビットの浮動小数点型である必要があります
A1773E : 浮動小数点変換は 32 ビット単精度型と 64 ビット倍精度型の間でのみ可能です
A1774E : 固定小数点変換は 16 ビットまたは 32 ビットの符号付き型または符号なし型でのみ可能です
A1775E : これらの型の間で変換することはできません
A1776E : この演算は 32 ビット単精度浮動小数点型では使用できません
A1777E : <n> がシンボル型の範囲外です。値は <min> と <max> の間にある必要があります
A1778E : <n> がシンボルのバインディングの範囲外です。値は <min> と <max> の間にある必要があります
A1779E : DCDO は READONLY シンボル '<key>' には使用できません
A1780E : 不明な ATTR ディレクティブ
A1781E : タグ #<id> は ATTR を使用して設定することはできません
A1782E : タグ #<id> は ATTR <cmd> を使用して設定する必要があります
A1783E : 属性スコープはラベルかセクションの名前である必要があります
A1784W : weak 定義 '<sym>' への参照は再配置されません
A1785E : マクロ '<macuse>' が見つかりませんが、'<macdef>' は存在しています
A1786W : SP を使用するこの命令は廃止される予定なので、アークテクチャの今後のリビジョンでは機能しない可能性があります
この警告は、以下の条件がすべて満たされた場合に生成されます。
  • 廃止予定の方法で SP を明示的に使用している場合。以下に例を示します。
    ADD sp, r0, #100
    
  • 32 ビット T32 命令をサポートするターゲットアーキテクチャ、つまり ARMv6T2 以降のターゲットアーキテクチャに対してアセンブルしている場合。
  • A32 コードにアセンブルしている場合。
ARM では、対応する T32 命令で使用できない A32 命令での SP の明示的な使用を廃止する予定です。下位互換性のためにこのような廃止予定のレジスタを A32 命令でまだ使用できます。また、アセンブラのコマンドラインオプション --diag_suppress=1786 を使用してこの警告を非表示にできます。ただし、アーキテクチャの今後のリビジョンでは機能しない可能性があるので、 ARM ではコードを変更することをお勧めします。
サンプルに示されている廃止予定の SP の使用を以下のようなシーケンスに置き換えられます。
ADD r1, r0, #100
MOV sp, r1

  • A32 コードではなく T32 にアセンブルしており、ターゲットアーキテクチャが ARMv6T2 以降のときには、代わりにエラー A1477E が生成されます。
  • 32 ビット T32 命令をサポートしていないアーキテクチャまたはプロセッサに対して、つまり、ARMv6T2 以前のすべての ARM アーキテクチャに対してアセンブルを行うときには、デフォルトで、診断は表示されません。
A1787W : VFP ベクタモードの使用は ARMv7 で廃止される予定です
A1788W : この命令での PC の明示的使用は廃止される予定なので、アークテクチャの今後のリビジョンでは機能しない可能性があります
この警告は、以下の条件がすべて満たされた場合に生成されます。
  • 廃止予定の方法で PC を明示的に使用している場合。以下に例を示します。
    CMP pc, #1
    
  • 32 ビット T32 命令をサポートするターゲットアーキテクチャ、つまり ARMv6T2 以降のターゲットアーキテクチャに対してアセンブルしている場合。
  • A32 コードにアセンブルしている場合。
ARM では、対応する T32 命令で使用できない A32 命令での SP の明示的な使用を廃止する予定です。下位互換性のためにこのような廃止予定のレジスタを A32 命令でまだ使用できます。また、アセンブラのコマンドラインオプション --diag_suppress=1786 を使用してこの警告を非表示にできます。ただし、アーキテクチャの今後のリビジョンでは機能しない可能性があるので、 ARM ではコードを変更することをお勧めします。

  • A32 コードではなく T32 にアセンブルしており、ターゲットアーキテクチャが ARMv6T2 以降のときには、代わりにエラー A1477E が生成されます。
  • 32 ビット T32 命令をサポートしていないアーキテクチャまたはプロセッサに対して、つまり、ARMv6T2 以前のすべての ARM アーキテクチャに対してアセンブルを行うときには、デフォルトで、診断は表示されません。
A1789W : この命令での PC の明示的使用は廃止される予定なので、アークテクチャの今後のリビジョンでは機能しない可能性があります。ただし、デスティネーションレジスタでは例外です。
A1790W : ベースレジスタをロードする Thumb LDM でライトバックは無視されます
この問題は、ベースレジスタのライトバックを示す感嘆符を誤って追加したことによって発生します。
以下に例を示します。
LDM r0!, {r0-r4}
これは、r0 がベースレジスタであり、デスティネーションレジスタリストにも含まれているため、正しい命令ではありません。この場合、アセンブラはライトバックを無視して、次のコードを生成します。
LDM r0, {r0-r4}
A1791W : タグ #<id> の以前の値はオーバーライドされます
A1792E : 未定義のビルド属性のタグ
A1793E : 変換は 16 ビット浮動小数点と 32 ビット浮動小数点の間でのみ可能です
A1794E : 変換演算には 2 つのデータ型が必要です
A1795E : ソースおよびデスティネーションベクタには <n> 個の要素を含める必要があります
A1796E : レジスタ型はデータ型と互換性がありません
A1797E : 指定された FPU は CPU アーキテクチャと互換性がありません
A1798W : 出力は WYSIWYG(<output>)ではありません
A1799W : 出力の WYSIWYG プロパティはチェックされていません
A1800W : 行に対する出力はありません
A1801E : 命令は現在の命令セットでは予測不能です
A1803E : 不正なシステム命令名
A1804E : 命令に対する不正な CP14 または CP15 レジスタ名
A1805E : レジスタは読み出し専用です
A1806E : レジスタは書き込み専用です
A1807W : 命令はターゲットの CPU で NOP として実行されます
A1808E : 生成されたオブジェクトファイルは破損している可能性があります(<reason>)
A1809W : 命令によって PC は使用前に整列されます。セクションは少なくとも 4 バイト境界で整列されている必要があります
この警告は、以下のすべての条件が満たされた場合に適用されます。これらの条件がすべて満たされた場合、かつ、この命令を含んでいるコードセクションがリンク時に 4 バイト整列のアドレスに配置されなかった場合、命令は実行時に誤ったアドレスで演算される可能性があります。これは、命令によって PC が使用前に 4 バイト整列したアドレスに整列されることが原因です。
  • PC 相対オフセットをワード境界で整列された PC を必要とする T32 命令で使用している。
  • この命令を含んでいるコードセクションに 4 バイト以下の境界整列が使用されている。
  • 命令がリンク時に再配置されなかった(アセンブラが生成する再配置が原因)。
以下の例では、セクション内の整列が 2 バイトで行われているためこの警告によって診断された T32 内の LDR 命令を示します。
AREA ||.text||, CODE, READONLY, ALIGN=1
THUMB
LDR r0, [pc, #8]  ; gives warning A1809W
A1810E : ベースレジスタのライトバック値が不明確です。'[rn,#n]!' または '[rn],#n' 構文を使用してください
A1811E : フィル値のサイズは 1、2、または 4 バイトであると同時に、フィルサイズの因数である必要があります。
A1812W : ARM 命令と Thumb 命令のそれぞれ逆の命令セットでは命令をアセンブルできません
A1813W : 16 ビットの命令が使用された可能性のある箇所で 32 ビットの命令が使用されました
A1814E : 出力ファイルがありません
A1815E : SHT_ARM_EXIDX セクションには、リンク順序の依存関係が設定されている必要があります
A1816E : CODE16 では不明なオペコード '<name>' ですが、THUMB には存在します。
A1817W : ATTR タグ #<id> 設定は <scope> で無視されます
A1818W : ATTR COMPAT フラグ <flag> とベンダ '<vendor>' の設定は、<scope> で無視されます
A1819W : タグ #<id> と互換性のある ATTR 設定は、<scope> で無視されます
A1820E : レジスタとプロセッサモードが命令に対して有効ではありません
A1821E : 定数式またはレジスタ式が必要です
A1822E : 32 ビット拡張レジスタリストが必要です
A1823E : 64 ビット拡張レジスタリストが必要です
A1824E : コアレジスタまたは 32、64、または 128 ビットの拡張レジスタが必要です
A1825E : 定数または 32 ビット拡張レジスタが必要です
A1826E : 定数または 64 ビット拡張レジスタが必要です
A1827E : 定数または 128 ビット拡張レジスタが必要です
A1828E : コアレジスタまたは 32 ビット拡張レジスタが必要です
A1829E : コアレジスタまたは 64 ビット拡張レジスタが必要です
A1830E : コアレジスタまたは 128 ビット拡張レジスタが必要です
A1831E : 定数、浮動小数点定数、コアレジスタ、または 64 ビット拡張レジスタが必要です
A1832E : 浮動小数点定数、コアレジスタ、または 32 ビット拡張レジスタが必要です
A1833E : 定数または '{option}' が必要です。オプションは 0 ~ 255 の定数です
A1834E : レジスタまたはアドレス式が必要です
A1835E : 命令に指定されているデータ型の数が少なすぎます
A1836E : デスティネーションの '&lt;dt&gt;' データ型が必要です
A1837E : 最初のソースの '&lt;dt&gt;' データ型が必要です
A1838E : '&lt;word1&gt;' または '&lt;word2&gt;' が必要な場所に他の文字が指定されています
A1839E : デスティネーションレジスタは、スカラである必要があります
A1840E : 最初のソースレジスタは、スカラである必要があります
A1841E : ベースレジスタで指定されたアライメントは、命令に対して有効ではありません
A1842E : pseudo 命令では構文は使用できません
A1843E : 命令にリテラルロードはサポートされていません
A1844E : リテラル型はサポートされていません
A1845E : 現在の命令セットではレジスタ型を使用できません
A1846E : CPSR または SPSR に無効なフィールドが指定されました: 少なくとも c、x、s、または f のうちいずれかが直後に続く必要があります
A1847E : 再配置を 2 つ以上必要とする式は使用できません
この問題は、A32 命令のアセンブリ時に、他の領域のデータにアクセスしようとすると、発生することがあります。例えば、
LDR r0, [pc, #label - . - 8]
またはこれと同等の
LDR r0, [pc, #label-{PC}-8]
で、label が別の AREA で定義されている場合です。
コードを、次のように、より単純で同等の構文を使うように変更して下さい。
LDR r0, label
このようにすれば、label が同じ領域にあっても、別の領域にあっても、正しく動作します。
A1848W : IT ブロックの状態の変化
A1849E : オペランドのスカラインデックスが、データ型の範囲外です
A1850E : 幅はどのデータ型修飾子よりも前に配置する必要があります
A1851E : 行の先頭が無効です - このディレクティブではローカルラベルはサポートされていません
A1852E : ターゲット FPU では VFP ベクタモードの使用はサポートされていません
A1853E : 命令またはターゲットの境界整列は、少なくとも &lt;n&gt; バイトで整列されている必要があります
A1854E : 不明なオペコード '&lt;name&gt;' です。ターゲット CPU が違う可能性があります
A1856E : シフトされたレジスタオペランドは使用できません
A1857E : 指定されたシフトは使用できません
A1858E : この命令のフラグ設定形式は使用できません
A1859E : この命令のフラグ保存形式は使用できません
A1860E : レジスタオペランドはこの命令の R0 ~ R7 である必要があります
A1861E : オプション '&lt;opt&gt;' は廃止されました。
A1862E : 浮動小数点型のサイズは、16 または 32 である必要があります
A1863E : 浮動小数点型のサイズは、32 である必要があります
A1864E : 浮動小数点型のサイズは、16、32、または 64 である必要があります
A1865W : 定数式の前に '#' がありません。
A1866E : ワイヤレス MMX コントロールレジスタは、ターゲット CPU で定義されていません
A1867E : イミディエート 0x&lt;val&gt; がこの操作の範囲外です。使用可能な値は 0x&lt;min&gt; ~ 0x&lt;max&gt; の &lt;mult&gt; の倍数です
A1868E : ビットフィールド LSB は範囲外です。使用可能な値は 0 ~ &lt;max&gt; です
A1869E : レジスタ &lt;field&gt; に PC は指定できません
A1870W : '&lt;attrs&gt;' を除き、領域 '&lt;name&gt;' に正しくない属性があります
A1871E : イミディエート 0x&lt;imm&gt; は、0 ~ 255 の範囲で 0 ~ 23 だけ左シフトして表現することも、全バイト、奇数バイト、および偶数バイトで重複することもできません
このエラーは armasm が指定されたイミディエートで命令をエンコードできない場合に発生します。
例えば、ARM コンパイラ 4.1 以上では、Thumb 状態の次の命令がこのエラーの原因となります。
  ADDS    r0, r1, #-20
これを回避するには、代わりに同等の SUBS 命令を使用します。
  SUBS    r0, r1, #20
A1872E : レジスタによるシフトは使用できません
A1873E : この命令の非ライトバック形式のみが存在します
A1874E : 指定されたレジスタリストをターゲット命令セットにロード、格納できません
A1875E : レジスタ Rn はこの命令の R0 ~ R7 である必要があります
指定されたレジスタが R0 ~ R7 の範囲内になるように変更します。
A1876W : '|' を :OR: 演算子の同義語として使用することは廃止される予定です。
A1877E : 現在の命令セットでは、&lt;field&gt; に対して指定されたレジスタを使用できません
A1878E : この操作で使用する場合、オフセットは &lt;reqalign&gt; バイトで整列している必要があります
A1879E : 指定されたアドレッシングモードは使用できません
A1880E : データ転送サイズは使用できません
A1881E : &lt;mode&gt; ロード/保存モードは使用できません
A1882E : デスティネーションと最初のソースのレジスタは、同じである必要があります
A1883E : デスティネーションと 2 番目のソースのレジスタは、同じである必要があります
A1884E : 指定された AIF ビットはターゲット CPU で使用できません
A1885E : 現在の命令セットでは、プロセッサモードを変更できません
A1886E : carry-in を使用した追加のオペランドのサイズが無効です: 16 または 32 である必要があります
A1887E : 指定されたソースデータ型は使用できません。次のいずれかである必要があります:&lt;str&gt;
A1888E : 指定されたデスティネーションデータ型は使用できません。次のいずれかである必要があります:&lt;str&gt;
A1889E : 指定されたレジスタ型はターゲットアーキテクチャで使用できません
A1890E : 指定されたシフトを実行すると、予測不能な動作になります
A1891E : このレジスタの組み合わせでライトバックすると、予測不能な動作になります
A1892W : このレジスタの組み合わせでライトバックすることは廃止される予定なので、アークテクチャの今後のリビジョンでは機能しない可能性があります
A1893E : 指定されたフラグを実行すると、予測不能な動作になります
A1894E : 指定されたイミディエートを実行すると、予測不能な動作になります
A1895E : 指定された条件を実行すると、予測不能な動作になります
A1896E : この命令では指定されたアライメントはサポートされていません
A1897E : ビットフィールド幅は範囲外です。使用可能な値は 1 ~ &lt;max&gt; です
A1898E : ターゲットを再配置できません。この命令に適した再配置はありません
A1899E : 指定された演算子は次の命令でのみ使用できます:&lt;instrs&gt;
A1900W : 廃止されるシステム命令名
A1901E : 指定されたシステム命令は、ターゲットアーキテクチャではサポートされていません
A1902E : 指定された特殊レジスタは、ターゲットアーキテクチャではサポートされていません
A1903E : 最初のパスに行がありません。アセンブルできません
命令や指令が、アセンブラのパス 2 に表示されてパス 1 では表示されない場合に発生します。
以下の例は、行がパス 1 に表示されない場合を示しています。
    AREA x,CODE
    [ :DEF: foo
num EQU 42 ; Assembler does not see this line during pass 1 because
           ; foo is not defined at this point during pass 1
    ]
foo DCD num
    END
A1905U : '&lt;filename&gt;' のプリプロセッサ処理ができませんでした
A1906W : 未完了の IT ブロック
A1907W : このシンボルのテストは確認済みです。これは、第 2 パスのエラーの原因となる可能性があります。
この診断はデフォルトでは非表示になっています。A1903EA1908E、または A1909E エラーが発生する可能性がある状況を特定するには、これを有効にして下さい。
A1908E : ラベル '<name>' の値が一致していません: パス 1 では <val1>、パス 2 では <val2> でした
以下の例では、パス 1 では x の値が 0x0004+r9、パス 2 では x の値が 0x0000+r0 であるため、このエラーが生成されます。
    map 0, r0
    if :lnot: :def: sym
        map 0, r9
        field 4
    endif
x   field 4
sym LDR r0, x
A1909E : 第 2 パスに行がありません。アセンブルできません
命令や指令が、アセンブラのパス 1 に表示されてパス 2 では表示されない場合に発生します。
以下の例は、行がパス 2 に表示されない場合を示しています。
    AREA x,CODE
    [ :LNOT: :DEF: foo
    MOV r1, r2  ; Assembler does not see this line during pass 2 because
                ; foo is already defined
    ]
foo MOV r3, r4
    END
A1911E : イミディエート 0x&lt;val&gt; がこの操作の範囲外です。イミディエート値は 0 である必要があります。
A1912E : この命令では、フラグ設定の指定時にレジスタ &lt;field&gt; に PC を指定できません
A1913E : 指定されたオペランド型はこの位置では使用できません
A1914E : 式が必要です
A1915W : この命令またはディレクティブでは再配置は推奨されません
A1916E : 不明な組み込み変数 '<name>'
A1917E : ベクタレジスタ式が必要です
A1921E : 8 ビットのバイトレジスタ式が必要です
A1922E : 16 ビットハーフワード型のレジスタ式が必要です
A1923E : ベクタレジスタのリストが必要です
A1925E : このアーキテクチャではコプロセッサ番号を 14 または 15 にしてください
A1927E : コアレジスタ、64 ビット拡張レジスタ、またはベクタレジスタが必要です
A1931W : IT ブロック内のこの命令は廃止される予定です
A1932E : このアーキテクチャにはレジスタ型を使用できません
A1933E : オプション '&lt;opt&gt;' は、ターゲットアーキテクチャではサポートされていません
A1934E : &lt;shift&gt; によるシフトは使用できません。使用可能な値は &lt;allowed&gt; です
A1936E : リテラルプールが離れすぎています。LTORG を使用して &lt;distance&gt; 以内になるようにアセンブルして下さい
A1937E : 丸めモード Z のみをサポートする固定小数点への変換
A1938E : このアーキテクチャではコプロセッサ番号を 14 にしてください
A1939W : このニーモニックの使用は廃止される予定です
A1940E : 実行専用は &lt;option&gt; と互換性がありません
A1941E : NOP 命令を使用して &lt;nopsize&gt; の非倍数に整列させることができません
A1942E : データ宣言は、実行専用セクションでは使用できません
A1943E : INCBIN は実行専用セクションでは使用できません
A1944E : 実行専用セクションでは、リテラルプールエントリを生成できません
A1992E : 外部シンボルの MOVT は、対応する MOVW 命令に従う必要があります
A1993E : この演算子では <objfmt> でサポートされない再配置が必要です
A1994E : このディレクティブは、<objfmt> ではサポートされていません
A1995E : weak 定義は、<objfmt> ではサポートされていません
A1996E : TYPE は、IMPORT の WEAK の後以外では使用できません
A1997E : weak 外部シンボルの予想されるエイリアス
A1998E : Comdat 関連エリアには Comdat 関連セレクション型が必要です
A1999E : Comdat 関連エリアを別の Comdat 関連エリアにすることはできません
A9511E : 製品定義ファイルが見つかりませんでした
armasm で、必要な製品ライセンスのマッピング(.elmap)ファイルが見つかりません。
これは、以下が原因である可能性があります。
  • .elmap ファイルが欠落している。例えば、インストールが破損している場合などです。
  • ARM_PRODUCT_PATH 環境変数が間違って設定されているため、armasm が間違った場所で .elmap ファイルを探している。
  • ARM_TOOL_VARIANT 環境変数が間違って設定されているため、armasm が存在しない .elmap ファイルを探している。
非機密扱いPDF file icon PDF 版ARM DUI0807CJ
Copyright © 2014, 2015 ARM.All rights reserved.