は、任意の言語でルートが通常ありますが、あなたはおよそfaffする必要がありますこれらのことが常に文書化されているとは限らないため、1日か2日は避けてください。
HLLのフレーバーに大域メモリ領域を宣言します。 DIM LABELNAME1(0)
すると、その後は、Googleのpop [^
どこにも見つけることができませんASM
でそれをポップ、それが一定で動作するものだ
mov eax, ^LABELNAME(0)
mov eax, dword [_lablename]
mov eax, ^_lablename
etc etc etc
EAXに住所を置くのasm構文を検索HLLS
push eax
pop [^LABELNAME1(0)]
あなたが
を好きなときに今すぐあなたのHLL及びASMがお互いにチャットすることができます
だから、Probblyプログラム
._labelname
mov dword [_lablename], 0
とラベル
としてASMによって後で使用の非常に開始時に宣言する必要があり
Undefined symbol _labelname
を考え出す価値は十分です私が言うように、あなたはHLLのあなたの特定の味のためにそれを混乱させてしまいます。そして、グローバルは一番うまくいくようです。
あなたはまた、ASM動的変数を格納し、オペコードを実行するための独立したメモリゾーンを宣言する方法を理解する必要がありますか、ASM
私が書いた小さなルーチンの速度の利点を損なうであろうキャッシュ上書き取得しますこれらの区域を分けることなく、走るのに20時間かかった。分離で、それはこれが16ビットのものである、(間抜けメモリ規則にDOSなどは、)あなたはHLLと32ビットのものをやっていない
mov ax, OFFSET _labelname
1時間かかりました?同じセグメントに20年手遅れ
jmp cs:_labelname
作品を、それがすべて一つのセグメントに起こっていない限り
あなたが_labelname
、dx:ax
などを見つけるために、二重のメモリオペランドが必要になりますし、前述のように、あなたはしているが、より大きいプログラムの場合、csの部分は特定のセグメントの上書きとfar jump/returnになる必要があります
さらに、動的asm変数をasmコードセグメントに追加すると、asm速度を最大化する基本ルールが壊れています
出典
2013-06-22 08:38:19
ady
実際の '_asm'ブロック内にラベルを設定しようとしましたか? – Cyclonecode
あまりにも遅れて20年尋ねた。コンパイラを更新してください。 –
@Kristerはい、asmブロックで定義しようとしました。それでも動作しません。 – Mikael