【アセンブル指示命令とは?】
アセンブラは多くの機能をもっています。その機能は大部分がアセンブル
結果を見やすく、デバッグしやすくするためのものですが、それらは使う人
が指示してやる必要があります。その指示のための命令(いわば擬似命令)
がアセンブル指示命令(Directive)です。
【アセンブル指示命令の種類】
数多くの種類がありますが、大別すると下記5種類となります。
1.Contorol Directives
アセンブルに各種の条件を指定するための命令
2.Data Directives
メモリ配置やシンボル名の定義をして参照がしやすいようにする命令
3.Listing Directives
アセンブルリストの出力内容を指示する命令でタイトルづけや
改ページ指示などがある。
4.Macro Directives
マクロ命令を定義するための命令
5.Object File Directives
リロケータブルオブジェクトを出力する時に使う命令
【Directives一覧表】
DirectivesとしてMPASMで使えるもののすべては下表となっています。
これらの中から選択して使います。表中の規則は下記
角カッコ([]) :省略可能なオプション
かぎカッコ(<>):付加オプション
パイプ(|) :いずれかの選択
Directive Description Syntax BADRAM Specify invalid RAM locations __badram <expr> BANKISEL Genrate RAM bank selecting code for indirect addressing bankisel <label> BANKSEL Generate RAM bank Selecting code banksel <label> CBLOCK Define a Block of Constants cblock [<expr>] CODE Begins executable code section [<name>] code [<address>] __CONFIG Specify configuration bits __config <expr> CONSTANT Declare Symbol Constant constant <label>[=<expr>,...,<label>[=<expr>]] DATA Create Numeric and Text Data [<label>] data <expr>,[,<expr>,...,<expr>]
[<label>] data "<text_string>"[,"<text_string>",...]DB Declare Data of One Byte [<label>] db <expr>[,<expr>,...,<expr>]
[<label>] db "<text_string>"[,"<text_string>",...]DE Define EEPROM Data [<label>] de <expr>[,<expr>,...,<expr>]
[<label>] de "<text_string>"[,"<text_string>",...]#DEFlNE Define a Text Substitution Label define <name>[<value>]
define <name>[<arg>,...,<arg>]<value>DT Define Table [<label>] dt <expr>[,<expr>,...,<expr>]
[<label>] dt "<text_string>"[,"<text_string>",...]DW Declare Data of One Word [<label>] dw <expr>[,<expr>,...,<expr>]
[<label>] dw "<text_string>"[,"<text_string>",...]ELSE Begin Alternative Assembly Block to lF else END End Program Block end ENDC End an Automatic Constant Block endc ENDlF End conditional Assembly Block endif ENDM End a Macro Definition endm ENDW End a While Loop endw EQU Define an Assembly Constant <label> equ <expr> ERROR lssue an Error Message expr "<text_string>" ERRORLEVEL Set Error Level errorlevel 0|1|2|<+|-><message number> EXITM Exit from a Macro exitm EXPAND Expand Macro Listing expand EXTERN Declares an extenal label extern <label>[,<label>] FlLL Fill Memory [<label>] fill <expr>,<count> GLOBAL Export a defined label global <label>[,<label>] IDATA Begins initialized data section [<name>] idata [<address>] __IDLOCS Specify ID locations __idlocs <expr> IF Begin Conditionally Assembled Code Block if <expr> IFDEF Execute if Symbol has Been Defined ifdef <label> IFNDEF Execute if Symbol has not Been Defined ifndef <label> #INCLUDE include Additional Source File include <<include_file>>|"<include_file>" LIST Listing Options list [<list_option>,...,<list_option>] LOCAL Declare Local Macro Variable local <label>[,<label>] MACRO Declare Macro Definition <label> macro [<arg>,...,<arg>] __MAXRAM Specify maximum RAM address __maxram <expr> MESSG Create User Defined Message messg <message_text>"" NOEXPAND Turn off Macro Expansion noexpand NOLIST Turn off Listing Output nolist ORG Set Program Orgin <label> org <expr> PAGE lnsert Listing Page Eject page PAGESEL Generate ROM page selecting code pagesel <label> PROCESSOR Set Processor Type processor <processor_type> RADIX Specify Default Radix radix <default_radix> RES Reserve Memory [<label>] res <mem_units> SET Define an Assembler Variable <label> set <expr> SPACE lnsert Blank Listing Lines space <expr> SUBTlTLE Specify Program Subtitle subtitle "<sub_text>" TlTLE Specify Program Title title "<title_text>" UDATA Begins uninitialized data section [<name>] udata [<address>] UDATA_OVR Begins 0verlayed uninitialized data section [<name>] udata_ovr [<address>] UDATA_SHR Begins Shared uninitialized data Section [<name>] udata_shr [<address>] #UNDEFlNE Delete a Substitution Label #undefine <label> VARlABLE Declare Symbol Variable variable <label>[=<expr>,...,<label>[=<expr>]] WHlLE Perform Loop While Condition is True while <expr>