1,041
edits
Changes
→挿入モード:
===編集モード===
===挿入モード:===
== 4.アセンブラーディレクティブ==
ENT
プログラムの作業アドレスを現在のコンパイルアドレスに設定します。 例:SCREEN EQU#4000例:
ORG #8000
LD HL,BEGIN ;Source: routine
DI
HALT ;hang forever
BEGIN DISP SCREEN MARKA DEC A
HALT
JP NZ,MARKA ;we use JP and it works
END
この方法で現在のDISPシフト(shift = org-disp)を取得できます:ORG 0disp)を取得できます:
a ORG 0
ENT
ORG a + shiftをシフトshift DISP a INCLUDE "drv:filename" [,page]
LDIR
MAIN "filename"[,page]
現在のソース(プロジェクトのマイナーユニットと見なされる)の代わりに、指定されたメインソースをコンパイルします。 ソースの最初のコマンドでなければなりません。 記号「。」 記号「.」 ファイル名の「*」は「?」として指定する必要があります。 例:
MAIN "MAKE6?7",6
INCBIN "drv:filename" [,size]
ディスクからロードされたsizeバイト(またはディレクトリで指定されたサイズ)のコードブロックをコンパイル済みコードに含めます。 ディスク上のファイルがサイズよりも長い場合、部分的にロードされます。
DUP <番号>
コンパイル中に何度も繰り返されるブロックの始まり。 数値はいつものように表現することができます。
DB byte|string[,byte|string...]
DEFBと同じ。 バイトは式である場合があります(結果の下位バイトが使用されます)。 例:
DEFB "jumps over",13,10,"the lazy dog",EOFsymbol
DW word[,word...]
DW word [,word...]
DW ALASKA,BUFFER,12,#BD15,32767,.NUMB1
DEFW 12345,34567
DS howmanytimes [、bytes]
DS 10,#E5
DEFS 32,#ED,#B0
DD [#] hexbyte [hexbytes]
DB #1D, #4F, #DC, #42, #23
+<something>
行サイズ=#2C ..#2Fでは使用しないでください! ディスクからテキストがロードされた後、行の先頭で「+」がスキャンされます(「-」は「+」になります)。 コンパイルはこれらの行をコンパイルし、「+」を「-」に変更して、2回目にコンパイルしないようにします。 例:
STSは最初のアセンブリでのみロードされます。
label = expressionラベルを定義または再定義します。 例:SHLUSS = 0expression ラベルを定義または再定義します。 例:
#8000の後のメモリは、単語0..16384で埋められます。
IF0 <式>
<body1>
[そうしないと ELSE
<body2>]
ENDIF
IFN <式>
<body2>
[そうしないと ELSE
<body1>]
ENDIF
反対。 254層までの条件付きコンパイル内の条件付きコンパイルが可能です。
<本体>
ENDL
ローカルラベルブロック。 この構造内のすべてのラベルは、外部では見えません(@で始まるグローバルラベルを除く)。 LOCAL内のLOCALは許可されます。 ラベルがLOCALブロック内で定義されているが、このラベルが外部からアクセスされた場合、グローバルになります。
<マクロ名> [パラメーター1 [、パラメーター...]]
マクロを使用します。 パラメーターはコンマで分割されます(引用符で囲まれたコンマはカウントしません)。
これは、画面アドレスを現在の行よりも下の行にカウントする一般的なDOWN HLまたはDOWN DEルーチンです。 このタイプの条件の使用:
アセンブリ中にメッセージや数字を表示します。 / D、/ H、および/ Aキーは、1つの次の番号の出力形式を定義します。 キーなしの番号は現在のシステムに表示されます(configを参照)。 / D-10進数、/ H-16進数、/ A-両方のシステム。 / Lは、行リードおよびキャリッジリターンなしで、古い行に表示することを定義します。 / Tは、指定された式とその値を示します。 例:
DISPLAY / A、 "abc + xyz"、abc + xyz
アセンブリ中に指定されたルーチンを呼び出します。 すべてのポストラベルはまだ評価されていません。ALASMは#8000です。
== 5.式==
優先順位なしで左から右に評価されます(括弧を除く)。 16ビットの符号付き/符号なし整数が使用されます。 a + b ab a-b a * b a / b a&b- a&b:AND a | b-:OR a!b- a!b:XOR a> b:"a"を"b"ビット分右にサイクリックシフトします a<b:上記と同様に左にサイクリックシフトします。 ():括弧です (最初に評価されます) {a}:"a"のメモリアドレスの内容です a~:現在の内容を反転します(-1-ワード「a」「b」ビットのサイクリックシフトa 4 a) ?label:ラベルが定義されている場合は0を、いない場合は#ffffを返します。定義されていないが、以前アクセスされていた場合は1を、ラベルがマクロである場合は2を返します。 'a:aの上位バイト .a:aの下位バイト %const:バイナリ数値 $:現在のコンパイルしているアドレス(DISP内ではシフトします) $$:現在のコンパイルしているページ + {$}}および-#BF43 make; mkace!を除くすべての操作では、ワンパスコンパイル方式により、以前に定義されていないラベルは許可されません。
== 6.エラー==
0構文エラー