
NASMかNASKのアセンブラを使っているのですが、MASMと構文が異なっている?せいか、エラーなりました。
MASMでは
DW offset ADR_KOKO
DW seg ADR_KOKO
でOKだと思いますが、NASM/NASKではどうするのでしょうか?
NASM,NASMの文法など詳しく載っている本などありますか?(洋書でも構いません。)
DW 0 ; A---> オフセット
DW 0 ; B---> セグメント
ADR_KOKO: ;ここのオフセットとアドレス値をA,Bにセットしたい
mov eax, 1
...
RET
No.2ベストアンサー
- 回答日時:
提示したページからディレクトリを上に行って全体の目次を見るとかはしましたか?
http://www.yuasa.kuis.kyoto-u.ac.jp/~nobu/study/ …
3.6 SEG and WRT
seg演算子はシンボルのセグメントベースを返す。これはシンボルのオフセットに関して定義される(?)。
mov ax, seg symbol
mov es, ax
mov bx, symbol
はes:bxを有効なポインタsymbolにロードする。
16ビットのセグメントやグループは重なってしまうかもしれないので、必要に応じて異なるセグメントベースを用いてシンボルを参照する場合がある。
NASMでは、このためwrt(With Reference To)キーワードを用いる。
mov ax, weird_seg ; weird_segはセグメントベース
mov es, ax
mov bx, symbol wrt weird_seg
はes:bxを、異なるが機能は同じであるシンボルへのポインタ symbolにロードする。
NASMはfar(セグメント間)コール、ジャンプをcall segment:offsetでサポートする。ここでsegmentとoffsetは即値を表す。
farプロシージャを呼ぶためには、
call (seg procedure):procedure
call weird_seg:(procedure wrt weird_seg)
とする。分かりやすくするため、かっこを書く。
上の最初の使い方と同じ意味にcall far procedureがある。
jmpはcallと同じ働きをする。
データセグメントでデータへのfarポインタを宣言するには、
dw symbol, seg symbol
とする。
No.1
- 回答日時:
どこでnasmを入手したかわかりませんけど、開発元でダウンロードできる
SourceForge.net: Files
http://sourceforge.net/project/showfiles.php?gro …
ドキュメントでは不足ですか?
MASMユーザーへのクイックスタートって項目もありますよ。
探したら日本語訳もありました
http://ryujin.kuis.kyoto-u.ac.jp/~nobu/study/nas …
2.2.2 NASM Requires Square Brackets For Memory References
NASMでは、メモリの内容を参照するときは [ ] をつけて、アドレスを参照するときにはつけない。故に、
foo equ 1
bar dw 2
だと、
mov ax, foo
は、常にコンパイル時の値(EQUでも変数のアドレスでも)を指し、
mov ax, [bar]
は、変数barの内容を指す。
また、NASMではoffsetはいらない。すなわち、
mov ax, offset bar(MASM)=mov ax, bar(NASM)
となる(ともに、変数barのアドレスを表す)。
MASMのコードをNASM用に直したければ、%idefine offset とする。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) x86_32のGASの擬似命令 3 2023/06/07 19:55
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- ドライブ・ストレージ ノートPCの容量について 5 2023/03/15 22:40
- その他(ネットショッピング・通販・ECサイト) この水着、DWスタイルというサイトで見つけて購入したいのですが 怪しいサイトで他のとこから高値で売っ 1 2022/07/29 00:16
- 訴訟・裁判 法律・裁判に関する問い 2 2023/08/02 21:07
- その他(法律) ADR(裁判外紛争解決)についてです。 示談に後悔しています。 リモートでの会議だった為、弁護士が示 6 2022/08/06 09:58
- 会社経営 値上げラッシュについてみなさんはどう思われますか? https://www.nikkei.com/t 6 2023/03/15 11:06
- 株式市場・株価 15日のADR動向=円換算値で高安まちまち、コマツ、ニデック、パナソニックなどが高い 1 2023/06/16 10:00
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- 図書館情報学 著作権 3 2022/10/10 21:43
関連するカテゴリからQ&Aを探す
おすすめ情報
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
戻り値で構造体を返すことは可...
-
ExcelVBAでのkernel32(64bit)
-
アプリを32bitから64bit移行
-
参照型で受け取った引数をポイ...
-
fopne で失敗する原因
-
PASCALとFARの意味
-
LPSTR型の初期化について
-
CWnd::EnableWindow()の扱い方
-
ポインタについて
-
プーさんのマウスポインタを教...
-
連結リスト 要素の入れ替え
-
ハンドルはポインタか
-
C++で関数ポインタから関数名を...
-
自作DLLの引数について、ポイン...
-
NULLポインタが0でない処理系と...
-
TCHAR文字列内の検索について
おすすめ情報