Changes

Jump to: navigation, search

ASSEMBLER PASMO JP

1,155 bytes added, 17:24, 20 December 2020
数値リテラル
:エラー出力ではなく標準出力にエラーメッセージを送信します(オプションのエラーを除く)。
===--mocasenocase===
:識別子の大文字と小文字を区別しません。
#で始まるリテラルは16進定数です。ただし、2つの接詞#がある場合を除きます。[[#operator_doublesharp|##演算子を参照]]してください。
&で始まるリテラルは、&に続く文字に応じて、16進数、8進数、または2進数の定数になります。Hは16進数、Oは8進数、X 16進数を意味します。 16進数。 このいずれでもない場合、文字は有効な16進数である必要があり、定数は16進数です。
%で始まるリテラルはバイナリ定数です。ただし、リテラルが%記号のみである場合を除きます。その場合は演算子です。%で始まるリテラルは2進数の定数です。ただし、リテラルが%記号のみである場合を除きます。その場合は演算子です。[[#operator_percent|以下を参照]]してください。
10進数で始まるリテラルは、10進数、2進数、8進数、または16進数です。数字が0で、次の文字がXの場合、数字は16進数です。そうでない場合、リテラルの接尾辞が調べられます。Dは10進数、Bは2進数、Hは16進数、OまたはQは8進数を意味し、その他の場合は10進数と見なされます。たとえば、FFFFhは16進定数ではなく、識別子です。0FFFFhとして接尾辞表記を使用して記述する必要があります。
=文字列リテラル=
文字列リテラルには、単一引用符または二重引用符で区切られた2つの形式があります。 単一引用符で区切られた文字列リテラルはより単純な形式で、すべての文字は特別な解釈なしに文字列に含まれますが、2つの連続した単一引用符が文字列に含まれる1つの単一引用符文字として扱われるという唯一の例外があります。たとえば、単一引用符で区切られた文字列 単一引用符で区切られた文字列リテラルはより単純な形式で、すべての文字は特別な解釈なしに文字列に含まれますが、2つの連続した単一引用符が文字列に含まれると、1つの単一引用符文字として扱われるという唯一の例外があります。たとえば、単一引用符で区切られた文字列'That<nowiki>''</nowiki>s all folks'は、二重引用符で区切られた"That's all folks"と同じ文字列を生成します。  二重引用符で区切られた文字列リテラルは、CおよびC++言語と同様の方法で解釈されます。 \文字はエスケープ文字として解釈され、次の解釈が行われます。nは改行文字(16進0A)[訳注:CR]、rは復帰(16進0D)[訳注:LF]、tはタブレータ(16進09)、aはベル(16進07)、xは、次の2つの文字がcharの16進コードと見なされ、そのコードを持つcharが挿入され、8進数のプレフィックスが最大3桁の8進数で始まり、対応する文字が挿入されることを示す文字列、文字、tはタブレータ(16進09)、aはベル(16進07)、xは、次の2つの文字がcharの16進コードと見なされ、そのコードを持つcharが挿入されます。8進数のプレフィックスは最大3桁の8進数で始まり、対応する文字が挿入されます。文字\および "は、文字列に自分自身を挿入することを意味し、その他の文字は将来の使用のために予約されています。  長さ1の文字列リテラルは、含まれる文字の数値と共に数値定数として使用できます。これにより、 'A' + 80hなどの式を期待どおりに評価できます。
=識別子=
 識別子は、ラベル、EQUおよびDEFLシンボル、およびマクロ名とパラメーターに使用される名前です。 Z80ニーモニック、レジスタおよびフラグ名、およびpasmoオペランドとアセンブルディレクティブの名前は予約されており、識別子の名前として使用することはできません。大文字と小文字を区別するモードが使用されている場合でも、予約名は大文字と小文字を区別しません。 次の「文字」は、大文字または小文字の英文字を意味します。他の言語の文字に対応する文字は識別子に使用できません。 識別子は文字「_」、「?」、「 以降の「文字」は、大文字または小文字の英文字を意味します。他の言語の文字に対応する文字は識別子に使用できません。  識別子は文字、「_」、「?」、「@」または「.」で始まり、その後にゼロ個以上の文字、10進数、「_」、「?」、「@」、「.」が続きます。または「」または「$」。 」が続きます。 「$」は無視されますが、「$」が埋め込まれたまたは追加された予約語はそのように認識されません。  「_」で始まる識別子は、オートローカルモードを使用する場合に特別です。詳細については、-alocalオプションとラベルに関する章を参照してください。 alocalオプションと[[#label|ラベルに関する章]]を参照してください。  オプション--nocaseを使用しない場合、識別子は大文字と小文字が区別されます。 --nocaseを使用すると、常に大文字に変換されます。
=ファイル名=
===EQU===
:等しいラベルを前に付ける必要があります。引数は数値式である必要があり、結果はラベルに割り当てられます。使用されるラベルは再定義できません。ラベルを前に付ける必要があります。引数は数値式である必要があり、結果はラベルに割り当てられます。使用されるラベルは再定義できません。 [訳注sample:callvers.asm]  ; callvers.asm ; Show the effect of attach the sample RSX echovers ; Adapted from The CP/M Plus programmers guide. bdos equ 5 prtstr equ 9 vers equ 12 cr equ 0dh lf equ 0ah . . .
===EXITM===
:ファイルをインクルードします。引数で使用される規則については、[[#filename|ファイル名]]の章を参照してください。ファイルが読み取られ、結果は、ファイルがINCLUDE行ではなく現在のファイルにコピーされた場合と同じです。 含まれるファイルには、INCLUDEディレクティブなどが含まれる場合があります。 INCLUDEディレクティブはアセンブリフェーズの前に処理されるため、IFディレクティブを使用して条件付きで異なるファイルを含めることはできません。
[訳注sample:include.txtasm]
org 100h
[訳注sample:tmacro.asm]
  ; tmacro.asm ; Some tests of macro usage. org 100h ; To run in cp/m start: macro bdos, function ld c, function call 5 endm lineend macro ld e, 0Dh bdos 2 ld e, 0Ah bdos 2 endm macro pushall push af push bc push de push hl endm popall macro pop hl pop de pop bc pop af endm ; Another way. pall macro operation irp reg, af, bc, de, hl local i1 operation reg endm endm pushall2 macro pall push endm popall2 macro irp reg, af, bc, de, hl pop reg endm endm ; Yet another way
pushmany macro reg
endm
pushall3 macro pushmany af, bc, de, hl endm ; Main program ; pushall ; pushall2 pushall3 ld de, hello i1 bdos 9 i2: lineend ;popall popall2 bdos 0 hello db 'Hello, world.$' end start ; End of tmacro.asm .
識別子の貼り付け:MACRO内で演算子##を使用して2つの識別子を結合し、別の識別子を作成できます。これは、マクロ引数に依存する識別子を作成できるようにすることを目的としています。

Navigation menu