a4_d0006
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* a4_d0006: ラベル計算しかしないアセンブラについて
-(by [[K]], 2026.05.14)
** (1)
-プリプロセッサ関数でアセンブラを作ろうと思ったら、ラベル...
-その「ラベル計算だけをするアセンブラ」っていったいどんな...
** (2)
-まずラベル計算が一切ない場合、 DB(dataByte)、DW(dataW...
-まあプリプロセッサ機能はもはや空気のように使えるので、
#define DW(i) DB((i)&0xff); DB(((i)>>8)&0xff)
#define DD(i) DW((i)&0xffff); DW(((i)>>16)&0xffff)
-という2行をアセンブラ変換用のヘッダファイルに書き足して...
-DB() 命令を検出したら、かっこの中の式を計算して、それを ...
** (3)
-x86のアセンブラには、 JMP 命令があります。これは goto み...
LABEL(lp0);
INC(EAX);
JMP(lp0);
-例えばこんな感じです。ここでは INC(EAX); を無限に繰り返...
-LABEL() 命令は、 lp0: の代用表記です。プリプロセッサが扱...
-これが変換されると、以下のようになります。
LBL(4);
DB(0x40);
DB(0xE9); DD_L(4, 1, -4);
-この DD_L() というのは「ラベル計算付きの DD 命令」です。...
-まずラベルlp0は、適当な整数値に変換されます。これはプリ...
#defineX lp0 defEnum(0)
#defineX lp1 defEnum(0)
#defineX skp0 defEnum(0)
-これで(たとえば) lp0 は 4 になり、 lp1 は 5 になり、 s...
-DD_L() 命令で出てくる(ラベル番号1)は特別な意味を持ってい...
-だから DD_L(4, 1, -4); は相対ジャンプのためのオフセット...
-なお、 LBL() 命令は、ラベル宣言がここにあったということ...
* こめんと欄
#comment
終了行:
* a4_d0006: ラベル計算しかしないアセンブラについて
-(by [[K]], 2026.05.14)
** (1)
-プリプロセッサ関数でアセンブラを作ろうと思ったら、ラベル...
-その「ラベル計算だけをするアセンブラ」っていったいどんな...
** (2)
-まずラベル計算が一切ない場合、 DB(dataByte)、DW(dataW...
-まあプリプロセッサ機能はもはや空気のように使えるので、
#define DW(i) DB((i)&0xff); DB(((i)>>8)&0xff)
#define DD(i) DW((i)&0xffff); DW(((i)>>16)&0xffff)
-という2行をアセンブラ変換用のヘッダファイルに書き足して...
-DB() 命令を検出したら、かっこの中の式を計算して、それを ...
** (3)
-x86のアセンブラには、 JMP 命令があります。これは goto み...
LABEL(lp0);
INC(EAX);
JMP(lp0);
-例えばこんな感じです。ここでは INC(EAX); を無限に繰り返...
-LABEL() 命令は、 lp0: の代用表記です。プリプロセッサが扱...
-これが変換されると、以下のようになります。
LBL(4);
DB(0x40);
DB(0xE9); DD_L(4, 1, -4);
-この DD_L() というのは「ラベル計算付きの DD 命令」です。...
-まずラベルlp0は、適当な整数値に変換されます。これはプリ...
#defineX lp0 defEnum(0)
#defineX lp1 defEnum(0)
#defineX skp0 defEnum(0)
-これで(たとえば) lp0 は 4 になり、 lp1 は 5 になり、 s...
-DD_L() 命令で出てくる(ラベル番号1)は特別な意味を持ってい...
-だから DD_L(4, 1, -4); は相対ジャンプのためのオフセット...
-なお、 LBL() 命令は、ラベル宣言がここにあったということ...
* こめんと欄
#comment
ページ名: