本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM44-00203-3 F2MC®-16FX 16 ビット・マイクロコントローラ プログラミングマニュアル F2MC®-16FX 16 ビット・マイクロコントローラ プログラミングマニュアル 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 F2MC-16FX シリーズは , ASIC(Application Specific IC) 対応が可能なオリジナル 16 ビッ ト・ワンチップ・マイクロコントローラです。民生用機器 , 産業用機器 , 車載用機器な ど , 高速リアルタイム処理が要求される用途に適しています。 ■ 商標 F2MC は FUJITSU Flexible Microcontroller の略で , 富士通マイクロエレクトロニクス株 式会社の登録商標です。 その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録 商標です。 ■ 本書の対象読者 本書は , 実際にこの F2MC®-16FX シリーズ・マイクロ・コントローラを使用して製品 を開発される技術者の方 , 特に F2MC-16FX 用アセンブラのアセンブリ言語を用いてプ ログラムを製作されるプログラマの方を対象に , F2MC-16FX シリーズの各種命令につ いて解説したものです。 ■ 本書の全体構成 本書は , 以下に示す 8 つの章および付録から構成されます。 第 1 章 CPU F2MC-16FX CPU コアの概要と構成例について説明します。 第 2 章 メモリ空間 F2MC-16FX CPU のメモリ空間について説明します。 第 3 章 専用レジスタ F2MC-16FX CPU の専用レジスタについて説明します。 第 4 章 汎用レジスタ F2MC-16FX CPU の汎用レジスタについて説明します。 第 5 章 プリフィックスコード プリフィックスコードについて説明します。 第 6 章 割込み F2MC-16FX の割込み処理の機能と動作について説明しています。 第 7 章 アドレス指定方式 F2MC-16FX の各命令におけるアドレス指定方式について説明します。 第 8 章 命令細則 アセンブラで使用される各実行命令について , リファレンス形式で説明します。な お , 各実行命令は , アルファベット順に掲載します。 付録 F2MC-16FX 命令一覧および命令マップなどを記載します。 i ■ 参照マニュアル 下記のマニュアルを併せてご覧ください。 • F2MC-16L/16FX/16/16H/16F アセンブラマニュアル • F2MC-16FX 各品種のハードウェアマニュアル ii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ), ならびに極めて高い信頼性 が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright ©2008-2010 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iii iv 目次 第1章 1.1 1.2 第2章 2.1 2.2 2.3 2.4 2.5 第3章 3.1 3.2 3.3 3.4 3.5 3.6 3.7 第4章 4.1 4.2 第5章 5.1 5.2 5.3 5.4 第6章 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 第7章 7.1 7.2 CPU.............................................................................................................1 CPU の概要 ............................................................................................................................. 2 構成例 ...................................................................................................................................... 4 メモリ空間 ..................................................................................................9 CPU のメモリ空間................................................................................................................. 10 リニア方式のアドレス指定.................................................................................................... 11 バンク方式のアドレス指定.................................................................................................... 13 バンクに分割されたメモリ空間と各バンクレジスタの値..................................................... 15 多バイト長データのメモリ上でのデータ構成とアクセス..................................................... 16 専用レジスタ.............................................................................................19 専用レジスタの構成 .............................................................................................................. 20 アキュムレータ (A)................................................................................................................ 22 ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) .................................. 24 プロセッサステータス (PS)................................................................................................... 26 プログラムカウンタ (PC) ...................................................................................................... 31 ダイレクトページレジスタ (DPR)......................................................................................... 32 バンクレジスタ (PCB, DTB, ADB, USB, SSB)...................................................................... 33 汎用レジスタ.............................................................................................35 RAM 上のレジスタバンク ..................................................................................................... 36 RAM 上の汎用レジスタの呼び出し方 ................................................................................... 38 プリフィックスコード ..............................................................................39 バンクセレクトプリフィックス ............................................................................................ 40 コモンレジスタバンクプリフィックス (CMR) ...................................................................... 42 フラグ変化抑止プリフィックスコード (NCC) ...................................................................... 43 プリフィックスコードに関する制約 ..................................................................................... 44 割込み .......................................................................................................47 割込みの概要 ......................................................................................................................... 48 割込みベクタ ......................................................................................................................... 50 割込み制御レジスタ (ICR)..................................................................................................... 53 ノンマスカブルインタラプト (NMI) ...................................................................................... 56 割込みフロー ......................................................................................................................... 59 ハードウェア割込み .............................................................................................................. 61 ソフトウェア割込み .............................................................................................................. 65 多重割込み............................................................................................................................. 67 例外 ....................................................................................................................................... 70 アドレス指定方式 .....................................................................................75 実効アドレスフィールド ....................................................................................................... 76 直接アドレス指定方式........................................................................................................... 77 v 7.3 第8章 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 8.12 8.13 8.14 8.15 8.16 8.17 8.18 8.19 8.20 8.21 8.22 8.23 8.24 8.25 8.26 8.27 8.28 8.29 8.30 8.31 8.32 8.33 8.34 8.35 8.36 8.37 8.38 8.39 8.40 8.41 8.42 8.43 間接アドレス指定方式........................................................................................................... 79 命令細則....................................................................................................83 命令細則の読み方 .................................................................................................................. 84 ADD (Add Byte Data of Destination and Source to Destination) ........................................... 87 ADDC (Add Byte Data of AL and AH with Carry to AL) ......................................................... 89 ADDC (Add Byte Data of Accumulator and Effective Address with Carry to Accumulator)... 90 ADDCW (Add Word Data of Accumulator and Effective Address with Carry to Accumulator) ............................................................................................................................................... 92 ADDDC (Add Decimal Data of AL and AH with Carry to AL)................................................. 94 ADDL (Add Long Word Data of Destination and Source to Destination)............................... 95 ADDSP (Add Word Data of Stack Pointer and Immediate Data to Stack Pointer) ................ 97 ADDW (Add Word Data of AL and AH to AL) ........................................................................ 99 ADDW (Add Word Data of Destination and Source to Destination) .................................... 100 AND (And Byte Data of Destination and Source to Destination) ......................................... 102 AND (And Byte Data of Immediate Data and Condition Code Register) ............................. 104 ANDL (And Long Word Data of Destination and Source to Destination)............................. 106 ANDW (And Word Data of AH and AL to AL) ...................................................................... 108 ANDW (And Word Data of Destination and Source to Destination) .................................... 109 ASR (Arithmetic Shift Byte Data of Accumulator to Right)................................................... 111 ASRL (Arithmetic Shift Long Word Data of Accumulator to Right) ...................................... 113 ASRW (Arithmetic Shift Word Data of Accumulator to Right).............................................. 115 ASRW (Arithmetic Shift Word Data of Accumulator to Right).............................................. 117 BBcc (Branch if Bit Condition satisfied) ............................................................................... 119 Bcc (Branch relative if Condition satisfied) .......................................................................... 121 CALL (Call Subrourtine)....................................................................................................... 123 CALLP (Call physical Address)............................................................................................ 125 CALLV (Call Vectored Subroutine) ...................................................................................... 127 CBNE (Compare Byte Data and Branch if not equal).......................................................... 129 CLRB (Clear Bit) .................................................................................................................. 131 CMP (Compare Byte Data of Destination and Source) ....................................................... 132 CMPL (Compare Long Word Data of Destination and Source) ........................................... 134 CMPW (Compare Word Data of Destination and Source)................................................... 136 CWBNE (Compare Word Data and Branch if not equal) ..................................................... 138 DBNZ (Decrement Byte Data and Branch if not zero) ......................................................... 140 DEC (Decrement Byte Data) ............................................................................................... 142 DECL (Decrement Long Word Data) ................................................................................... 143 DECW (Decrement Word Data)........................................................................................... 144 DIV (Divide Word Data by Byte Data).................................................................................. 146 DIVW (Divide Long Word Data by Word Data).................................................................... 148 DIVU (Divide unsigned Word Data by unsigned Byte Data)................................................ 150 DIVUW (Divide unsigned Long Word Data by unsigned Word Data) .................................. 152 DWBNZ (Decrement Word Data and Branch if not Zero).................................................... 154 EXT (Sign Extend from Byte Data to Word Data)................................................................ 156 EXTW (Sign Extend from Word Data to Long Word Data) .................................................. 157 FILS, FILSI (Fill String Byte) ................................................................................................ 158 FILSW, FILSWI (Fill String Word)....................................................................................... 160 8.44 INC (Increment Byte Data( アドレス指定 ))......................................................................... 162 8.45 INCL (Increment Long Word Data) ...................................................................................... 163 vi 8.46 INCW (Increment Word Data).............................................................................................. 164 8.47 INT (Software Interrupt) ....................................................................................................... 166 8.48 8.49 8.50 8.51 8.52 8.53 8.54 8.55 8.56 8.57 8.58 8.59 8.60 8.61 8.62 8.63 8.64 8.65 8.66 8.67 8.68 8.69 8.70 8.71 8.72 8.73 8.74 8.75 8.76 8.77 8.78 8.79 8.80 8.81 8.82 8.83 8.84 8.85 8.86 8.87 8.88 8.89 8.90 8.91 8.92 8.93 8.94 INT (Software Interrupt( ベクタ指定 ))................................................................................. 168 INT9 (Software Interrupt) ..................................................................................................... 170 INTP (Software Interrupt)..................................................................................................... 172 JCTX (Jump Context) .......................................................................................................... 174 JMP (Jump Destination Address) ........................................................................................ 176 JMPP (Jump Destination Physical Address) ....................................................................... 178 LINK (Link and create new stack frame).............................................................................. 179 LSL (Logical Shift Byte Data of Accumulator to Left)........................................................... 181 LSLL (Logical Shift Long Word Data of Accumulator to Left) .............................................. 183 LSLW (Logical Shift Word Data of Accumulator to Left)...................................................... 185 LSLW (Logical Shift Word Data of Accumulator to Left)...................................................... 187 LSR (Logical Shift Byte Data of Accumulator to Right)........................................................ 189 LSRL (Logical Shift Long Word Data of Accumulator to Right) ........................................... 191 LSRW (Logical Shift Word Data of Accumulator to Right)................................................... 193 LSRW (Logical Shift Word Data of Accumulator to Right)................................................... 195 MOV (Move Byte Data from Source to Accumulator) .......................................................... 197 MOV (Move Byte Data from Accumulator to Destination) ................................................... 199 MOV (Move Byte Immediate data to Destination) ............................................................... 201 MOV (Move Byte Data from Source to Destination) ............................................................ 203 MOV (Move Byte Data from AH to Memory ) ...................................................................... 205 MOVB (Move Bit Data from Bit Address to Accumulator).................................................... 207 MOVB (Move Bit Data from Accumulator to Bit Address).................................................... 209 MOVEA (Move Effective Address to Destination)................................................................ 211 MOVL (Move Long Word Data from Source to Accumulator).............................................. 213 MOVL (Move Long Word Data from Accumulator to Destination) ....................................... 215 MOVN (Move Immediate Nibble Data to Accumulator) ....................................................... 217 MOVS, MOVSI (Move String Byte with Increment) ............................................................. 218 MOVSD (Move String Byte with Decrement)....................................................................... 220 MOVSW, MOVSWI (Move String Word with Increment) ..................................................... 221 MOVSWD (Move String Word with Decrement) .................................................................. 223 MOVW (Move Word Data from Source to Accumulator) ..................................................... 224 MOVW (Move Word Data from Accumulator to Destination)............................................... 226 MOVW (Move Immediate Word Data to Destination) .......................................................... 228 MOVW (Move Word Data from source to Destination)........................................................ 230 MOVW (Move Immediate Word Data to io) ......................................................................... 232 MOVW (Move Word Data from AH to Memory)................................................................... 233 MOVX (Move Byte Data with Sign Extension from Source to Accumulator) ....................... 235 MUL (Multiply Byte Data of Accumulator)............................................................................ 237 MUL (Multiply Byte Data of Accumulator and Effective Address)........................................ 238 MULW (Multiply Word Data of Accumulator) ....................................................................... 240 MULW (Multiply Word Data of Accumulator and Effective Address) ................................... 241 MULU (Multiply Unsigned Byte Data of Accumulator) ......................................................... 243 MULU (Multiply Unsigned Byte Data of Accumulator and Effective Address) ..................... 244 MULUW (Multiply Unsigned Word Data of Accumulator) .................................................... 246 MULUW (Multiply Unsigned Word Data of Accumulator and Effective Address) ................ 247 NEG (Negate Byte Data of Destination) .............................................................................. 248 NEGW (Negate Word Data of Destination) ......................................................................... 250 vii 8.95 8.96 8.97 8.98 8.99 8.100 8.101 8.102 8.103 8.104 8.105 8.106 8.107 8.108 8.109 8.110 8.111 8.112 8.113 8.114 8.115 8.116 8.117 8.118 8.119 8.120 8.121 8.122 8.123 8.124 8.125 8.126 8.127 8.128 8.129 8.130 8.131 8.132 8.133 8.134 8.135 8.136 8.137 8.138 8.139 8.140 NOP (No Operation) ............................................................................................................ 252 NOT (Not Byte Data of Destination) .................................................................................... 253 NOTW (Not Word Data of Destination)................................................................................ 255 NRML (NORMALIZE Long Word)........................................................................................ 257 OR (Or Byte Data of Destination and Source to Destination).............................................. 259 OR (Or Byte Data of Immediate Data and Condition Code Register to Condition Code Register) ............................................................................................................................................. 261 ORL (Or Long Word Data of Destination and Source to Destination ) ................................ 263 ORW (Or Word Data of AH and AL to AL)........................................................................... 265 ORW (Or Word Data of Destination and Source to Destination) ......................................... 266 POPW (Pop Word Data of Accumulator from Stack Memory)............................................. 268 POPW (Pop Word Data of AH from Stack Memory)............................................................ 270 POPW (Pop Word Data of Program Status from Stack Memory)........................................ 272 POPW (Pop Registers from Stack Memory)........................................................................ 274 PUSHW (Push Word Data of Inherent Register to Stack Memory) ..................................... 276 PUSHW (Push Registers to Stack Memory)........................................................................ 278 RET (Return from Subroutine)............................................................................................. 280 RETI (Return from Interrupt)................................................................................................ 282 RETP (Return from physical Address)................................................................................. 285 ROLC (Rotate Byte Data of Accumulator With Carry to Left) .............................................. 287 RORC (Rotate Byte Data of Accumulator With Carry to Right) ........................................... 289 SBBS (Set Bit and Branch if Bit Set) ................................................................................... 291 SCEQ, SCEQI (Scan String Byte until equal with Increment) ............................................. 293 SCEQD (Scan String Byte until equal with Decrement) ...................................................... 295 SCWEQ, SCWEQI (Scan String Word until equal with Increment) ..................................... 297 SCWEQD (Scan String Word until equal with Decrement).................................................. 299 SETB (Set Bit) ..................................................................................................................... 301 SUB (Subtract Byte Data of Source from Destination to Destination) ................................. 302 SUBC (Subtract Byte Data of AL from AH with Carry to AL) ............................................... 304 SUBC (Subtract Byte Data of Effective Address from Accumulator with Carry to Accumulator) ............................................................................................................................................. 305 SUBCW (Subtract Word Data of Effective Address from Accumulator with Carry to Accumulator)........................................................................................................................ 307 SUBDC (Subtract Decimal Data of AL from AH with Carry to AL)....................................... 309 SUBL (Subtract Long Word Data of Source from Destination to Destination)..................... 310 SUBW (Subtract Word Data of Source from Destination to Destination) ............................ 312 SUBW (Subtract Word Data of AL from AH to AL) .............................................................. 314 SWAP (Swap Byte Data of Accumulator) ............................................................................ 315 SWAPW (Swap Word Data of Accumulator) ....................................................................... 316 UNLINK (Unlink and create new stack frame) ..................................................................... 317 WBTc (Wait until Bit Condition satisfied) ............................................................................. 318 XCH (Exchange Byte Data of Source to Destination).......................................................... 320 XCHW (Exchange Word Data of Source to Destination)..................................................... 322 XOR (Exclusive Or Byte Data of Destination and Source to Destination) ........................... 324 XORL (Exclusive Or Long Word Data of Destination) ......................................................... 326 XORW (Exclusive Or Word Data of AH and AL to AL) ........................................................ 328 XORW (Exclusive Or Word Data of Destination and Source to Destination) ...................... 329 ZEXT (Zero Extend from Byte Data to Word Data) ............................................................. 331 ZEXTW (Zero Extend from Word Data to Long Word Data)................................................ 332 viii 付録 付録 A A.1 A.2 A.3 付録 B 付録 C C.1 C.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9 C.10 C.11 C.12 C.13 ................................................................................................................333 命令一覧表の説明........................................................................................................... 334 命令一覧表の項目の説明 ............................................................................................. 335 命令一覧表の記号の説明 ............................................................................................. 337 実効アドレスフィールド ............................................................................................. 338 命令一覧表 (351 命令 ) ................................................................................................... 340 命令マップ...................................................................................................................... 356 命令マップの構造 ........................................................................................................ 357 基本ページマップ ........................................................................................................ 359 ビット操作系命令マップ ............................................................................................. 361 文字列操作系命令マップ ............................................................................................. 363 2 バイト系統マップ ..................................................................................................... 365 ea 系命令 ..................................................................................................................... 367 MOVEA RWi,ea 命令 ................................................................................................... 377 MOV Ri,ea 命令 ........................................................................................................... 379 MOVW RWi,ea 命令..................................................................................................... 381 MOV ea,Ri 命令 ........................................................................................................... 383 MOVW ea,RWi 命令..................................................................................................... 385 XCH Ri,ea 命令 ............................................................................................................ 387 XCHW RWi,ea 命令 ..................................................................................................... 389 ix x 本版での主な変更内容 ページ 変更内容 ( 詳細は本文を参照してください。) 22 第 3 章 専用レジスタ 3.2 アキュムレータ (A) ■ アキュムレータ (A) レジスタ名を統一。 A レジスタ → アキュムレータ (A) 26 3.4 プロセッサステータス (PS) ■ プロセッサステータス (PS) レジスタ名を統一。 割込みレベルマスクレジスタ (ILM) → 割込みレベルマスク (ILM) 41 第 5 章 プリフィックスコード 5.1 バンクセレクトプリフィックス ■ バンクセレクトプリフィックス その他の制御系命令(スタック操作)に LINK, UNLINK 命 令を追加。 43 5.3 フラグ変化抑止プリフィックス コード (NCC) ■ フラグ変化抑止プリフィックス コード (NCC) 命令を訂正。 FISW → FILSW MOVE, MOVSW 命令を削除 51 第 6 章 割込み 6.2 割込みベクタ ■ 割込みベクタテーブル 表 6.2-2 命令を訂正。 CALLV 14 → CALLV 14/15 53 6.3 割込み制御レジスタ (ICR) ■ 割込み制御レジスタ (ICR) IX の初期値を訂正。 "0" → 0CH 66 6.7 ソフトウェア割込み ■ ソフトウェア割込みの動作 用語を訂正。 フラグをリセット → フラグをクリア 68 6.8 多重割込み ■ 割込み受付の優先順位 表 6.8-1 73 6.9 例外 ■ ハードウェア例外 ( ノンマスカブ ルインタラプト ) ● 命令ブレーク (VEIB, システム予 約 , DSU のみで利用可 ) 説明を訂正。 実行前の命令ブレーク → 命令実行後の命令ブレーク 80 第 7 章 アドレス指定方式 7.3 間接アドレス指定方式 ■ 間接アドレス指定方式 ● ディスプレースメント付プログ ラムカウンタ間接 (@PC+disp16) レジスタ名を訂正。 プログラム・バンク・レジスタ (PCB) → プログラムカウンタバンクレジスタ (PCB) 第 8 章 命令細則 章全体でフラグ名を変更。 キャリビット (C) → キャリフラグ (C) 85 8.1 命令細則の読み方 ■ 命令細則中で使用される記号 ( 略称 ) 表 8.1-1 brg3 を追加。 87 8.2 ADD (Add Byte Data of Destination and Source to Destination) 説明を訂正。 A の bit8 ∼ bit15 → AL の上位バイト - 説明を訂正。 「受け付け条件」の説明を訂正。 xi ページ 90 変更内容 ( 詳細は本文を参照してください。) 8.4 ADDC (Add Byte Data of Accumulator and Effective Address with Carry to Accumulator) サマリ文を訂正。 A の bit8 ∼ bit15 → AL の上位バイト ● オペレーション 説明を訂正。 (ea) → ( 第 2 オペランド ) 92 8.5 ADDCW (Add Word Data of Accumulator and Effective Address with Carry to Accumulator) ● オペレーション 説明を訂正。 (ea) → ( 第 2 オペランド ) 119 8.20 BBcc (Branch if Bit Condition satisfied) ● アセンブラ形式 説明を訂正。 <第 1 オペランド> → addr16:bp <第 1 オペランド> → dir:bp <第 1 オペランド> → io:bp 124 8.22 CALL (Call Subrourtine) ● 実行例 命令を変更。 CALL @RW0 → CALL @@RW0 128 8.24 CALLV (Call Vectored Subroutine) ● 実行例 表 8.24-1 XX の説明を訂正。 ( 注意事項 ) PCB レジスタ値は XX に設定されます。→ *:XX はプログラムカウンタバンクレジスタ (PCB) の値に 置き換えられます。 132 8.27 CMP (Compare Byte Data of Des- 「● バイト数 , サイクル数」の表を訂正。 tination and Source) 第 1 オペランド : AH → A ● バイト数 , サイクル数 第 2 オペランド : AL → ― 146 8.35 DIV (Divide Word Data by Byte Data) オーバフロー発生時の説明文を訂正。 AL の内容は壊れます → AL の内容は不定です 147 ● 実行例 Example の図を訂正。 EC D8 → 00 C7 148 8.36 DIVW (Divide Long Word Data by Word Data) オーバフロー発生時の説明文を訂正。 AL の内容は壊れます → AL の内容は不定です 157 8.41 EXTW (Sign Extend from Word Data to Long Word Data) ● オペレーション 説明の訂正。 A の bit16 ∼ bit31 → AH 207 8.68 MOVB (Move Bit Data from Bit Address to Accumulator) サマリ文に以下の記述を追加。 AH に AL の値が転送されます。 211 8.70 MOVEA (Move Effective Address to Destination) ● アセンブラ形式 オペランドを訂正。 <destination> → A <destination> → RWi 223 8.77 MOVSWD (Move String Word with Decrement) 命令名称を訂正。 MOVSWI → MOVSWD ● アセンブラ形式 命令名称を訂正。 MOVSWI → MOVSWD 235 8.84 MOVX (Move Byte Data with Sign Extension from Source to Accumulator) ● バイト数 , サイクル数 "MOVX A,Ri" 命令のバイト数を訂正。 2→1 248 8.93 NEG (Negate Byte Data of Destination) サマリ文を訂正。 A の bit8 ∼ bit15 → AL の上位バイト xii ページ 変更内容 ( 詳細は本文を参照してください。) 268 8.104 POPW (Pop Word Data of Accumulator from Stack Memory) サマリ文を訂正。 アキュムレータ (A) の bit16 ∼ 31 → AH アキュムレータ (A) の bit0 ∼ 15 → AL 293 8.116 SCEQ, SCEQI (Scan String Byte until equal with Increment) ● アセンブラ形式 以下の記述を削除。 ( アドレスインクリメント時 ) 295 8.117 SCEQD (Scan String Byte until equal with Decrement) ● アセンブラ形式 以下の記述を削除。 ( アドレスデクリメント時 ) 302 8.121 SUB (Subtract Byte Data of Source from Destination to Destination) サマリ文を訂正。 A の bit8 ∼ bit15 → AL の上位バイト 304 8.122 SUBC (Subtract Byte Data of AL from AH with Carry to AL) サマリ文を訂正。 アキュムレータ (A) の bit8 ∼ bit15 → AL の上位バイト 305 8.123 SUBC (Subtract Byte Data of Effective Address from Accumulator with Carry to Accumulator) サマリ文を訂正。 A の bit8 ∼ bit15 → AL の上位バイト 309 8.125 SUBDC (Subtract Decimal Data of AL from AH with Carry to AL) サマリ文を訂正。 A の bit8 ∼ bit15 → AL の上位バイト 315 8.129 SWAP (Swap Byte Data of Accumulator) ● オペレーション 「● オペレーション」の書き方を変更。 316 8.130 SWAPW (Swap Word Data of Accumulator) ● オペレーション 「● オペレーション」の書き方を変更。 320 8.133 XCH (Exchange Byte Data of Source to Destination) ● オペレーション 「● オペレーション」の書き方を変更。 322 8.134 XCHW (Exchange Word Data of Source to Destination) ● オペレーション 「● オペレーション」の書き方を変更。 331 8.139 ZEXT (Zero Extend from Byte Data to Word Data) サマリ文を訂正。 アキュムレータ (A) の bit8 ∼ bit15 → AL の上位バイト ● オペレーション 説明を訂正。 A の bit8 ∼ bit15 → AL[15:8] 8.140 ZEXTW (Zero Extend from Word Data to Long Word Data) サマリ文を訂正。 アキュムレータ (A) の bit16 ∼ bit31 → AH ● オペレーション 説明を訂正。 A の bit16 ∼ bit31 → AH 付録 付録 B 命令一覧表 (351 命令 ) 表 B-1 "MOVX A,Ri" 命令のバイト数 ( # ) を訂正。 2→1 332 340 xiii ページ 351 変更内容 ( 詳細は本文を参照してください。) 表 B-12 表タイトルを訂正。 分岐アドレス 2 → 分岐命令 2 注記を訂正。 RP が安定している場合 → RP が変化しない場合 352 表 B-13 注記を訂正。 RP が安定している場合 → RP が変化しない場合 353 表 B-14 表タイトルを訂正。 28 命令 → 21 命令 MOVB 命令のオペランドを訂正。 MOVB addr16:bp → MOVB addr16:bp, A 注記を訂正。 ビットが既に設定されていれば → ビットが既にセットされていれば 変更箇所は , 本文中のページ左側の│によって示しています。 xiv 第1章 CPU この章では,F2MC-16FX CPU コアの概要と構成 例について説明します。 1.1 CPU の概要 1.2 構成例 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 1 第 1 章 CPU 1.1 CPU の概要 1.1 F2MC-16FX ファミリ CPU の概要 F2MC-16FX CPU コアは , 民生用・車載用機器などの高速リアルタイム処理が要求さ れる用途向けに設計された 16 ビット CPU です。F2MC-16FX の命令体系はコント ローラ用途向けに設計されており , 高速・高効率な制御処理が可能です。 ■ CPU の概要 F2MC-16FX CPU コアは , 16 ビットデータ処理はもちろん , 内部に 32 ビットアキュム レータを搭載しているため , 32 ビットデータ処理も可能です。ただし , 32 ビットデー タが処理可能なのは一部の命令です。メモリ空間は最大 16M バイトで , リニア方式お よびバンク方式のいずれかにてアクセス可能です。命令体系は , F2MC-16LX と互換性 があります。また , 高水準言語に対応しており , アドレッシングモード , 乗除算命令 , およびビット処理が充実しています。次に , F2MC-16FX CPU の特長を示します。 ● 高速実行 • 最小命令実行時間 16 ns ( 内部 64 MHz 動作時 ) • 基本命令は 1 サイクルで実行 • 5 段パイプラインによる高速処理 • 8 バイトの命令キュー ● 汎用レジスタ : 32 バンク× 8 ワード× 16 ビット ● メモリ空間 : 16M バイト , リニアまたはバンク方式にてアクセス ● コントローラ用途向けに最適化された命令体系 • 高いコード効率 • 豊富なデータタイプ : ビット , バイト , ワード , ロングワード • 拡張アドレッシングモード : 23 種類 • 32 ビットアキュムレータによる高精度演算 (32 ビット長 ) • 符号付きおよび符号なし乗除算命令 ● 強力な割込み機能 • 高速応答速度 ( 約 10 クロックサイクル (CLKB)) • 8 つのプライオリティレベル ( プログラマブル ) • ノンマスカブルインタラプト (NMI) • DMA 転送により , CPU を使わずに割込み要求を処理可能 ( 最高 16 チャネル ) 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 1 章 CPU 1.1 CPU の概要 ● 高水準言語 (C 言語 )/ マルチタスク処理に対応した命令体系 • システムスタックポインタ • 命令体系の対称性 • バレルシフト命令 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 3 第 1 章 CPU 1.2 構成例 1.2 F2MC-16FX ファミリ 構成例 F2MC-16FX CPU および MCU デバイスの構成例を示します。 ■ F2MC-16FX CPU のハードウェア構造 ● F2MC-16FX CPU のブロックダイヤグラムを図 1.2-1 に示します。 図 1.2-1 F2MC-16FX CPU のブロックダイヤグラム 命令キュー フェッチステージ デコードステージ 1 アドレスのデコード操作 デコードステージ 2 データのデコード操作 F2MC−16FX CPU プログラムカウンタ PCB, PC 実行ステージ ライトバック ステージ ALU プロセッサステータス アキュムレータ PS AH, AL スタックポインタ 汎用レジスタ USP, SSP Ri, RWi, RLi バンクレジスタ ダイレクトページレジスタ USB, SSB, DTB, ADB DPR ● CPU パイプラインの動作 CPU には 5 段の命令パイプラインが採用されており , ほとんどの命令を 1 クロック周 期で実行することができます。パイプラインは以下のステージから構成されています。 • 命令フェッチ (IF) : 命令キューから命令をフェッチします。 • 命令デコード 1 (D1): 命令をデコードして, アドレス演算についての制御を行います。 • 命令デコード 2 (D2): 命令をデコードして , オペランドおよびデータ演算の選択を行 います。 • 実行 (EX) : 演算を実行します。 • ライトバック (WB) : 演算結果をレジスタまたはメモリ位置に書き込みます。 4 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 1 章 CPU 1.2 構成例 F2MC-16FX ファミリ 図 1.2-2 命令パイプライン CLK 命令 1 WB 命令 2 EX WB 命令 3 D2 EX WB 命令 4 D1 D2 EX WB 命令 5 IF D1 D2 EX WB IF D1 D2 EX 命令 6 WB 命令の実行順序が入れ替わることはありません。つまり , 命令 A が命令 B の前にパイ プラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。 命令の実行速度は , 原則として 1 サイクルあたり 1 命令です。ただし , メモリ待ちを伴 う転送系命令 , 分岐系命令 , および複数サイクル命令の場合 , 命令の実行に複数のサイ クルが必要となります。また , コードフェッチ中の命令供給が遅い場合にも命令の実行 速度が低下します。 ● 命令キュー CPU には 8 バイトの命令キューがあります。 命令キューには , フェッチユニットから命令が送られます。連続アドレスのコード フェッチにはプリフェッチが使用されます。このプリフェッチの使用により , CPU と F2MC-16FX コアの間のパイプライン実装で発生する待ち時間の問題が解消されていま す。 ● プログラムカウンタ プログラムカウンタバンク (PCB, プログラムアドレスの上位 8 ビット ) およびプログ ラムカウンタ (PC, プログラムアドレスの下位 16 ビット ) は , デコードステージ 1 に よって制御されます。 プログラムカウンタバンクとプログラムカウンタを連結した 24 ビットアドレス {PCB, PC} によって次に実行される命令が指定されます。 ● ALU ALU は , デコードステージ 2 によって制御されます。このステージで , ALU の演算モー ドが選択され , オペランドが読み出されます。実際の演算は次のサイクルで実行されま す。 ALU は , 論理演算および算術演算 ( 乗除算を含む ) に使用します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 5 第 1 章 CPU 1.2 構成例 F2MC-16FX ファミリ ● CPU レジスタとメモリアクセス ライトバックステージでは , 演算の結果が CPU レジスタやメモリ領域に書き込まれま す。プログラムカウンタを除き , CPU レジスタはすべてこのパイプライン最終ステー ジに割り当てられます。 ■ F2MC-16FX ファミリ MCU のハードウェア構造例 F2MC-16FX CPU をベースにした MCU デバイスのハードウェア構造例を図 1.2-3 に示 します。 図 1.2-3 F2MC-16FX コアをベースにした MCU デバイス ユーザポート F2MC−16FX ブートROM CPU 割込み ROM コントローラ (プログラム領域) RAM (データ領域) クロックと モード コントロール 16FX コアバス DMA コントローラ タイマ シリアル A/Dコンバータ 周辺バスブリッジ 周辺バス1 CAN 外部バス 周辺バスブリッジ インタフェース 周辺バス2 F2MC−16FX コア MCU デバイス ● 割込みコントローラ 割込みコントローラは , 入力される割込み要求 (IRQ) の優先度を評価し , 最も高い優先 度の割込み番号を選択します。割込みが認められると , 選択された割込みサービスが CPU によって処理されます。各ハードウェア IRQ には , 優先度を制御するための割込 みレベルレジスタがあります。 6 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 1 章 CPU 1.2 構成例 ● DMA コントローラ DMA コントローラは , CPU が現在実行しているプログラムを中断することなく IRQ を 処理することもできます。これにより , リソースとメモリ間のデータ転送を自動化する こともできます。 デバイスによって , 16 までの DMA チャネルを使用することができます。各 DMA チャ ネルでは実行する IRQ 番号を選択できます。 ● クロックとモード制御 このユニットは , 動作モードを制御し , デバイスが正確に動作しているかを監視しま す。また , すべてのユニットに対して , それぞれの動作モードに合わせて適切なクロッ クを提供します。 ● 外部バスインタフェース 外部バスインタフェースはオプションです。使用可能かどうかはデバイスの構成によ ります。 ● ブート ROM リセットによるデバイス初期化の後 , プログラムカウンタはブート ROM を指し示しま す。そして , CPU は , ブート ROM プログラムの実行を開始します。デバイスが初期化 された後に , リセットベクタがフェッチされて , ブート ROM のコードはリセットベク タから始まるユーザプログラムの実行に分岐します。 ● 周辺バスブリッジ 周辺バスブリッジは , 16FX コアのシステムバスと周辺バス間のインタフェースとなり ます。この周辺バスは , MCU 内部のすべての周辺リソースを接続しています。 周辺バスブリッジは , コアクロックと周辺クロックドメインを同期させます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 7 第 1 章 CPU 1.2 構成例 8 F2MC-16FX ファミリ FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第2章 メモリ空間 F2MC-16FX CPU のメモリ空間について説明しま す。 2.1 CPU のメモリ空間 2.2 リニア方式のアドレス指定 2.3 バンク方式のアドレス指定 2.4 バンクに分割されたメモリ空間と各バンクレジスタの値 2.5 多バイト長データのメモリ上でのデータ構成とアクセス CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 9 第 2 章 メモリ空間 2.1 CPU のメモリ空間 2.1 F2MC-16FX ファミリ CPU のメモリ空間 CPU の管理するすべてのデータ , プログラム , I/O 領域は , CPU の持つ 16M バイト のメモリ空間に配置されます。CPU は 24 ビットのアドレスバスでアドレスを指し 示すことにより , これらのリソースをアクセスできます ( 図 2.1-1 参照 )。 F2MC-16FX のアドレス指定方式は , リニア方式とバンク方式の 2 つに分けることが できます。リニア方式では , 24 ビットアドレスすべてを命令により指定します。バ ンク方式では , 上位 8 ビットアドレスを用途に応じたバンクレジスタにより指定し , 残りの下位 16 ビットアドレスを命令により指定します。 ■ CPU のメモリ空間 図 2.1-1 F2MC-16FX システムとメモリマップの関係例 FFFFFFH プログラム プログラム領域 FF8000 H F 2 MC-16FX データ CPU 810000 H データ領域 割込み 800000 H 周辺回路 0000C0 H 割込み コントローラ 0000B0 H 汎用ポート 〔デバイス〕 周辺回路 000020 H 汎用ポート 000000 H 10 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 2.2 第 2 章 メモリ空間 2.2 リニア方式のアドレス指定 リニア方式のアドレス指定 F2MC-16FX のリニア方式のアドレス指定は , 24 ビットアドレスすべてを命令によ り指定します。 ■ リニア方式のアドレス指定 F2MC-16FX のアドレス形式は , 命令の実効アドレス指定または命令コード自体 ( イン プライド ) で決定されます。リニア方式のアドレス指定は , 2 つの方法で使用できます。 ひとつの方法は , 命令のオペランドで直接 24 ビットのアドレスを指定します。もうひ とつの方法は , 32 ビットの汎用レジスタの下位 24 ビットがアドレスとして参照される 方法です。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 11 第 2 章 メモリ空間 2.2 リニア方式のアドレス指定 F2MC-16FX ファミリ 図 2.2-1 リニア方式のアドレス生成例 (例1)リニア方式の 24ビットオペランド指定 JMPP 123456H 17452D H 旧プログラムカウンタ 17 452D JMPP 123456H +プログラムバンク 123456 H 新プログラムカウンタ 12 次の命令 3456 +プログラムバンク (例2)リニア方式の 32ビットレジスタ間接指定 MOV A,@RL1+7 旧AL XXXX 090700 H 3A +7 RL1 240906F9 (上位8ビットは無視) 新AL 12 003A FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 2 章 メモリ空間 2.3 バンク方式のアドレス指定 F2MC-16FX ファミリ 2.3 バンク方式のアドレス指定 F2MC-16FX のバンク方式のアドレス指定は , アドレスの上位 8 ビットを用途に応じ たバンクレジスタにより指定し , 残りの下位 16 ビットを命令により指定します。 ■ バンク方式のアドレス指定 バンク方式のアドレス指定では , 16M バイトのメモリ空間が 64K バイトごとの 256 個 のバンクに分割されており, 以下に示す4 つのバンクレジスタで各空間に対応するバン クを指定します。 ● プログラムカウンタバンクレジスタ (PCB) PCB レジスタによって指定される 64K バイトのバンクをプログラム (PC) 空間とよびま す。PC 空間は , 主に命令コードやベクタテーブル , 即値データなどを保持するのに使 用されます。 ● データバンクレジスタ (DTB) DTB レジスタによって指定される 64K バイトのバンクをデータ (DT) 空間とよびます。 DT 空間は , 主に読み書き可能なデータや内外リソースの制御レジスタ / データレジス タを保持するのに使用されます。 ● ユーザスタックバンクレジスタ (USB), システムスタックバンクレジスタ (SSB) USB レジスタあるいは SSB レジスタによって指定される 64K バイトのバンクをスタッ ク (SP) 空間とよびます。SP 空間は , プッシュ命令またはポップ命令の実行 , および割 込み処理によるレジスタ退避やスタックアクセスが起きたときにアクセスされます。 USB レジスタと SSB レジスタのどちらが使用されるかは , コンディションコードレジ スタ (CCR) 中のスタックフラグ (S) の値に依存します。 ● アディショナルデータバンクレジスタ (ADB) ADB レジスタによって指定される 64K バイトのバンクをアディショナル (AD) 空間と よびます。AD 空間は , 主に DT 空間に入りきらなかったデータを保持するのに使用さ れます。命令のコード効率を向上させるために , 各命令はアドレス指定方式ごとに表 2.3-1 に示すデフォルト空間が割り当てられています。 表 2.3-1 デフォルト空間 デフォルト空間 CM44-00203-3 アドレス指定 プログラム空間 PC 間接 , プログラムアクセス , 分岐系 データ空間 @RW0,@RW1,@RW4,@RW5 を用いたアドレス指定 , @A,addr16,dir スタック空間 PUSHW, POPW,@RW3,@RW7,@SP を用いたアドレス指定 アディショナル空間 @RW2,@RW6 を用いたアドレス指定 FUJITSU MICROELECTRONICS LIMITED 13 第 2 章 メモリ空間 2.3 バンク方式のアドレス指定 F2MC-16FX ファミリ デフォルト以外の空間を使用するときは , プリフィックスコード ( 前置記号 ) を命令に 先行して指定することにより,そのプリフィックスコードに対応した任意のバンク空間 をアクセスできます。 バンクセレクトプリフィックスとそれにより選択されるメモリ空間を表 2.3-2 に示し ます。 表 2.3-2 バンクセレクトプリフィックス バンクセレクトプリフィックス 選択される空間 PCB プログラム空間 DTB データ空間 ADB アディショナル空間 SPB 選択したときのスタックフラグ (S) の内容に よりシステムスタック空間 , ユーザスタック 空間のどちらかが用いられます。 DTB レジスタ , USB レジスタ , SSB レジスタ , ADB レジスタは , リセットにより 00H に初期化されます。PCB レジスタは FFH に初期化されます。リセット後 , データ空間 , スタック空間およびアディショナル空間は , バンク 00H(000000H ∼ 00FFFFH) に配置さ れ , プログラム空間は , バンク FFH(FF0000H ∼ FFFFFFH) に配置されます。 14 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 2 章 メモリ空間 2.4 バンクに分割されたメモリ空間と各バンクレジスタの値 バンクに分割されたメモリ空間と各バンクレジスタの値 2.4 図 2.4-1 にバンクに分割されたメモリ空間と各レジスタバンクの例を示します。 ■ バンクに分割されたメモリ空間と各バンクレジスタの値 図 2.4-1 各空間の物理アドレスの例 FFFFFF H プログラム空間 FF0000H FF H : PCB (プログラムカウンタバンクレジスタ) B3 H : ADB (アディショナルデータバンクレジスタ) 92 H : USB (ユーザスタックバンクレジスタ) 68 H : DTB (データバンクレジスタ) 4B H : SSB (システムスタックバンクレジスタ) 物 B3FFFF H アディショナル 空間 理 B30000 H ア 92FFFF H ユーザスタック 空間 920000 H ド 68FFFF H レ データ空間 680000 H ス 4BFFFF H 4B0000 H システム スタック 空間 000000 H CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 15 第 2 章 メモリ空間 2.5 多バイト長データのメモリ上でのデータ構成とアクセス 2.5 F2MC-16FX ファミリ 多バイト長データのメモリ上でのデータ構成とアクセス 多バイト長データは , 下位アドレスから順にメモリへ書き込まれます。多バイト長 データが 32 ビット長であれば , 下位 16 ビットが先に , 次に上位 16 ビットがメモリ に書き込まれます。 ■ メモリ空間における多バイト長データの配置 多バイト長データは , 下位アドレスから順にメモリへ書き込まれます。多バイト長デー タが 32 ビット長であれば , 下位 16 ビットが先に , 次に上位 16 ビットがメモリに書き 込まれます。 また , 下位データのメモリへの書込み直後にリセット信号が入力されると , 上位データ が書き込まれないことがあります。データを正しく保持するためには , 上位データの書 込みが終わった後にリセット信号を入力する必要があります。 図 2.5-1 に多バイト長データのメモリ上での配置を示します。データは下位 8 ビット が n 番地に , 次の下位 8 ビットが n+1 番地に , そしてその次の下位 8 ビットが n+2 番 地に , の順に配置されます。 図 2.5-1 多バイト長データのメモリ上での配置 MSB 01010101 H LSB 11001100 11111111 00010100 ↑ 01010101 11001100 11111111 n番地 00010100 ↓ L 16 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 2 章 メモリ空間 2.5 多バイト長データのメモリ上でのデータ構成とアクセス ■ 多バイト長データのアクセス 多バイト長データのアクセスは , すべてデータがバンク内であることを想定して行わ れます。別の言い方をすると , 多バイト長のデータをアクセスする命令は , FFFFH 番地 の次のアドレスは同じバンクの 0000H 番地とみなします。 図 2.5-2 に , 多バイト長データのアクセス命令の実行例を示します。 図 2.5-2 多バイト長データのアクセス命令 (MOVW A,080FFFFH) の実行例 上位 ↑ 実行前のAL 80FFFF H ? ? ? ? 01H ・ ・ ・ 実行後のAL 800000 H 23 H 01H 23 H ↓ 下位 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 17 第 2 章 メモリ空間 2.5 多バイト長データのメモリ上でのデータ構成とアクセス 18 F2MC-16FX ファミリ FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第3章 専用レジスタ F2MC-16FX CPU のレジスタには , 専用レジスタと 汎用レジスタの 2 種類があります。 F2MC-16FX CPU の専用レジスタについて説明し ます。専用レジスタは , CPU 内に内蔵されている 専用ハードウェアで , 用途が CPU のアーキテク チャ上で限定されているものです。これらのレジ スタは , アドレスを使用せずにアクセスすることが できます。レジスタの動作は , 専用の命令によって 規定します。 3.1 専用レジスタの構成 3.2 アキュムレータ (A) 3.3 ユーザスタックポインタ (USP) とシステムスタックポイ ンタ (SSP) 3.4 プロセッサステータス (PS) 3.5 プログラムカウンタ (PC) 3.6 ダイレクトページレジスタ (DPR) 3.7 バンクレジスタ (PCB, DTB, ADB, USB, SSB) CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 19 第 3 章 専用レジスタ 3.1 専用レジスタの構成 3.1 F2MC-16FX ファミリ 専用レジスタの構成 F2MC-16FX CPU には以下の専用レジスタがあります。 • アキュムレータ (A=AH:AL): 2 本の 16 ビットアキュムレータ ( 合計 32 ビットのアキュムレータとしても使用可能 ) • ユーザスタックポインタ (USP): 16 ビットのユーザスタックポインタ • システムスタックポインタ (SSP): 16 ビットのシステムスタックポインタ • プロセッサステータス (PS): システムの状態を示す 16 ビットのレジスタ • プログラムカウンタ (PC): 次に実行される命令のアドレスを格納する 16 ビットのレジスタ • プログラムカウンタバンクレジスタ (PCB): プログラムバンクを示す 8 ビットのレジスタ • データバンクレジスタ (DTB): データバンクを示す 8 ビットのレジスタ • ユーザスタックバンクレジスタ (USB): ユーザスタックバンクを示す 8 ビットのレジスタ • システムスタックバンクレジスタ (SSB): システムスタックバンクを示す 8 ビットのレジスタ • アディショナルデータバンクレジスタ (ADB): アディショナルデータバンクを示す 8 ビットのレジスタ • ダイレクトページレジスタ (DPR): ダイレクトアクセスするページを示す 8 ビットのレジスタ 20 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 3 章 専用レジスタ 3.1 専用レジスタの構成 F2MC-16FX ファミリ 図 3.1-1 に , 専用レジスタの構成を示します。 図 3.1-1 専用レジスタ AH AL アキュムレータ USP ユーザスタックポインタ SSP システムスタックポインタ PS プロセッサステータス PC プログラムカウンタ DPR ダイレクトページレジスタ PCB プログラムカウンタバンクレジスタ DTB データバンクレジスタ USB ユーザスタックバンクレジスタ SSB システムスタックバンクレジスタ ADB アディショナルデータバンクレジスタ 8 ビット 16 ビット 32 ビット CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 21 第 3 章 専用レジスタ 3.2 アキュムレータ (A) 3.2 F2MC-16FX ファミリ アキュムレータ (A) アキュムレータ (A) は , 2 つの 16 ビット算術演算レジスタ (AH および AL) から構成 されています。アキュムレータ (A) は , 演算結果やデータ転送の一時記憶に使用され ます。 ■ アキュムレータ (A) アキュムレータ (A) は , 2 つの 16 ビット算術演算レジスタ (AH および AL) から構成さ れています。アキュムレータ (A) は , 演算結果やデータ転送の一時記憶に使用されま す。32 ビットデータ処理時は , AH と AL を連結して使用します。16 ビットデータ処 理モードのワード処理や 8 ビットデータ処理モードのバイト処理のときは AL のみが 使用されます ( 図 3.2-1 および図 3.2-2 を参照してください ) 。 アキュムレータ (A) 中のデータは , メモリまたはレジスタ (Ri, RWi, RLi) 中のデータと 各種演算ができます。また , F2MC-16LX のときと同様 , ワード長以下のデータを AL へ 転送すると , 転送前の AL のデータが自動的に AH に転送されます ( データ保持機能 )。 このデータ保持機能と AL-AH 間演算により , 処理効率の向上が可能になっています。 バイト長以下のデータを AL に転送する際は , データは符号拡張またはゼロ拡張されて 16 ビット長として AL に格納されます。AL のデータは , ワード長としてもバイト長と しても扱えます。 AL にバイト処理の算術演算命令を実行すると , 演算前の AL の上位 8 ビットは無視さ れます。演算後の上位 8 ビットはすべて "0" になります。 アキュムレータ (A) はリセットでは初期化されません。リセット直後は不定値になり ます。 22 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 3 章 専用レジスタ 3.2 アキュムレータ (A) F2MC-16FX ファミリ 図 3.2-1 32 ビットデータ転送の例 直前の内容 A レジスタ LSB MSB MOVL A, @RW1+6 XXXXH XXXXH DTB A6H A61540H 8FH 74H A6153EH 2BH 52H RW1 15H 38H +6 最新の内容 A レジスタ 8F74H 2B52H AH AL 図 3.2-2 データ保持機能を使った AL-AH 転送の例 MSB MOVW A, @RW1+6 直前の内容 A レジスタ XXXXH 1234H DTB LSB A61540H 8FH 74H A6153EH 2BH 52H RW1 15H 38H A6H +6 最新の内容 A レジスタ CM44-00203-3 1234H 2B52H AH AL FUJITSU MICROELECTRONICS LIMITED 23 第 3 章 専用レジスタ 3.3 ユーザスタックポインタ (USP) とシステムスタックポイン タ (SSP) 3.3 F2MC-16FX ファミリ ユーザスタックポインタ (USP) とシステムスタックポ インタ (SSP) USP および SSP は , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 / 復帰のメモリアドレスを示す 16 ビットレジスタです。 ■ ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) USP および SSP は , プッシュ/ ポップ命令およびサブルーチン実行時のデータ退避 / 復 帰のメモリアドレスを示す 16 ビットのレジスタです。USP および SSP レジスタはス タック命令で使用します。 プロセッサステータス (PS) 中のスタックフラグ (S) が "0" のときは USP レジスタが有 効になり , S フラグが "1" のときは SSP レジスタが有効になります ( 図 3.3-1 を参照 )。 また , 割込みが受け付けられると S フラグがセットされるため , 割込み時のレジスタ退 避は必ず SSP の示すメモリ領域で行われます。割込みルーチンでのスタック処理は SSP で , 割込みルーチン以外のスタック処理は USP が用いられます。スタック空間を分け ない場合は SSP だけをお使いください。 スタック時のアドレスの上位 8 ビットは , SSP レジスタの場合はシステムスタックバン クレジスタ (SSB), USP レジスタの場合はユーザスタックバンクレジスタ (USB) により 示されます。 USP レジスタおよび SSP レジスタはリセットでは初期化されません。これらのレジス タ値は不定になります。 24 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 3 章 専用レジスタ 3.3 ユーザスタックポインタ (USP) とシステムスタックポイン タ (SSP) 図 3.3-1 スタック操作命令とスタックポインタ F2MC-16FX ファミリ 例1:Sフラグが"0"のときのPUSHW A 実行前 AL S フラグ 実行後 AL MSB C6F326 H LSB A624 H USB C6 H USP F328 H 0 SSB 56 H SSP 1234 H A624 H USB C6 H USP F326 H 0 SSB 56 H SSP 1234 H C6F326 H A6 H 24 H 561232 H XX XX 561232 H A6 H 24 H XX XX Sフラグが"0"であるため ユーザスタックを使用 例2:Sフラグが"1"のときのPUSHW A AL AL A624 H USB C6 H USP F328 H 1 SSB 56 H SSP 1234 H A624 H USB C6 H USP F328 H 1 SSB 56 H SSP 1232 H Sフラグが"1"であるため システムスタックを使用 <注意事項> スタックポインタに設定するアドレスは , 原則として偶数アドレスを使用してください。 奇数アドレスを使うとスタック動作のパフォーマンス低下の原因となります。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 25 第 3 章 専用レジスタ 3.4 プロセッサステータス (PS) 3.4 F2MC-16FX ファミリ プロセッサステータス (PS) プロセッサステータス (PS) は , CPU の動作制御を行うビットと CPU の状態を示す ビットより構成されています。 ■ プロセッサステータス (PS) 図 3.4-1 に示すように , プロセッサステータス (PS) の上位バイトはレジスタバンクポイ ンタ (RP) と割込みレベルマスク (ILM) より構成されます。RP レジスタは , レジスタバ ンクの先頭アドレスを示します。PS レジスタの下位バイトは命令実行結果および割込 み発生などによりセット / リセットされる各種フラグを持つコンディションコードレ ジスタ (CCR) より構成されます。 図 3.4-1 プロセッサステータス (PS) の構造 bit 15 PS 26 13 ILM 12 8 RP 7 0 CCR FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 3 章 専用レジスタ 3.4 プロセッサステータス (PS) F2MC-16FX ファミリ ■ コンディションコードレジスタ (CCR) 図 3.4-2 に , コンディションコードレジスタ (CCR) の構成図を示します。 図 3.4-2 コンディションコードレジスタ (CCR) の構成 bit 7 6 5 4 3 2 1 0 P I S T N Z V C PS: CCR 0 0 1 0 0 0 0 0 リセット後の初期値 1 0 1 X X X X X ブートROM実行後の値 ● P: 特権モードフラグ 特権モードフラグ (P) は , CPU の状態がユーザーモードか特権モードかを示します。P フラグが "1" のとき , CPU はユーザモードです。P フラグが "0" のとき , CPU はシステ ムモードです。 P フラグはリセットによってクリアされます。しかしながら , ブート ROM コードの実 行中にセットされます。 P フラグをクリアして , ほかのすべてのハードウェア割込みを無効にすることができる のは , NMI, HW-INT9 (EDSU) および DSU 割込みだけです。P フラグがクリアされた場 合 , 割込みレベルマスク (ILM) が特権モード (P0 ∼ P7) のシステムインタラプトレベル を決定します。これらの割込みレベルは , ユーザモード (U0 ∼ U7) のどの ILM レジス タの設定よりも優先度が高くなります。 P フラグは , 専用の命令 (OR CCR, #imm8 / POPW PS) またはプロセッサステータスの復 帰命令 (RETI / JCTX @A) によってセットすることができます。P フラグが "1" になっ ている場合は , 特権モード (P=0) への復帰は受け付けられません。 ● I: 割込み許可フラグ ソフトウェア割込み以外の割込みに対し , I フラグに "1" が設定されている場合は割込 みが許可され , I フラグが "0" の場合は割込みが禁止されます。I フラグはリセットに よってクリアされます。 ● S: スタックフラグ S フラグが "0" の場合は , ユーザスタックポインタ (USP) が有効になります。S フラグ が "1" の場合は , システムスタックポインタ (SSP) が有効になります。S フラグは , 割 込みが受け付けられた場合 , またはリセットされた場合にセットされます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 27 第 3 章 専用レジスタ 3.4 プロセッサステータス (PS) F2MC-16FX ファミリ ● T: スティッキィビットフラグ 論理右シフト命令または算術右シフト命令を実行した場合に , キャリからシフトアウ トされたデータに 1 つ以上 "1" があれば T フラグに "1" が設定され , "1" がなければ "0" が設定されます。また , T フラグはシフト量がゼロの場合でも "0" に設定されます。 ● N: ネガティブフラグ N フラグは , 演算結果の MSB が "1" の場合にセットされ , "0" の場合はクリアされます。 ● Z: ゼロフラグ Z フラグは , 演算結果がすべて "0" の場合にセットされ , それ以外の場合はクリアされ ます。 ● V: オーバフローフラグ Vフラグは, 演算の実行で符号付き数値としてオーバフローが発生した場合にセットさ れ , オーバフローが発生しなかった場合はクリアされます。 ● C: キャリフラグ C フラグは , 演算の実行で MSB からの桁上り ( キャリー ) または LSB からの桁下り ( ボロー ) が発生した場合にセットされ , 発生しなかった場合はクリアされます。 ■ レジスタバンクポインタ (RP) RP レジスタは , 汎用レジスタと内部 RAM アドレスとの関係を示します。具体的には , RP レジスタは現在使用しているレジスタバンクの先頭メモリアドレスを次の変換式 [00180H + (RP) × 10H] を使って示します。 RP レジスタは 5 ビットで構成され , 00H ∼ 1FH の値をとります。レジスタバンクは , メモリ中の 000180H ∼ 00037FH 番地に割り当て ることができます。 図 3.4-3 レジスタバンクポインタ (RP) bit 15 14 13 12 11 10 9 8 B4 B3 B2 B1 B0 0 0 0 0 0 RP 初期値 RP レジスタはリセットによりすべて "0" に初期化されます。命令上では RP レジスタ に 8 ビットの即値が転送できますが , 実際に使用されるのはそのデータの下位 5 ビット のみです。 28 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 3 章 専用レジスタ 3.4 プロセッサステータス (PS) F2MC-16FX ファミリ ■ 割込みレベルマスク (ILM) 割込みレベルマスク (ILM) は 3 ビットで構成されており , CPU の割込みマスクのレベ ルを示します。割込み要求は , ILM レジスタおよび特権モードフラグ (P) で示されるレ ベルよりもレベルの高いものだけが受け付けられます。 割込みの優先度が最も高いのが "P0" で , 最も低いものが "U7" になります。したがって , 割込みが受け付けられるには , 現状の ILM レジスタの値より小さい値の要求でなけれ ばなりません ( 図 3.4-4 を参照 )。また , P フラグについても考慮する必要があります。 割込みが受け付けられると , その割込みのレベル値が P フラグと ILM レジスタにセッ トされます。そして , これ以降の同じレベルおよびそれより優先順位の低い割込みは受 け付けられなくなります。 図 3.4-4 割込みレベルマスク (ILM) bit 15 14 13 ILM2 ILM1 ILM0 12 11 10 9 8 PS: ILM 1 0 0 リセット後の初期値 0 0 0 ブートROM実行後の値 ILM レジスタはリセットにより 100B に初期化されます。しかしながら , ブート ROM プログラムの実行中に ILM レジスタは 000B に設定されます。 命令上では ILM レジスタに 8 ビットの即値が転送できますが , 実際に使用されるのは そのデータの下位 3 ビットのみです (MOV ILM, #imm8 / POPW PS / RETI / JCTX @A)。 CPU がユーザモード (P=1) の場合 , ILM レジスタにはどのような変更でも加えること ができます。CPU が特権モード (P=0) の場合 , 新しい値をユーザレベル U0 ∼ U7 (P=1 で ) に設定する場合 , または特権レベル (P0 ∼ P7) を上げる場合にのみ , ILM レジスタ への変更が受け付けられます。より低いレベルの特権モードへ , P0 ∼ P7 の上位レベル から命令実行で到達することはできません。P フラグに "0" を書き込んで , P=0 の状態 でレベルを下げることができるのは , NMI, HW-INT9 および DSU 割込みだけです。 <注意事項> 特権モードフラグ (P) は ILM の拡張ビットと考えることができます。そのため P フラグ は , 割込みレベルマスク {P, ILM} の最上位ビットを定義します。 リセットによる初期化の後 , CPU はレベル P4 になります。これにより , DSU を除くす べての割込み (NMI を含む ) が無効になります。ブート ROM プログラムの実行後 , CPU はレベル U0 になります。周辺割込みは無効になります。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 29 第 3 章 専用レジスタ 3.4 プロセッサステータス (PS) F2MC-16FX ファミリ P0 ∼ P7 のすべての特権モードレベルはロックされ , 命令によってレベルを入力したり 下げたりできなくなります。つまり , P0 ∼ P7 のレベルは上げることしかできません。 これにより , HW-INT9, NMI および DSU 操作が保護されます。DSU だけが , デバッグ セッション中に NMI に割り込むことができ , NMI の受付けをマスクできます。 ユーザレベル U0 ∼ U7 は , F2MC-16LX の割込みレベル 0 ∼ 7 と下位互換性がありま す。P フラグは , ユーザレベルでは書き込めません。 表 3.4-1 特権モードフラグ (P) および割込みレベルマスク (ILM) により示される割込みレベル 30 レベル P フラグ ILM の値 受付け可能な割込みレベル P0 0 0 なし 割込み禁止 P1 0 1 レベル < P1 割込み禁止 P2 0 2 レベル < P2 割込み禁止 P3 0 3 レベル < P3 DSU P4 0 4 レベル < P4 DSU P5 0 5 レベル < P5 NMI, DSU P6 0 6 レベル < P6 NMI, DSU P7 0 7 レベル < P7 HW-INT9, NMI, DSU U0 1 0 レベル < U0 ユーザ割込み禁止 U1 1 1 レベル < U1 ユーザレベル 0 U2 1 2 レベル < U2 ユーザレベル 0, 1 U3 1 3 レベル < U3 ユーザレベル 0 ∼ 2 U4 1 4 レベル < U4 ユーザレベル 0 ∼ 3 U5 1 5 レベル < U5 ユーザレベル 0 ∼ 4 U6 1 6 レベル < U6 ユーザレベル 0 ∼ 5 U7 1 7 レベル < U7 ユーザレベル 0 ∼ 6 FUJITSU MICROELECTRONICS LIMITED HW-INT9, NMI, DSU CM44-00203-3 第 3 章 専用レジスタ 3.5 プログラムカウンタ (PC) F2MC-16FX ファミリ プログラムカウンタ (PC) 3.5 プログラムカウンタ (PC) は , CPU が実行する命令コードのメモリアドレスの下位 16 ビットを示す 16 ビットカウンタです。 ■ プログラムカウンタ (PC) プログラムカウンタ (PC) は , CPU が実行する命令コードのメモリアドレスの下位 16 ビットを示す 16 ビットカウンタです。アドレスの上位 8 ビットはプログラムカウンタ バンク (PCB) で示します。 PC レジスタは , 分岐命令 , サブルーチンコール命令 , 割込み , リセットで内容が更新さ れます。リニアプログラムセグメントの中では , PC レジスタは最後の命令のバイト数 分だけ増加します。 PCレジスタは, オペランドにアクセスする際のベースポインタとしても使用できます。 図 3.5-1 にプログラムカウンタを示します。 図 3.5-1 プログラムカウンタ PCB FE H PC ABCD H 実行される次の命令 FEABCD H リセットアドレスは , ブート ROM プログラムの先頭アドレス 0F:FC00H に固定されて います。リセット時 , PC レジスタは FC00H に初期化され , PCB レジスタは 0FH に初期 化されます。 外部ベクタモードでは , ブート ROM コードの実行後に , FF:FFDCH 番地のリセットベ クタにより指定される値が , 設定されます。内部ベクタモードでは , 製品に定義されて いる固定値が PCB レジスタと PC レジスタに設定されます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 31 第 3 章 専用レジスタ 3.6 ダイレクトページレジスタ (DPR) 3.6 F2MC-16FX ファミリ ダイレクトページレジスタ (DPR) ダイレクトページレジスタ (DPR) は , 直接アドレス指定方式の命令に使用されるオ ペランドアドレスの bit8 ∼ bit15 を指定する 8 ビットレジスタです。 ■ ダイレクトページレジスタ (DPR) 図 3.6-1 に示すように DPR は , 直接アドレス指定方式の命令オペランドアドレスの bit8 ∼ bit15 を指定します。 図 3.6-1 直接アドレス指定方式における物理アドレスの生成 DPR レジスタ 命令中の直接アドレス ββββββββ γγγγγγγγ DTB レジスタ αααααααα LSB MSB 24ビット 物理アドレス ααααααααββββββββγγγγγγγγ DPR レジスタは 8 ビット長で , リセットにより 01H に初期化されます。DPR レジスタ は命令で読み書き可能です。 32 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 3.7 第 3 章 専用レジスタ 3.7 バンクレジスタ (PCB, DTB, ADB, USB, SSB) バンクレジスタ (PCB, DTB, ADB, USB, SSB) 各バンクレジスタは , プログラム空間 , データ空間 , ユーザスタック空間 , およびア ディショナルデータ空間に配置されるメモリバンクを示します。 ■ バンクレジスタ すべてのバンクレジスタはバイト長です。各バンクレジスタ (PCB, DTB, USP, SSP, ADB) は , PC, DT, SP( ユーザ ), SP( システム ) または AD 空間が割り当てられるメモリ バンクを示します。 PCB 以外のバンクレジスタは読み書き可能です。PCB は , 読出しはできますが書込み はできません。PCB レジスタは , JMPP または CALLP 命令実行時 , 16M バイト全空間 への分岐時 , RETP または RETI 命令実行時 , および割込み時に書き換わります。 バンクレジスタの動作の詳細は , 「2.3 バンク方式のアドレス指定」を参照してくださ い。 ● プログラムカウンタバンクレジスタ (PCB) 初期値 : リセット後は 0FH, その後はユーザプログラム開始時のリセットベクタの値。 ● データバンクレジスタ (DTB) 初期値 : 00H ● ユーザスタックバンクレジスタ (USB) 初期値 : 00H ● システムスタックバンクレジスタ (SSB) 初期値 : 00H ● アディショナルデータバンクレジスタ (ADB) 初期値 : 00H CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 33 第 3 章 専用レジスタ 3.7 バンクレジスタ (PCB, DTB, ADB, USB, SSB) 34 F2MC-16FX ファミリ FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第4章 汎用レジスタ F2MC-16FX のレジスタは大別して CPU 内部の専 用レジスタとメモリ上にある汎用レジスタの 2 種 に分けることができます。 F2MC-16FX の汎用レジスタについて説明します。 汎用レジスタは , CPU のアドレス空間上の RAM 上に存在します。アドレスを指定しないでアクセ スできるという点では専用レジスタと同じですが , 通常のメモリと同様 , 使用する目的をユーザが指定 できます。 4.1 RAM 上のレジスタバンク 4.2 RAM 上の汎用レジスタの呼び出し方 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 35 第 4 章 汎用レジスタ 4.1 RAM 上のレジスタバンク 4.1 F2MC-16FX ファミリ RAM 上のレジスタバンク レジスタバンクは 8 ワード (16 バイト ) で構成されます。これらは , 汎用レジスタ ( バイトレジスタ R0 ∼ R7, ワードレジスタ RW0 ∼ RW7, ロングワードレジスタ RL0 ∼ RL3)として各種演算やポインタに使用できます。RL0 ∼ RL3 は , メモリの 全空間を直接アクセスするリニアポインタとしても使用できます。 ■ RAM 上のレジスタバンク 表 4.1-1 に各レジスタの機能を , 表 4.1-2 に各レジスタの関係を示します。 表 4.1-1 各レジスタの機能 レジスタ名 R0 ∼ R7 36 機能 各種命令のオペランドとして使用 ( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ ( 正規化 ) 命令のカウンタとしても使用 RW0 ∼ RW7 ポインタとして使用 各種命令のオペランドとして使用 ( 注意事項 ) RW0 はストリング命令のカウンタとしても使用 RL0 ∼ RL3 ロングポインタとして使用 各種命令のオペランドとして使用 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 4 章 汎用レジスタ 4.1 RAM 上のレジスタバンク F2MC-16FX ファミリ 表 4.1-2 各レジスタの関係 アドレス バイトレジスタ 000180H + RP × 10H + 0 ワードレジスタ ロングワードレジスタ RW0 000180H + RP × 10H + 1 RL0 000180H + RP × 10H + 2 RW1 000180H + RP × 10H + 3 000180H + RP × 10H + 4 RW2 000180H + RP × 10H + 5 RL1 000180H + RP × 10H + 6 RW3 000180H + RP × 10H + 7 000180H + RP × 10H + 8 R0 000180H + RP × 10H + 9 R1 000180H + RP × 10H + 10 R2 000180H + RP × 10H + 11 R3 000180H + RP × 10H + 12 R4 000180H + RP × 10H + 13 R5 000180H + RP × 10H + 14 R6 000180H + RP × 10H + 15 R7 CM44-00203-3 RW4 RL2 RW5 RW6 RL3 RW7 FUJITSU MICROELECTRONICS LIMITED 37 第 4 章 汎用レジスタ 4.2 RAM 上の汎用レジスタの呼び出し方 4.2 F2MC-16FX ファミリ RAM 上の汎用レジスタの呼び出し方 汎用レジスタは , レジスタバンクポインタ (RP) によって内部 RAM の 000180H ∼ 00037FH のどの部分に現在使用中のレジスタバンクが位置するかを指定します。 ■ RAM 上の汎用レジスタの呼び出し方 汎用レジスタは内部 RAM の 000180H ∼ 00037FH( 最大仕様の場合 ) に存在します。レ ジスタバンクポインタ (RP) によって内部 RAM の 000180H ∼ 00037FH のどの部分に現 在使用中のレジスタバンクがあるかを指定します。各バンクにはそれぞれ以下に示す 3 種のレジスタが存在します。これらは , それぞれに独立ではありません。図 4.2-1 に 示すような関係があります。 • R0 ∼ R7 …………8 ビットの汎用レジスタ • RW0 ∼ RW7 ……16 ビットの汎用レジスタ • RL0 ∼ RL3………32 ビットの汎用レジスタ 図 4.2-1 汎用レジスタ MSB LSB 16ビット 000180 H + RP×10 H 下位 RW0 汎用レジスタの 先頭アドレス RL0 RW1 RW2 RL1 RW3 R1 R0 RW4 R3 R2 RW5 R5 R4 RW6 R7 R6 RW7 RL2 RL3 上位 ワードレジスタ (RW4 ∼ RW7) の上位バイト , 下位バイトとバイトレジスタ (R0 ∼ R7) の関係は , 次の式で表せます。 RW(i + 4)=R(i × 2 + 1) × 256 + R(i × 2)〔i=0 ∼ 3〕 ロングワードレジスタ(RL0∼RL3)の上位バイト,下位バイトとワードレジスタ(RW0∼ RW7) の関係は , 次の式で表せます。 RL(i)=RW(i × 2 + 1) × 65536 + RW(i × 2)〔i=0 ∼ 3〕 例えば , R1 のデータを上位バイト , R0 のデータを下位バイトとして並べたデータは , RW4 のデータ (2 バイト ) と同じになります。 38 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第5章 プリフィックスコード 命令の前にプリフィックスコードを置くことによ り , その命令の動作の一部を変更できます。プリ フィックスコードには , 以下の 3 種類があります。 • バンクセレクトプリフィックス • コモンレジスタバンクプリフィックス • フラグ変化抑止プリフィックスコード それぞれのプリフィックスについて説明します。 5.1 バンクセレクトプリフィックス 5.2 コモンレジスタバンクプリフィックス (CMR) 5.3 フラグ変化抑止プリフィックスコード (NCC) 5.4 プリフィックスコードに関する制約 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 39 第 5 章 プリフィックスコード 5.1 バンクセレクトプリフィックス 5.1 F2MC-16FX ファミリ バンクセレクトプリフィックス バンクセレクトプリフィックスを命令の前に置くことにより , その命令がアクセスす るメモリ空間を , アドレス指定方式と無関係に任意に選択できます。 ■ バンクセレクトプリフィックス データアクセスの際に使用されるメモリ空間は,アドレス指定方式ごとに定められてい ます。バンクセレクトプリフィックスを命令の前に置くことにより , その命令がアクセ スするメモリ空間を , アドレス指定方式と無関係に任意に選択できます。バンクセレク トプリフィックスとそれにより選択されるメモリ空間を表 5.1-1 に示します。 表 5.1-1 バンクセレクトプリフィックス バンクセレクトプリフィックス 選択される空間 PCB プログラムカウンタ空間 DTB データ空間 ADB アディショナル空間 SPB そのときのスタックフラグの内容によりシス テムスタック空間 , ユーザスタック空間のどち らかが用いられます。 以下に示す命令に対してはプレフィックスコードの効果が異なります。 • 転送命令 (I/O アクセス ) MOV A, io MOV io, A MOVX A, io MOVW io, A MOV io, #imm8 MOVW io, #imm16 MOVW A, io これらの命令の前のプリフィックスの有無にかかわらず, I/O空間がアクセスされま す。 • 分岐命令 RETI 分岐命令の前のプリフィックスの有無にかかわらず , システムスタックバンクレジ スタ (SSB) が使用されます。 • ビット操作命令 (I/O アクセス ) MOVB A, io:bp MOVB io:bp, A SETB io:bp CLRB io:bp BBC io:bp, rel BBS io:bp, rel WBTC WBTS これらの命令の前の有無にかかわらず , I/O 空間がアクセスされます。 40 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 5 章 プリフィックスコード 5.1 バンクセレクトプリフィックス F2MC-16FX ファミリ • ストリング操作命令 MOVS FILS MOVSW FILSW SCEQ SCWEQ プリフィックスの有無にかかわらず , オペランドで指定されたバンクレジスタが使 用されます。 • その他の制御系命令 ( スタック操作 ) PUSHW UNLINK POPW POPW PS LINK これらの命令の前のプリフィックスの有無にかかわらず , スタックフラグ (S) に応 じてシステムスタックバンクレジスタ (SSB) またはユーザスタックバンクレジスタ (USB) が使用されます。 以下の場合は , 命令のプリフィックスの効果がその命令だけでなく , 後続の命令まで及 びます。 • その他の制御系命令 ( フラグ変更 ) AND CCR,#imm8 OR CCR,#imm8 これらの命令の動作自体は正常に行われます。命令へのプリフィックスの効果は , これらの命令だけでなく , 後続の命令まで及びます。 • その他の制御系命令 ( 割込み制御 ) MOV ILM,#imm8 この命令の動作自体は正常に行われます。命令へのプリフィックスの効果は , この 命令だけでなく , 後続の命令まで及びます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 41 第 5 章 プリフィックスコード 5.2 コモンレジスタバンクプリフィックス (CMR) 5.2 F2MC-16FX ファミリ コモンレジスタバンクプリフィックス (CMR) レジスタバンクをアクセスする命令の前に , コモンレジスタバンクプリフィックス (CMR) を置くことで , 現在のレジスタバンクポインタ (RP) の値に関係なく , その命令 のレジスタアクセスをすべて 000180H ∼ 00018FH にあるコモンバンク (RP=0 のと きに選択されるレジスタバンク ) に変更できます。 ■ コモンレジスタバンクプリフィックス (CMR) 複数のタスク間でのデータ交換を容易にするためには , そのときのレジスタバンクポ インタ (RP) がどのような値でも , 比較的簡単に , ある定められた同一のレジスタバン クをアクセスする手段が必要です。そのために , F2MC-16FX では , 各タスクで共通に 使用できるレジスタバンクを用意しています。これをコモンバンクといいます。コモ ンバンクは , メモリの 000180H ∼ 00018FH 番地に配置されます。コモンバンクは , RP レジスタの値が "0" のときに選択されます。 レジスタバンクをアクセスする命令の前に , コモンレジスタバンクプリフィックス (CMR) を置くことで , 現在のレジスタバンクポインタ (RP) の値に関係なく , その命令 のレジスタアクセスをすべて 000180H ∼ 00018FH にあるコモンバンク (RP=0 のときに 選択されるレジスタバンク ) に変更できます。 以下に示す命令に対してはプレフィックスコードの効果が異なります。 • ストリング命令 MOVS FILSW NOVSW SCEQ FILS プリフィックスコードを付加したストリング操作命令の実行中に割込みが要求さ れると , 割込みからの復帰後のストリング操作命令に対してはプリフィックスが無 効となるため , 誤動作が発生することがあります。これらのストリング操作命令に 対しては CMR プリフィックスを付加しないでください。 • その他の制御系命令 ( フラグ変更 ) AND CCR,#imm8 OR CCR,#imm8 POPW PS これらの命令の動作自体は正常に行われます。命令へのプリフィックスの効果は , これらの命令だけでなく , 後続の命令まで及びます。 • その他の制御系命令 ( 割込み制御 ) MOV ILM, #imm8 この命令の動作自体は正常に行われます。命令へのプリフィックスの効果は , この 命令だけでなく , 後続の命令まで及びます。 42 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 5 章 プリフィックスコード 5.3 フラグ変化抑止プリフィックスコード (NCC) F2MC-16FX ファミリ 5.3 フラグ変化抑止プリフィックスコード (NCC) 命令の前にフラグ変化抑止プリフィックスコード (NCC) を置くことで , 命令の実行 に伴うフラグ変化を抑止できます。 ■ フラグ変化抑止プリフィックスコード (NCC) 不要なフラグ変化を抑止するために , フラグ変化抑止プリフィックスコード (NCC) を 用います。命令の前に NCC プリフィックスを置くことで , 命令の実行に伴うフラグ変 化を抑止できます。 以下に示す命令に対してはプレフィックスコードの効果が異なります。 • 分岐命令 INT #vct8 INT9 INTP addr24 RETI INT addr16 これらの命令は , プリフィックスの有無にかかわらずコンディションコードレジス タ (CCR) のフラグは変化します。 • ストリング命令 SCEQ SCWEQ FILS FILSW 上記のストリング命令の前に NCC プレフィックスを置いても無視されます。NCC プレフィックスが指定されているかどうかに関係なく , コンディションコードレジ スタ (CCR) のフラグは命令の定義によって変化します。 • その他の制御系命令 ( タスクの切換え ) JCTX @A この命令は , プリフィックスの有無にかかわらずコンディションコードレジスタ (CCR) のフラグは変化します。 • その他の制御系命令 ( フラグ変更 ) AND CCR,#imm8 OR CCR,#imm8 POPW PS これらの命令は , プリフィックスの有無にかかわらずコンディションコードレジス タ (CCR) のフラグは変化します。命令へのプリフィックスの効果は , これらの命令 だけでなく , 後続の命令まで及びます。 • その他の制御系命令 ( 割込み制御 ) MOV ILM,#imm8 この命令の動作自体は正常に行われます。命令へのプリフィックスの効果は , この 命令だけでなく , 後続の命令まで及びます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 43 第 5 章 プリフィックスコード 5.4 プリフィックスコードに関する制約 5.4 F2MC-16FX ファミリ プリフィックスコードに関する制約 割込み / ホールド抑止命令の前にプリフィックスコードを置いた場合 , プリフィック スコードの効果は , 最初の割込み / ホールド抑止命令ではない命令まで及びます。 競合するプリフィックスコードが連続していた場合 , より後方のものが有効になり ます。 ■ 割込み要求を受け付けない命令とプリフィックスコードの関係 以下に示す 10 種類の命令とプリフィックスコードは , 割込みやホールドの要求を受け 付けません。 • MOV ILM,#imm8 • AND CCR,#imm8 • OR CCR,#imm8 • POPW PS • PCB • ADB • NCC • DTB • SPB • CMR 図 5.4-1 に示すように , 上記の命令を実行中に割込み / ホールド要求が発生しても , 要 求が受け付けられるのは , この命令以降で初めて上記以外の命令実行時になります。 図 5.4-1 割込み / ホールド抑止命令 割込み / ホールド抑止命令 (a) •••••••• 割込み要求命令 ••• 割込み受付け (a): 普通の命令 図 5.4-2 のように , 割込み / ホールド抑止命令の前にプリフィックスコードを置いた場 合 , プリフィックスコードの効果は , 最初の割込み / ホールド抑止命令ではない命令ま で及びます。 図 5.4-2 割込み / ホールド抑止命令とプリフィックスコード 割込み / ホールド抑止命令 MOV A,FFH NCC CCR: XXX10XX MOV ILM,#imm8 •••• ADD A,01H CCR: XXX10XX NCC により CCR は変化しません。 44 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 5 章 プリフィックスコード 5.4 プリフィックスコードに関する制約 F2MC-16FX ファミリ ■ プリフィックスコードが連続しているとき 競合するプリフィックスコードが連続していた場合 , より後方のものが有効になりま す ( 図 5.4-3 を参照 )。 図 5.4-3 プリフィックスコードの連続 プリフィックスコード ••••• ADB DTB PCB ADD A,01H •••• プリフィックスコードは PCB が有効になります。 競合するプリフィックスコードは , 上の図では PCB, ADB, DTB, SPB を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 45 第 5 章 プリフィックスコード 5.4 プリフィックスコードに関する制約 46 F2MC-16FX ファミリ FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第6章 割込み 割込みの機能と動作について説明します。 6.1 割込みの概要 6.2 割込みベクタ 6.3 割込み制御レジスタ (ICR) 6.4 ノンマスカブルインタラプト (NMI) 6.5 割込みフロー 6.6 ハードウェア割込み 6.7 ソフトウェア割込み 6.8 多重割込み 6.9 例外 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 47 第 6 章 割込み 6.1 割込みの概要 6.1 F2MC-16FX ファミリ 割込みの概要 F2MC-16FX は , イベントなどの発生により現在実行中の処理を中断して , 別のプロ グラムに制御を移す割込み機能があります。割込み機能は以下の 4 つに分類するこ とができます。 • ハードウェア割込み : 内部リソースのイベント発生による割込み処理 • ソフトウェア割込み : ソフトウェアのイベント発生 ( 命令 ) による割込み処理 • 例外 : 動作例外事項の発生による処理 • DMA: 内部リソースのイベント発生による CPU とのやり取りを伴わないデータ転送 ■ ハードウェア割込み ハードウェア割込みは , 内部リソースからの割込み要求によって発生します。ハード ウェア割込み要求は , 内部リソース内の割込み要求フラグと割込み許可フラグがセッ トされている場合に発生します。 ● 割込みレベルの指定 ハードウェア割込みには , 割込みレベルを指定することができます。割込みレベルを指 定するには , 割込み制御レジスタ (ICR) のレベル設定ビット (IL0, IL1, IL2) を使用しま す。 ハードウェア割込みには , 個別に割込みレベル (IL) を指定することができます。専用 IL に対するアクセスは , IX インデックスを設定することで実行できます。IX と IL は 共に , 割込み制御レジスタ ICR を介してアクセスできます。 ● ハードウェア割込み要求マスク ハードウェア割込み要求は , 割込み許可フラグ (I) および割込みレベルマスク (ILM) を 使用してマスクすることができます。割込みは , I フラグがセットされ , 割込みレベル (IL) の値が割込みレベルマスク (ILM) よりも小さい場合にのみ実行されます。さらに , ハードウェア割込みを受け付けるには特権モードフラグ(P)がセットされている必要が あります。P フラグ , I フラグ , および ILM レジスタは , CPU のプロセッサステータス (PS) の一部です。 マスクのかかっていない割込み要求が発生すると , CPU は PS, PC, PCB, DTB, ADB, DPR, A の各レジスタからなる 12 バイトのデータを , システムスタックバンクレジスタ (SSB) およびシステムスタックポインタ (SSP) が示すメモリ領域に退避させます。 48 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 6 章 割込み 6.1 割込みの概要 ■ ソフトウェア割込み INT 命令の実行による割込み要求が , ソフトウェア割込みです。INT 命令により要求さ れる割込みには , 割込み要求フラグや割込み許可フラグはありません。INT 命令の実行 により , 常に割込み要求が発生します。 INT 命令には割込みレベルの割当てもありません。このため , INT 命令使用時には ILM レジスタは更新されません。その代わり , 割込み許可フラグ (I) がクリアされ , 以降の 割込み要求が保留状態になります。 ■ 例外 以下のソフトウェア例外が処理されます。 • 未定義命令 • INT9 • INTE ( 評価用デバイスのみで利用可能 ) 以下のハードウェア例外が処理されます。 • NMI • HW-INT9( 埋込みデバッグサポート ) • DSU ブレーク要因 ( 評価用デバイスのみで利用可能 ) 例外処理は基本的に割込みと同じです。命令の実行中に例外事項が発生したことを検 出したときに , 例外処理を行います。一般的に , 例外処理は予想外の動作の結果に発生 するものです。そのため , プログラムのデバッグや緊急時のリカバリソフトウェアの起 動などに限定して使用してください。 ■ ダイレクトメモリアクセス (DMA) ● DMA 機能 F2MC-16FX には , 周辺リソースとメモリ間で自動的にデータ転送する DMA 機能があ ります。DMA チャネルの数はデバイスに依存します。 指定された数の DMA データ転送が完了すると , 転送元の IRQ チャネルに対して割込 み処理プログラムが自動実行されます。そのような DMA 完了時の割込み処理方法は , 標準のハードウェア割込みと同じです。 DMA の詳細は , 各デバイスのハードウェアマニュアルを参照してください。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 49 第 6 章 割込み 6.2 割込みベクタ F2MC-16FX ファミリ 割込みベクタ 6.2 ハードウェア割込みとソフトウェア割込みは同じベクタテーブルを使用します。割 込みサービスルーチンは , IRQ ラインをアサートまたは INT 命令の実行によって割 込みベクタ番号を指定することで実行できます。割込みベクタは , 表 6.2-2 で示され ている番地の間に割り当てられます。割込みベクタテーブルの位置はテーブルベー スレジスタで選択できます。 ■ 割込みベクタ ● 割込みベクタテーブルベースレジスタ (TBR) 図 6.2-1 割込みベクタテーブルベースレジスタ (TBR) bit アドレス: 3A3H, 3A2H 15 14 13 12 11 10 9 8 TB23 TB22 TB21 TB20 TB19 TB18 TB17 TB16 1 0 TB15 TB14 TB13 TB12 TB11 TB10 7 6 5 4 3 2 − − リード/ライト: R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R R 初期値: 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 R: R/W: 1 TBRH, TBRL リードオンリ リード/ライト可能 テーブルベースレジスタ (TBR) を使えば , 1K バイト単位で割込みベクタテーブルを任 意のメモリ位置に再配置できます。 TBR レジスタの値によって , 割込みベクタテーブルの開始アドレス 24 ビット中の上位 14 ビット TB[23:10] が決まります。下位ビット側の TB[9:0] は , "0" に固定となります。 テーブルベースレジスタ (TBR) はリセット時に FFFCH に初期化され , その結果 , 初期 テーブルベースは TB[23:0] = FFFC00H となります。 割込みベクタテーブルは 1K バイト (256 ベクタ ) の容量があります。 表 6.2-1 TBR の例 TBR の値 割込みベクタテーブル の開始アドレス ( テーブルベース ) 割込みベクタ テーブルの終了 コメント FFFCH FF:FC00H FF:FFFFH F2MC-16FX の場合 ( 初期値 ) FB00H FB:0000H FB:03FFH ROM バンク FB の始点 00FCH 00:FC00H 00:FFFFH バンク 00 ( 外部メモリ可 ) の終点 0010H 00:1000H 00:13FFH RAM 領域内部 0000H 00:0000H 00:03FFH I/O 領域のため使用禁止 50 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 6 章 割込み 6.2 割込みベクタ F2MC-16FX ファミリ ■ 割込みベクタテーブル 割込み処理中に参照される割込みベクタテーブルは , メモリ領域の "256 × TBR" ∼ "256 × TBR + 3FFH" に割り当てられます。ベクタテーブル位置の , リセット時のデフォ ルトは FFFC00H ∼ FFFFFFH になります。ベクタテーブルを ROM メモリの先頭に置く べきではなく , 別の TBR 値を設定する必要があります。 ハードウェア割込み , 例外 , ソフトウェア割込みはすべて同じベクタテーブルを使用し ます。そのため , 割込みサービスルーチンはハードウェア割込みと対応するソフトウェ ア割込みのどちらからでも呼び出すことができます。 割込みサービスルーチンの開始アドレスの 3 バイトは , すべて適切な割込みベクタ (VecAddr = 4 × (255-INT#) + 256 × TBR) が書き込まれる必要があります。 表 6.2-2 割込みベクタテーブル (1 / 2) 割込み / ベクタ番号 ベクタアドレス ICR 中のレベルレジスタの インデックス ハードウェア IRQ/ 割込み要因 INT 0 CALLV 0/1 * (TBR × 256) + 3FCH − − INT 1 CALLV 2/3 * (TBR × 256) + 3F8H − − INT 2 CALLV 4/5 * (TBR × 256) + 3F4H − − INT 3 CALLV 6/7 * (TBR × 256) + 3F0H − − INT 4 CALLV 8/9 * (TBR × 256) + 3ECH − − INT 5 CALLV 10/11 * (TBR × 256) + 3E8H − − INT 6 CALLV 12/13 * (TBR × 256) + 3E4H − − INT 7 CALLV 14/15 * (TBR × 256) + 3E0H − − INT 8 MODE Byte (TBR × 256) + 3DCH − リセット INT 9 (TBR × 256) + 3D8H − INT9 命令 INT 10 (TBR × 256) + 3D4H − 未定義命令による例外 INT 11 (TBR × 256) + 3D0H − NMI INT 12 (TBR × 256) + 3CCH IL12 遅延割込み INT 13 (TBR × 256) + 3C8H IL13 CR クロックタイマ INT 14 (TBR × 256) + 3C4H IL14 メインクロックタイマ CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 51 第 6 章 割込み 6.2 割込みベクタ F2MC-16FX ファミリ 表 6.2-2 割込みベクタテーブル (2 / 2) 割込み / ベクタ番号 ベクタアドレス ICR 中のレベルレジスタの インデックス ハードウェア IRQ/ 割込み要因 INT 15 (TBR × 256) + 3C0H IL15 サブクロックタイマ INT 16 (TBR × 256) + 3BCH IL16 <PLL ロック解除用に予約 > INT 17 (TBR × 256) + 3B8H IL17 INT 18 (TBR × 256) + 3B4H IL18 INT 19 (TBR × 256) + 3B0H IL19 … デバイス特有の周辺機能 … … INT 254 (TBR × 256) + 004H − − INT 255 (TBR × 256) + 000H − − * : プログラムカウンタバンクレジスタ (PCB) が TBR:TB[23:16] と同じで , TBR:TB[15:10] が 111111B の 場合 , CALLV 命令のベクタ領域は "INT #0" ∼ "INT #7" 命令のベクタテーブルと重なります。 CALLV 命令が "INT #0" ∼ "INT #7" 命令と同じアドレスを使用しないようにするか , "INT #0" ∼ "INT #7" 命 令を使用しないようにしてください。 52 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 6 章 割込み 6.3 割込み制御レジスタ (ICR) F2MC-16FX ファミリ 6.3 割込み制御レジスタ (ICR) 割込み機能を持つ各周辺リソース用に , 割込み制御レジスタ (ICR) があります。割込 み制御レジスタ (ICR) は , 割り当てられる周辺リソースに割込みレベル (IL) を設定し ます。 ■ 割込み制御レジスタ (ICR) 図 6.3-1 に , 割込み制御レジスタのビット構成図を示します。 図 6.3-1 割込み制御レジスタ (ICR) bit 15 14 13 12 11 10 9 8 IX7 IX6 IX5 IX4 IX3 IX2 IX1 IX0 リード/ライト: R/W R/W R/W R/W R/W R/W R/W R/W 初期値: 0 0 0 0 1 1 0 0 7 6 5 4 3 2 1 0 アドレス: 3A0H − − − − − IL2 IL1 IL0 リード/ライト: − − − − − R/W R/W R/W 初期値: X X X X X 1 1 1 アドレス: 3A1H bit −: R/W: ICR: IX ICR: IL アクセス不可 リード/ライト可能 [bit15 ∼ bit8] IX[7:0] : アクセスする割込みレベル (IL) のインデックス 内部リソースに対応する割込みレベルのインデックスを指定する読み書き可能な ビットです。このインデックスでアクセスする割込みレベルを選択します。IL[n] は 周辺割込み要求番号 IRQ[n] に属し , 共に割込み INT[n] に関連付けられています。 システム割込み INT0 ∼ INT11 の優先度は固定で , 割込みレベルが存在しません。イ ンデックス 12 以下の割込みレベルに対して書込みを行うと無視され , 読出しを行う と不定値が返されます。同じ制約が , デバイス依存の最大割込み番号より上の , 利 用できないハードウェア割込み ( 番号 ) にも適用されます。 IX[7:0] ビットは , リセット時に 0CH に初期化されます。 図 6.3-2 に , インデックス (IX), レベル (IL) と IRQ 番号の間の関係を示します (IX=20 のときの , IX ポインタによるレベルレジスタへのアクセスの例 ) 。点線で囲まれた IX および選択された IL は , ICR の実際の内容を表しています。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 53 第 6 章 割込み 6.3 割込み制御レジスタ (ICR) F2MC-16FX ファミリ レベル設定の読み書きは , IX が指し示す IL に対して行います。IL にレベル設定を 書き込むには , 事前またはワードアクセスにて同時に , IX に対してインデックスの 書込みを行います。IL の読出しを行うには , 読み出す前に IX に書込みを行う必要 があります。 並行タスクを使用する場合の注意事項 : 割込みレベル情報にアクセスする並行タスクの場合 , インデックスアクセスの処理 には注意が必要です。 - ICR:IX および ICR:IL に情報を同時に書き込むには , ワードアクセスを使用してく ださい。 - 読出しアクセス時には , インデックス ICR:IX をセットから , ワードアクセスで ICR レジスタ全体を読み出します。正しい ICR:IL エントリを確認するために , 読 み出すはずのインデックスと ICR:IX の値が一致していることを調べてください。 [bit7 ∼ bit3] 未使用ビット 読出しアクセスを行うと不定値が返されます。これらのビットには , 常に "0" を書 き込んでください。 [bit2 ∼ bit0] IL2 ∼ IL0 : 割込みレベル設定ビット 対応する内部リソースの割込みレベルを指定する読み書き可能ビットです。リセッ ト時 , レベル 7 ( 割込みなし ) に初期化されます。表 6.3-1 に , 割込みレベル設定ビッ トと割込みレベルの関係を示します。 表 6.3-1 割込みレベル設定ビットと割込みレベル 54 IL2 IL1 IL0 0 0 0 0 ( 最も強い ) 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 ( 最も弱い ) 1 1 1 7 ( 割込みなし ) レベル FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 6 章 割込み 6.3 割込み制御レジスタ (ICR) F2MC-16FX ファミリ 図 6.3-2 インデックス (IX), レベル (IL) および IRQ 番号の間の関係 (IX=20 の場合の例 ) ICR CM44-00203-3 IX=20 IL16 IRQ16 IL17 IRQ17 IL18 IRQ18 IL19 IRQ19 IL20 IRQ20 IL21 IRQ21 FUJITSU MICROELECTRONICS LIMITED 55 第 6 章 割込み 6.4 ノンマスカブルインタラプト (NMI) 6.4 F2MC-16FX ファミリ ノンマスカブルインタラプト (NMI) F2MC-16FX CPU には , ノンマスカブルインタラプトがあります。外部 NMI 端子の 機能を有効化 , レベルの設定 , NMI 要求を終了するレジスタがあります。 ■ NMI 制御ステータスレジスタ (NMI) 図 6.4-1 は , NMI 制御ステータスレジスタのビット構成図です。 図 6.4-1 NMI 制御ステータスレジスタ (NMI) bit 7 6 5 4 3 2 1 0 アドレス: 3A5H − − − − FIX9 LEV EN FLAG リード/ライト: − − − − R/W R/W 初期値: − − − − 0 1 − R/W R/W1 R/W0 NMI R/W1 R/W0 0 X :アクセス不可 :リード/ライト可能 :リードオンリ。ビットはセットのみ可能 :リードオンリ。ビットはクリアのみ可能 [bit7 ∼ bit4] 未使用ビット 読出しアクセスを行うと不定値が返されます。これらのビットには , 常に "0" を書 き込んでください。 [bit3] FIX9: INT9 ベクタの位置の固定 FIX9 ビットは , INT9 の割込みベクタを代替位置に切り替えます。もし , "1" に設定 されると , 割込みベクタは , アドレス 0F:FFD8H より得られます。もし , "0" に設定 されると , INT9 ベクタの位置は , TBR+3D8H により定義されます。リセットで , FIX9 ビットは , "0" に初期化されます。 この機能は , デバイス起動時に実行されるファームウェアにより使用されます。 テーブルベースレジスタ (TBR) から INT9 の割込みベクタを独立させることで , 組 込みデバッグ支援ユニット (EDSU) の信頼性が向上します。 [bit2] LEV: NMI 端子の信号アクティビティレベル LEV ビットは , NMI 端子信号のアクティビティレベルを指定します。値を "1" にす ると NMI 端子は正論理入力 , "0" にすると負論理入力であることを意味します。 EN ビットがセットされていない場合 , LEV ビットは読み書き可能となります。EN ビットがセットされている場合 , LEV の状態はロックされます。その場合 , LEV は 読出し専用となり , EN=1 のときに LEV に書き込んでも無視されます。 56 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 6 章 割込み 6.4 ノンマスカブルインタラプト (NMI) リセット時に LEV ビットは "1" に初期化されるため , NMI 端子はデフォルトでは正 論理となります。 [bit1] EN: マスク不可能割込み機能許可ビット EN ビットは , 専用 NMI 端子機能が使用できるようにします。EN ビットが "0" に設 定されている場合 , デバイスは NMI を持ちません。NMI 入力に信号レベルの変更 があっても CPU は反応しません。端子はその他の目的に使用できます。EN ビット が "1" に設定されている場合 , NMI 端子が有効になります。CPU は , (LEV ビットで 指定された )NMI 端子でアクティブ信号レベルが検出されると NMI の例外処理に分 岐します。 EN ビットが "1" に設定されると , LEV および EN ビットはロックされて書込み不可 になります。いったん NMI 機能が有効になると , 信号レベルの変更も NMI の無効 化もできなくなります。EN ビットを "0" に変更できるのはデバイスリセットだけ となります。 EN ビットはリセット時に "0" に初期化されるため , デフォルトでは NMI 機能は無 効になっています。 LEV および EN ビットは , 同時に起動 ( 同じアクセスで変更 ) してはいけません。 EN ビットは , 後で個別に有効にする必要があります。そうしないと , スパイクフィ ルタの緩和時間が原因で NMI が発生することがあります。 [bit0] FLAG: ノンマスカブルインタラプトフラグ FLAG ビットには , NMI 端子で NMI が発生したときの非同期イベントが格納されま す。 スパイクを抑制するため , 短いパルスを除去するスパイクフィルタが使用されてい ます。パルスの極性は , LEV ビットの設定によって決まります。 FLAG ビットは , ハードウェアのイベント (NMI 発生 ) によってセットされ , 割り込 みから抜けるためにソフトウェアによってクリアできます。クリアされると割込み は終了します。割込みは , EN ビットと FLAG ビットの両方がセットされている場 合にのみ発生します。 FLAG ビットは , 読出しとクリアができます。FLAG ビットに "1" を書き込んでも無 視されます。リードモディファイライト (RMW) 系命令で読出しを行うと , FLAG ビットには常に "1" が返されます。 FLAG ビットのリセット後の値は不定です。FLAG ビットは , NMI を有効にする前 にクリアする必要があります。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 57 第 6 章 割込み 6.4 ノンマスカブルインタラプト (NMI) F2MC-16FX ファミリ 図 6.4-2 マスク不可能割込みレジスタの操作 EN NMI:LEV ロック機能 [10] 16FX バス EN [8] [9] NMI:EN CPUへのNMI CLKB同期 NMI 端子 レベル選択および スパイクフィルタ ASET NMI:FLAG SCLR 0 スリープ解除 1 ASET: 非同期セット SCLR: 同期クリア 58 SLEEP || STOP || TIMER FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 6 章 割込み 6.5 割込みフロー F2MC-16FX ファミリ 割込みフロー 6.5 図 6.5-2 に , 割込みフローを示します。 ■ 割込みフロー ハードウェア割込み , ソフトウェア割込み , 例外が発生すると , 割込み処理フローが実 行されます。割込みフローチャートの詳細は , 図 6.5-2 を参照してください。 割込み処理の前に , CPU 専用レジスタがスタックに退避します ( 図 6.5-1 参照 )。 図 6.5-1 割込み処理中のレジスタ退避 MSB LSB ワード (16 ビット) H SSP (割込み発生前の値) AH AL DPR ADB DTB PCB SSP PC PS SSP (割込み発生後の値) L 割込み処理の終了時 , RETI 命令が実行される中で CPU レジスタのコンテキストが復帰 します。CPU は通常のプログラム実行に戻ります。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 59 第 6 章 割込み 6.5 割込みフロー F2MC-16FX ファミリ 図 6.5-2 割込みフロー I, ILM IF, IE DER IL S DISEL START IF & IE = 1 および DER = 1 および DISEL = IRQ# : プログラムステート(PS)の割込みフラグおよび割込みレベルマスク : 内部リソースの割込み要求フラグおよび割込み許可 : 関連DMAチャネルのDMA許可レジスタ : ICR/ILRによるIRQチャネルのレベル設定 : CCR/PSのシステムスタックフラグ : DMA割込み選択レジスタ YES NO IF & IE = 1 および I=1 & IL<ILM YES NO 次の命令の 取込みとデコード INT 命令 YES NO 通常命令実行 NO PS, PC, PCB, DTB, ADB, DPR, Aを システムスタック(SSP)へ 退避させ,I=0に設定 PS, PC, PCB, DTB, ADB, DPR, Aを システムスタック(SSP)へ 退避させ,ILM = ILに設定 DMA処理による I/Oサービス ストリング系 命令の繰返しが完了 YES PCの更新 60 S=1 割込みベクタ取込み FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 6.6 第 6 章 割込み 6.6 ハードウェア割込み ハードウェア割込み 内部リソースからの割込み要求信号に対応して , CPU は現在実行中のプログラムを 一時中断し , ユーザの定義した割込み処理用プログラムへ制御を移行させます。 ■ ハードウェア割込み ハードウェア割込みは , 以下の 2 つの処理の結果 , 条件が満たされると発生します。 • 割込み要求レベル (IL) と , プログラムステータス (PS) の割込みレベルマスク (ILM) 値の比較 • PS レジスタの割込み許可フラグ (I) の値のハードウェア参照 ハードウェア割込みが発生すると , CPU は以下の処理を行います。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタ値のシステムスタックへ の退避 • スタックフラグ (S) のセット • PS レジスタ内の ILM の設定。現在要求されている割込みレベル (IL) が自動的に設 定される。 • 対応する割込みベクタの読出しおよびその値で示された処理への分岐 デバイスがスタンバイモードのとき , IL<7 のハードウェア割込みがあるとクロックお よびモード制御ユニットに対するスリープ解除イベントが発生します。 ■ ハードウェア割込みシステムの構造 割込みの状態は , 内部リソース , 割込みコントローラの ICR, および CPU の PS 値によっ て示されます。ハードウェア割込みを使用するには以下の設定を行います。 • 割込みベクタ ( メモリ内 ) - ベクタテーブルをデフォルト以外の箇所に配置する場合は TBR の値を考慮しま す。 - 割込みサービスルーチンの開始アドレスは , 対応する割込みベクタ (VecAddr = 4 × (255-INT#) + 256 × TBR) に書き込む必要があります。 • 周辺リソース - 割込み許可ビットおよび要求ビットを使用して , 周辺リソースからの割込み要求 を制御します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 61 第 6 章 割込み 6.6 ハードウェア割込み F2MC-16FX ファミリ • 割込みコントローラ - 発生する可能性のある割込みに対して割込みレベル (ICR:IL) を指定します。 - 複数の割込みが同時発生した場合 , 割込みレベルが小さいものほど優先度が高く なります。IL=7 では割込みが無効になります。 - 同じレベルの要求が複数ある場合 , 割込みコントローラは割込み番号が最も小さ い要求を選択します。同じレベルが設定されている場合 , 割込み番号とは関係な く , 遅延割込みの優先度が最も低くなります。 - 割込み要求と IL の間には一定の関係があります。各ハードウェア割込み要求 IRQ0 ∼ IRQ12 のレベルは , IL[n] によって指定できます。 • CPU - プログラムステータス (PS) の割込みレベルマスク (ILM) と割込み許可フラグ (I) が , 要求された割込みレベル (IL) と現在の ILM の値との比較と , 割込み許可の判 定に使用されます。ハードウェア割込みの受付けは , I フラグがセットされている こと , ILM が IL よりも大きいことが条件になります。 - 割込み処理中 , CPU は 12 バイトを SSB および SSP が示すメモリ領域に退避させ ます。そのため , 割込みを使用する前にシステムスタックポインタを初期化する 必要があります。 - CPU は割込みベクタの 3 バイト分をフェッチし , PC と PCB にロードします。割 込み処理ルーチンは , この位置から開始する必要があります。その結果 , 次にユー ザ指定の割込み処理プログラムが実行されます。RETI 命令の実行で通常動作が 再開します。 ■ ハードウェア割込みの動作 周辺リソースからの割込み要求 (IRQ) は , 割込みコントローラの前に DMA コントロー ラに渡されます。DMA コントローラは , DMA チャネル設定 (DMA 割込み要求選択レ ジスタ DISEL および DMA 許可 DER:ENx ビット ) に従って IRQ を DMA 転送で処理す るか , 割込みコントローラに渡すかを決定します。DMA 転送は , I フラグと割込みレベ ルの状態に関係なく受け付けられます。DMA コントローラでは優先度の順位が固定し ており , チャネル 0 で最も高い優先度 , チャネル 15 で最も低い優先度となります。 図 6.6-1 に , 割込み処理プログラムによるハードウェア割込みの発生から割込み要求の 解除までの処理フローを示します。 62 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 6 章 割込み 6.6 ハードウェア割込み F2MC-16FX ファミリ 図 6.6-1 ハードウェア割込みの発生と解除まで F2MC−16FX CPU (9c) (9b) PS レジスタファイル スタック 操作 実行パイプライン F2MC−16FX バス S (8) チェック Int (9) (9a) (12) I ILM (7) コンパレータ INT 番号 (6) INT レベル IRQ付きリソース 割込み コントローラ リソース 許可 FF (IE) (10) IRQ (2) ソース FF (I) (3) DMA (4) コントローラ (5) レベル コンパレータ 割込み レベル IL (1) データ転送(3a)およびIRQクリア(3b)の制御 (1) リソース内で割込み要因が発生します。 (2) リソース内の割込み許可ビットを参照します。割込み許可になっていれば, リソー スが DMA コントローラに割込み要求 (IRQ) を送ります。 (3) DMA コントローラが IRQ を DMA で処理すべきかチェックします。DMA コント ローラは , 発生した IRQ の割込み番号を選択するか , DMA を有効にするかをチャ ネルごとに判定します。 -判定が「真」となった場合 , 転送は DMA (3a) が処理します。判定が「偽」となっ た場合 , 割込み処理は割込みコントローラが行うことになり , (4) に続きます。 -DMA 転送の終了後 , 割込みビットがリソース (3b) でクリアされます。 -最終転送カウントに達すると , 割込みコントローラで DMA 完了割込みが処理さ れます。 (4) 割込みコントローラが割込み要求を受け取ります。 (5) 割込みコントローラは同時に要求のあった割込みの優先順位を判定します。 (6) 割込みコントローラは最も優先度の高い割込みレベルおよび対応する割込み番 号を CPU に転送します。 (7) 割込みコントローラが要求した割込みレベルとプロセッサステータスレジスタ の ILM 値が比較されます。 (8) 比較の結果 , 要求されている割込み処理のレベルが現在のレベルより優先順位が 高い (IL<ILM) 場合 , 同じプロセッサステータスレジスタ内の I フラグの内容が チェックされます。 (9) ステップ (5) のチェックで I フラグが割込み許可状態だった場合 , 現在実行中の命 令の実行が終了し次第 , 割込み処理が実行されます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 63 第 6 章 割込み 6.6 ハードウェア割込み F2MC-16FX ファミリ -CPU の状態を退避させるため , 専用 CPU レジスタがシステムスタック (9a) に転 送されます。 -S フラグが "1" に設定されます (9b)。 -要求されたレベルが ILM ビット (9c) に書き込まれます。 -割込みベクタが読み出されます。 -制御が割込み処理ルーチンに移ります ( 割込みベクタとして読み出されたアドレ スへの分岐 )。 (10) ユーザの割込み処理ルーチン内でステップ(1)の割込み要因がソフトウェアによっ てクリアされた場合 , 割込み要求は終了します。 (11) RETI 命令を最後の命令として , 割込み処理ルーチンから復帰します。 (12) システムスタックに退避していた CPU の状態が復元され , 通常のプログラム実行 が再開します。 ■ ハードウェア割込みの処理時間 以下に , CPU が割込み処理 ( スタック操作 , 割込みベクタ取込み , 割込みベクタへの分 岐 ) に必要な時間を示します。数値は , スタック操作および割込みベクタ取込みがウェ イトサイクルなしで実行された場合です。 • 割込み起動 : 10 サイクル + c • 割込み復帰 : 9 サイクル + c (RETI 命令 ) 表 6.6-1 割込み処理時のサイクル数の補正値 (c) スタックポインタが示しているアドレス 補正値 内部領域が偶数アドレスの場合 0 内部領域が奇数アドレスの場合 +2 バス転送のウェイトサイクルがある場合 ( 例 : 遅い ROM メモリまたは外部領域のベク タテーブルへのアクセス ), それも加算する必要があります。 64 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 6.7 第 6 章 割込み 6.7 ソフトウェア割込み ソフトウェア割込み 一定の命令が実行されると , CPU は実行中のプログラムからユーザ定義の割込み処 理用プログラムに制御を移します。これをソフトウェア割込み機能とよびます。ソ フトウェア割込みはソフトウェア割込み命令を実行すると必ず発生します。 ■ ソフトウェア割込み INT命令により発行されるソフトウェア割込みには, 割込み要求フラグや割込み許可フ ラグはありません。ソフトウェア割込み要求は , INT 命令の実行により常に発生し , 常 に受け付けられます。 INT 命令には割込みレベルはありません。したがって , INT 命令は割込みレベルマスク (ILM) を更新しません。INT 命令は , 割込み許可フラグ (I) をクリアして以降のハード ウェア割込み要求を保留にします。 ソフトウェア割込みが発生すると , CPU は以下の処理を行います。 • CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの 退避 • S フラグのセット • PS レジスタ内の I フラグのクリア。ハードウェア割込みは自動的に無効になります。 • 対応する割込みベクタの取出しおよびその値で示された処理への分岐 ■ ソフトウェア割込みシステムの構造 ソフトウェア割込みは CPU 内ですべて処理されます。ソフトウェア割込みを使用する には , 以下の設定を行います。 • 割込みベクタ ( メモリ内 ) - ベクタテーブルをデフォルト以外の箇所に配置する場合は TBR の値を考慮しま す。 - 割込みサービスルーチンの開始アドレスは , 対応する割込みベクタ (VecAddr = 4 × (255-INT#) + 256 × TBR) に書き込む必要があります。 • CPU - 割込み処理中 , CPU は 12 バイトを SSB および SSP が示すメモリ領域に退避させ ます。そのため , 割込みを使用する前にシステムスタックポインタを初期化する 必要があります。 - CPU は割込みベクタの 3 バイト分をフェッチし , PC と PCB にロードします。割 込み処理ルーチンは , この位置から始める必要があります。その結果 , 次にユー ザ指定の割込み処理プログラムが実行されます。RETI 命令の実行で通常動作が 再開します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 65 第 6 章 割込み 6.7 ソフトウェア割込み F2MC-16FX ファミリ ■ ソフトウェア割込みの動作 CPU がソフトウェア割込み命令をフェッチして実行すると , ソフトウェア割込み処理 シーケンスが始まります。このシーケンスは , SSB と SSP の示すメモリ領域へ 12 バイ ト (PS, PC, PCB, DTB, ADB, DPR, A) を退避させます。次に , 割込みベクタを 3 バイト 取込み , プログラムカウンタ (PC) とプログラムカウンタバンクレジスタ (PCB) へ格納 し , 割込み許可フラグ (I) フラグをクリア , スタックフラグ (S) をセットします。そして , 分岐処理を行います。その結果 , 次にユーザ指定の割込み処理プログラムが実行されま す。 図 6.7-1 に , ソフトウェア割込みの発生から , 割込み処理プログラムより制御が戻るま でのフローを示します。 図 6.7-1 ソフトウェア割込みの発生と解除まで F2MC−16FX バス (2b) PS レジスタファイル スタック 操作 I S ILM クリア (2c) (2a) 実行パイプライン INT (1) (5) 命令キュー F2MC−16FX CPU RETI命令 (4) 割込み サービス ルーチンの処理(3) INT命令(1) (1) ソフトウェア割込み命令を実行します。 (2) ソフトウェア割込み命令に対応した割込み処理が CPU によって実行されます。 - CPU の状態を退避させるため , 専用 CPU レジスタがシステムスタック (2a) に転 送されます。 - S フラグが "1" に設定されます (2b)。 - I フラグがクリアされ , ハードウェア割込みが無効になります (2c)。 - 割込みベクタが読み出されます。 - 制御が割込み処理ルーチンに移ります ( 割込みベクタとして読み出されたアドレ スへの分岐 )。 (3) 割込みサービスルーチンが CPU によって処理されます。 (4) ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。 (5)CPU は , 専用レジスタのコンテキストをシステムスタックから復元させます。 (6)CPU は , INT 命令に続く次の命令を実行してプログラムを続行します。 66 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 6.8 第 6 章 割込み 6.8 多重割込み 多重割込み F2MC-16FX CPU は , 多重割込み ( 同時発生する割込み , および入れ子になった割込 み処理 ) をサポートしています。 ■ 多重ハードウェア割込み 現在処理中のハードウェア割込みよりも優先度の高い ( レベル値が小さい ) 割込み要求 が発生した場合は , 現在実行中の命令が終了した後に優先度の高い割込み要求に制御 が移ります。優先度の高い割込み処理が終了した後は , 最初に実行していた割込み処理 が再開します。 割込み処理実行中に , 現在実行中の割込みと同等か , 低い優先度の割込み要求が出力さ れることがあります。この場合は , 割込み許可フラグ (I) または割込みレベルマスク (ILM) を命令で変更しないかぎり , 現在の割込み処理が終了するまで新しい割込み要求 は保留になります。 DMA 転送は割込み不可で , 多重起動できません。DMA 転送の処理中は , 他の DMA 要 求はすべて保留されます。DMA コントローラに対する要求が同時発生した場合 , 最も 小さいチャネル番号が最初に処理されます。 DMA の詳細は , 各デバイスのハードウェアマニュアルを参照してください。 ■ 多重ソフトウェア割込み ソフトウェア割込みが同時発生することはありません。ソフトウェア割込みは INT 命 令を実行することで発生し , 常に受け付けられます。INT 命令を割込みサービスルーチ ン内に置いたとしても , 入れ子になったソフトウェア割込みを実行することができま す。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 67 第 6 章 割込み 6.8 多重割込み F2MC-16FX ファミリ ■ 割込み受付の優先順位 表 6.8-1 に , すべての割込みの受付け条件を示します。 表 6.8-1 割込み優先順位の制御 イベント INT# - - 種類 命令ブレーク (VEIB) システム予約 ツールブレーク (VENMI) レベル 受付け条件 P2 現在の命令の実行が終了して以 下が成立する場合 ILM>2 || P == 1 P=0 ILM = 2 P2 ストリング命令実行中に割込み が発生した , または現在の命令 の実行が終了していて , 以下が 成立する場合 ILM>2 || P == 1 P=0 ILM = 2 P4 ストリング命令実行中に割込み が発生した , または現在の命令 の実行が終了していて , 以下が 成立する場合 ILM>4 || P == 1 P=0 ILM = 4 P6 ストリング命令実行中に割込み が発生した , または現在の命令 の実行が終了していて , 以下が 成立する場合 ILM>6 || P == 1 P=0 ILM = 6 システム予約 ハードウェアイベント 11 9 13 以降 ソフトウェアイベント ( 命令 ) 12 68 - NMI アドレス一致検出 (HW-INT9) ストリング命令実行中に割込み が発生した , または現在の命令 の実行が終了していて , 以下が 成立する場合 ILM > IL IL U0...U7 P == 1 I == 1 同じ IL の要求が複数ある場合 は , 最も小さい IRQ 番号の要求 が受け付けられる。 周辺 IRQ ストリング命令実行中に割込み が発生した , または現在の命令 の実行が終了していて , 以下が 成立する場合 IL ILM > IL U0...U7 P == 1 I == 1 同じ IL で保留中の周辺 IRQ が ない。 遅延 INT ソフトウェア命令ブ レーク (INTE) 受け付けられた場合の動作 CPU の状態を システムス タックに退避 S=1 ILM = IL 割込みベクタ に分岐 ILM = IL P=0 ILM = 2 I=0 P2 システム予約 9 INT9 - I=0 10 未定義命令による 例外 - I=0 すべて INT 命令 - RETI 命令 - 常に受付け - FUJITSU MICROELECTRONICS LIMITED I=0 CPU の状態の復元 (P, I, S, ILM を含む ) CM44-00203-3 第 6 章 割込み 6.8 多重割込み F2MC-16FX ファミリ IL および ILM : 割込みレベルおよび割込みレベルマスク I : 割込み許可フラグ (PS の CCR 内 ) S : スタックフラグ (PS の CCR 内 ) P : 特権モードフラグ (PS の CCR 内 ) 以下の表に , 割込みレベルの名称 , 対応する P フラグおよび ILM 値を示します。また , 割込みレベルを要求割込み要因も記載します。 表 6.8-2 割込みレベル 名称 カテゴリ P フラグ ILM の値 優先度 備考 P0 0 0 最高 - P1 0 1 - P2 0 2 DSU 0 3 - 0 4 NMI P5 0 5 - P6 0 6 HW-INT9 P7 0 7 - U0 1 0 U1 1 1 U2 1 2 U3 1 3 1 4 U5 1 5 U6 1 6 U7 1 7 P3 P4 U4 CM44-00203-3 特権モード ユーザモード 周辺機能 最低 FUJITSU MICROELECTRONICS LIMITED 要求なし 69 第 6 章 割込み 6.9 例外 6.9 F2MC-16FX ファミリ 例外 F2MC-16FX では , 様々なソフトウェアおよびハードウェアイベントの発生時に例外 処理が行われます。 ■ ソフトウェア例外 ( 命令コード ) ソフトウェア例外は常に受け付けられます。ソフトウェア割込みと同じく , ソフトウェ ア例外はすべてのハードウェア割込みの受付けを無効にします。ソフトウェア例外は , 以下のような命令コードの実行によって発生します。 ● 未定義命令の実行 命令マップで定義されていないコードはすべて未定義命令として処理されます。未定 義命令が実行されると , ソフトウェア割込み命令 INT#10 と同じ処理が実行されます。 具体的には , スタックに退避しているプログラムカウンタ (PC) 値が , 未定義命令がス トアされているアドレスです。処理は RETI 命令によって復帰しますが , 同じ例外が再 度発生するので復帰不能になります。 動作 : SSP ←SSP-2, (SSP) ←AH SSP ←SSP-2, (SSP) ←AL SSP ←SSP-2, (SSP) ←DPR:ADB SSP ←SSP-2, (SSP) ←DTB:PCB SSP ←SSP-2, (SSP) ←PC SSP ←SSP-2, (SSP) ←PS S ←1, I ←0 PCB ←ベクタ #10 のアドレス ( 上位バイト ) PC ←ベクタ #10 のアドレス ( 下位ワード ) ● INT9 この命令により , ベクタ #9 によって示される割込み処理ルーチンに分岐します。割込 みルーチンで RETI 命令を実行することで , INT9 命令後の処理に復帰します。 動作 : SSP ←SSP-2, (SSP) ←AH SSP ←SSP-2, (SSP) ←AL SSP ←SSP-2, (SSP) ←DPR:ADB SSP ←SSP-2, (SSP) ←DTB:PCB SSP ←SSP-2, (SSP) ←PC+1 SSP ←SSP-2, (SSP) ←PS S ←1, I ←0 70 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 6 章 割込み 6.9 例外 PCB ←ベクタ #9 のアドレス ( 上位バイト ) PC ←ベクタ #9 のアドレス ( 下位ワード ) ● INTE( システム予約。DSU のみで利用可能 ) INTE は , インサーキットエミュレータ (ICE) を使用したデバッグシステムで , ソフト ウェアブレークポイントを挿入する際に使用します。ソフトウェアブレーク命令の挿 入時に , 元の命令の最初のバイトが INTE と置き換わります。 この命令によって , DSU が定義する固定ベクタによって示された割込み処理ルーチン に分岐します。スタックに退避されている PC の値は , INTE のストアされているアド レスです。割込みルーチンで RETI 命令を実行すると , そこで処理が復帰します ( ソフ トウェアブレークポイントを削除すれば INTE と元の命令を置き換えることができま す )。 特権モードフラグ (P) はクリアされ , ILM レジスタは 2 に設定されます ( レベル P2)。 これにより , すべてのハードウェア割込みおよび例外が無効になります。P フラグおよ び ILM は , RETI 命令の実行時に復帰します。 動作 : SSP ←SSP-2, (SSP) ←AH SSP ←SSP-2, (SSP) ←AL SSP ←SSP-2, (SSP) ←DPR:ADB SSP ←SSP-2, (SSP) ←DTB:PCB SSP ←SSP-2, (SSP) ←PC SSP ←SSP-2, (SSP) ←PS S ←1, I ←0, P ←0, ILM ←2 PCB ←DSU 指定の固定ベクタ ( 上位バイト , 00H, DSU はアドレスを無視 ) PC ←DSU 指定の固定ベクタ ( 下位ワード , 0400H, DSU はアドレスを無視 ) DSU がなければ , INTE は未定義命令による例外と同じように処理されます。割込みベ クタ #10 が参照されます。P フラグはクリアされず , ILM は更新されません。 ■ ハードウェア例外 ( ノンマスカブルインタラプト ) ハードウェア例外は外部イベントのため , ソフトウェア命令ではマスクできません。現 在処理されているものよりもレベル番号が高いハードウェア例外は , RETI 命令の実行 によって以前のレベルに戻るまで保留されます。さらに , ハードウェア例外はすべての ハードウェア割込みの受付けを無効にします。 複数のハードウェア例外が同時に発生する場合 , VEIB > VENMI > NMI > HW-INT9 の 優先順位で受け付けられます。ハードウェア例外は , 現在の割込みレベルマスクおよび P フラグの設定で許可されている場合 , 各命令の実行終了後およびストリング命令の実 行中に受け付けられます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 71 第 6 章 割込み 6.9 例外 F2MC-16FX ファミリ ● HW-INT9 HW-INT9 は , アドレス一致検出機能で使用されます。この機能により , 内蔵デバッグ サポート ( オペランドアドレスブレークまたはデータ値ブレーク ) や簡単なメモリ保護 が実現されています。 特権モードフラグ (P) はクリアされ , 割込みレベルマスク (ILM) は 6 に設定されます ( レベル P6)。これにより , 周辺機能からのすべてのハードウェア割込みが無効になり ます。P フラグおよび ILM は , RETI 命令の実行時に復帰します。 動作 : SSP ←SSP-2, (SSP) ←AH SSP ←SSP-2, (SSP) ←AL SSP ←SSP-2, (SSP) ←DPR:ADB SSP ←SSP-2, (SSP) ←DTB:PCB SSP ←SSP-2, (SSP) ←PC SSP ←SSP-2, (SSP) ←PS S ←1, P ←0, ILM ←6 PCB ←ベクタ #9 のアドレス ( 上位バイト ) PC ←ベクタ #9 のアドレス ( 下位ワード ) ● NMI ノンマスカブルインタラプト (NMI) は , 外部ハードウェアの例外処理を行います。 特権モードフラグ (P) はクリアされ , 割込みレベルマスク (ILM) は 4 に設定されます ( レベル P4)。これにより , 周辺機能からのすべてのハードウェア割込みおよび HWINT9 が無効になります。P フラグおよび ILM は , RETI 命令の実行時に復帰します。 動作 : SSP ←SSP-2, (SSP) ←AH SSP ←SSP-2, (SSP) ←AL SSP ←SSP-2, (SSP) ←DPR:ADB SSP ←SSP-2, (SSP) ←DTB:PCB SSP ←SSP-2, (SSP) ←PC SSP ←SSP-2, (SSP) ←PS S ←1, P ←0, ILM ←4 PCB ←ベクタ #11 のアドレス ( 上位バイト ) PC ←ベクタ #11 のアドレス ( 下位ワード ) 72 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 6 章 割込み 6.9 例外 ● ツールブレーク (VENMI, システム予約 , DSU のみで利用可能 ) VENMI は DSU を使ったデバッグに使用します。様々なブレーク要因を実装していま す。 特権モードフラグ (P) はクリアされ , 割込みレベルマスク (ILM) は 2 に設定されます ( レベル P2)。これにより , すべてのハードウェア割込みおよび例外が無効になります。 P フラグおよび ILM は , RETI 命令の実行時に復帰します。 動作 : SSP ←SSP-2, (SSP) ←AH SSP ←SSP-2, (SSP) ←AL SSP ←SSP-2, (SSP) ←DPR:ADB SSP ←SSP-2, (SSP) ←DTB:PCB SSP ←SSP-2, (SSP) ←PC SSP ←SSP-2, (SSP) ←PS S ←1, P ←0, ILM ←2 PCB ←DSU 指定の固定ベクタ ( 上位バイト , 00H, DSU はアドレスを無視 ) PC ←DSU 指定の固定ベクタ ( 下位ワード , 0400H, DSU はアドレスを無視 ) ● 命令ブレーク (VEIB, システム予約 , DSU のみで利用可 ) VEIB は , DSU を使ったデバッグに使用します。命令実行後の命令ブレークを実装して います。VEIB は , ほかのハードウェア例外とは反対に , ストリング命令の実行中は受 け付けられません。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 73 第 6 章 割込み 6.9 例外 74 F2MC-16FX ファミリ FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第7章 アドレス指定方式 F2MC-16FX の各命令におけるアドレス指定方式に ついて説明します。 アドレス指定方式では , 使用するデータやアドレス を指定します。 F2MC-16FX では , 実効アドレス指定または使用す る命令コード自体でアドレス形式 ( 絶対アドレス , 相対アドレス ) が決定されます。命令コード自体で アドレス形式が決定するときは , 使用する命令コー ドに合わせてアドレスを指定します。 また , 命令によっては , 数種類のアドレス指定方式 を指定できるものがあります。 7.1 実効アドレスフィールド 7.2 直接アドレス指定方式 7.3 間接アドレス指定方式 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 75 第 7 章 アドレス指定方式 7.1 実効アドレスフィールド 7.1 F2MC-16FX ファミリ 実効アドレスフィールド 実効アドレスフィールドで指定されるアドレス形式を表 7.1-1 に示します。 ■ 実効アドレスフィールド 表 7.1-1 実効アドレスフィールド コード 76 表記 アドレス形式 00H R0 RW0 RL0 01H R1 RW1 (RL0) 02H R2 RW2 RL1 03H R3 RW3 (RL1) バイト 04H R4 RW4 RL2 ワード 05H R5 RW5 (RL2) 06H R6 RW6 RL3 07H R7 RW7 (RL3) 08H @RW0 09H @RW1 0AH @RW2 0BH @RW3 デフォルト バンク レジスタ直接 ( 注意事項 ) 左の表記欄の汎用レジスタ名は , なし ロングワード の型に対応します。 DTB レジスタ間接 DTB ADB SPB 0CH @RW0+ DTB 0DH @RW1+ DTB 0EH @RW2+ 0FH @RW3+ SPB 10H @RW0+disp8 DTB 11H @RW1+disp8 DTB 12H @RW2+disp8 13H @RW3+disp8 ポストインクリメント付レジスタ間接 ADB ADB 8 ビットディスプレースメント付 SPB DTB 14H @RW4+disp8 15H @RW5+disp8 16H @RW6+disp8 ADB 17H @RW7+disp8 SPB 18H @RW0+disp16 DTB 19H @RW1+disp16 DTB 1AH @RW2+disp16 1BH @RW3+disp16 レジスタ間接 16 ビットディスプレースメント付 レジスタ間接 DTB ADB SPB 1CH @RW0+RW7 インデックス付レジスタ間接 DTB 1DH @RW1+RW7 DTB 1EH @PC+disp16 インデックス付レジスタ間接 16 ビットディスプレースメント付 PC 間接 1FH addr16 直接アドレス DTB FUJITSU MICROELECTRONICS LIMITED PCB CM44-00203-3 第 7 章 アドレス指定方式 7.2 直接アドレス指定方式 F2MC-16FX ファミリ 7.2 直接アドレス指定方式 直接アドレス指定方式では , オペランドに値 , レジスタおよびアドレスを直接指定し ます。 ■ 直接アドレス指定方式 ● 即値 (#imm) オペランドの値を直接指定します。即値には , データによって以下の 4 種類があります。 • #imm4 • #imm8 • #imm16 • #imm32 ● レジスタ直接 オペランドとしてレジスタを直接指定します。指定できるレジスタを以下に示します。 • 汎用レジスタ ( バイト ) :R0, R1, R2, R3, R4, R5, R6, R7 ( ワード ) :RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 ( ロングワード ) :RL0, RL1, RL2, RL3 • 専用レジスタ ( アキュムレータ ) :A, AL ( ポインタ ) :SP* ( バンク ) :PCB, DTB, USB, SSB, ADB ( ページ ) :DPR ( 制御 ) :PS, CCR, RP, ILM * : SP は , コンディションコードレジスタ (CCR) 中のスタックフラグ (S) の値に応じ て , ユーザスタックポインタ (USP) またはシステムスタックポインタ (SSP) のどち らか一方が選択され , 使用されます。分岐系の命令ではプログラムカウンタ (PC) は命令のオペランドに記述しませんが , 自動的に指定されます。 ● 直接分岐アドレス (addr16) 分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント のアドレス長は 16 ビットで , 論理空間内での分岐先を示します。無条件分岐命令およ びサブルーチン呼び出し命令に使用します。アドレスの bit16 ∼ bit23 はプログラムカ ウンタバンクレジスタ (PCB) により示されます。 ● 物理直接分岐アドレス (addr24) 分岐先の物理アドレスをディスプレースメントで直接指定します。ディスプレースメ ントのデータ長は 24 ビットです。無条件分岐命令 , サブルーチン呼び出し命令 , ソフ トウェア割込み命令に使用します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 77 第 7 章 アドレス指定方式 7.2 直接アドレス指定方式 F2MC-16FX ファミリ ● I/O 直接 (io) オペランドのメモリアドレスを 8 ビットのディスプレースメントで直接指定しましま す。 データバンクレジスタ (DTB), ダイレクトページレジスタ (DPR) の値にかかわらず , 物理アドレス 000000H ∼ 0000FFH 番地の I/O 空間がアクセスされます。このアドレス 指定を使用した命令の前にバンク指定用のバンクセレクトプリフィックスを記述して も無効です。 ● 短縮直接アドレス (dir) オペランドでメモリアドレスの下位 8 ビットを指定します。アドレスの bit8 ∼ bit15 は ダイレクトページレジスタ (DPR) により指定されます。アドレスの bit16 ∼ bit23 はデー タバンクレジスタ (DTB) により示されます。 ● 直接アドレス (addr16) オペランドでメモリアドレス下位 16 ビットを直接指定します。アドレスの bit16 ∼ bit23 はデータバンクレジスタ (DTB) により示されます。 ● I/O 直接ビットアドレス (io:bp) ビットの位置は :bp 物理アドレス 000000H ∼ 0000FFH 番地内のビットを直接指定します。 で表します。数字の大きい方が最上位ビット , 小さい方が最下位ビットとなります。 ● 短縮直接ビットアドレス (dir:bp) オペランドでメモリアドレスの下位 8 ビットを直接指定します。また , アドレスの bit8 ∼ bit15 はダイレクトページレジスタ (DPR) により示されます。アドレスの bit16 ∼ bit23 はデータバンクレジスタ (DTB) により示されます。ビットの位置は :bp で表します。数 字の大きい方が最上位ビット , 小さい方が最下位ビットとなります。 ● 直接ビットアドレス (addr16:bp) 64K バイト内の任意のビットに対し直接指定します。アドレスの bit16 ∼ bit23 はデー タバンクレジスタ (DTB) により示されます。ビット位置は :bp で表します。数字の大 きい方が最上位ビット , 小さい方が最下位ビットとなります。 ● ベクタアドレス (#vct) 分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には 4 ビットと 8 ビットの 2 種類があります。サブルーチン呼び出し命令 , ソフトウェア割 込み命令に使用します。 78 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 7.3 第 7 章 アドレス指定方式 7.3 間接アドレス指定方式 間接アドレス指定方式 間接アドレス指定方式では , 記述したオペランドが示すアドレスのデータで間接的に アドレスを指定します。 ■ 間接アドレス指定方式 ● レジスタ間接 (@RWj j=0 ∼ 3) 汎用レジスタ RWj の内容に示されるアドレスの , メモリをアクセスするアドレス指定 方式です。アドレスの bit16 ∼ bit23 は , RW0/RW1 を用いた場合にはデータバンクレジ スタ (DTB), RW3 を用いた場合には SPB, RW2 を用いた場合にはアディショナルデータ バンクレジスタ (ADB) により示されます。 ● ポストインクリメント付きレジスタ間接 (@RWj+ j=0 ∼ 3) 汎用レジスタ RWj の内容に示されるアドレスのメモリをアクセスするアドレス指定方 式です。オペランド操作後 RWj は , オペランドデータ長 ( バイトのときは 1, ワードの ときは 2, ロングワードのときは 4) 分だけインクリメント ( 加算 ) されます。アドレス の bit16 ∼ bit23 は , RW0/RW1 を用いた場合にはデータバンクレジスタ (DTB), RW3 を 用いた場合には SPB, RW2 を用いた場合にはアディショナルデータバンクレジスタ (ADB) により示されます。 ポストインクリメントした結果がインクリメント指定をしたレジスタ自身のアドレス であった場合 , その後に参照される値はインクリメントした値となります。そのため , そのレジスタにデータを書き込む命令の場合には , 命令による書込みの方が優先され るため , インクリメントするはずであったレジスタの値は書込みデータになります。 ● ディスプレースメント付きレジスタ間接 (@RWi+disp8 i=0 ∼ 7,@RWj+disp16 j=0 ∼ 3) 汎用レジスタ RWj の内容にディスプレースメントを加算した値で示されるアドレスの メモリをアクセスするアドレス指定方式です。ディスプレースメントは , バイトまたは ワードの 2 種類があり , 符号付き数値として加算されます。アドレスの bit16 ∼ bit23 は , RW0/RW1/RW4/RW5 を用いた場合はデータバンクレジスタ (DTB) により示されます。 RW3/RW7 を用いた場合は SPB, RW2/RW6 を用いた場合はアディショナルデータバン クレジスタ (ADB) により示されます。 ● ディスプレースメント付きロングレジスタ間接 (@RLi+disp8 i=0 ∼ 3) 汎用レジスタ RLi の内容にディスプレースメントを加算した結果の下位 24 ビットで示 されるアドレスのメモリをアクセスするアドレス指定方式です。ディスプレースメン トは 8 ビットで , 符号付き数値として加算されます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 79 第 7 章 アドレス指定方式 7.3 間接アドレス指定方式 F2MC-16FX ファミリ ● ディスプレースメント付きプログラムカウンタ間接 (@PC+disp16) ( 命令のアドレス +4 +disp16) で示されるアドレスのメモリをアクセスするアドレス指 定方式です。ディスプレースメントはワード長です。アドレスの bit16 ∼ bit23 はプロ グラムカウンタバンクレジスタ (PCB) により示されます。 次に示す命令のオペランドアドレスは , ( 次の命令のアドレス +disp16) とはみなしませ んので注意してください。 • DBNZ eam,rel • DWBNQ eam,rel • CBNE eam,#imm8,rel • CWBNE eam,#imm16,rel • MOV eam,#imm8 • MOVW eam,#imm16 ● ベースインデックス付きレジスタ間接 (@RW0+RW7,@RW1+RW7) 汎用レジスタ RW7 の内容に , RW0 または RW1 の内容を加算した値で示されるアドレ スのメモリをアクセスするアドレス指定方式です。アドレスの bit16 ∼ bit23 はデータ バンクレジスタ (DTB) により示されます。 ● プログラムカウンタ相対分岐アドレス (rel) 分岐先のアドレスはプログラムカウンタ (PC) の値と 8 ビットのディスプレースメント を加算した値となります。加算の結果が 16 ビットを超えた場合は , バンクレジスタの インクリメントまたはデクリメントをせずに , 超えた分は無視されます。結果として , 64K バイトのバンク内で閉じたアドレスとなります。これは無条件 / 条件分岐命令に使 用します。アドレスの bit16 ∼ bit23 はプログラムカウンタバンクレジスタ (PCB) によ り示されます。 ● レジスタリスト (rlst) スタックに対するプッシュ / ポップの対象となるレジスタを指定します ( 図 7.3-1 参 照 )。 図 7.3-1 レジスタリストの構成 MSB LSB RW7 RW6 RW5 RW4 RW3 RW2 RW1 RW0 対応ビットが"1"のとき選択,"0"のとき非選択 ● アキュムレータ間接 (@A) アキュムレータの下位ワード (AL) の内容で示されるアドレスのメモリをアクセスする アドレス指定方式です。アドレスの bit16 ∼ bit23 はデータバンクレジスタ (DTB) によ り示されます。 80 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 7 章 アドレス指定方式 7.3 間接アドレス指定方式 ● アキュムレータ間接分岐アドレス (@A) 分岐先アドレスは , アキュムレータの下位ワード (AL) の内容で示されるアドレスとな ります。 バンク空間内での分岐先を示し , アドレスの bit16 ∼ bit23 はプログラムカウンタバンク レジスタ (PCB) で示されます。ただし , JCTX(Jump Context) 命令の場合はアドレスの bit16 ∼ bit23 はデータバンクレジスタ (DTB) で示されます。このアドレス指定は無条 件分岐命令のときに使用します。 ● 間接指定分岐アドレス (@ear) ear で示される番地のワードデータが分岐先アドレスとなります。 ● 間接指定分岐アドレス (@eam) eam で示される番地のワードデータが分岐先アドレスとなります。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 81 第 7 章 アドレス指定方式 7.3 間接アドレス指定方式 82 F2MC-16FX ファミリ FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第8章 命令細則 アセンブラで使用される各実行命令について , リ ファレンス形式で説明します。なお , 各実行命令は , アルファベット順に掲載します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 83 第 8 章 命令細則 8.1 命令細則の読み方 8.1 F2MC-16FX ファミリ 命令細則の読み方 命令ごとに下記の項目について説明しています。 ■ 命令細則の読み方 ● アセンブラ形式 各命令をアセンブラのソースプログラムに記述する際の記述形式を示します。 • 英大文字 , 記号 …………ソースプログラム中にそのまま表記します。 • 英小文字…………………ソースプログラム中は , 書き換えて記述します。 • 英小文字のあとの数……命令中のビット幅を示します。 ● オペレーション 命令の実行によるレジスタやデータの操作を示します。 ● CCR コンディションコードレジスタ (CCR) の各フラグ (I, S, T, N, Z, V, C) の状態を示しま す。 • *……命令の実行により変化します。 • −……変化しません。 • S……命令の実行によりセットされます。 • R……命令の実行によりクリアされます。 ● バイト数 , サイクル数 命令のバイト数 , 命令実行時のサイクル数 , 奇数アドレス補正のサイクル数を示しま す。 バイト数の所で "2+" のように " 数値 +" と書かれているときは , 付録 A.3 に示される 「アドレス拡張のバイト数」が数値に加算されて , 命令のバイト数を示します。 命令の実行に要するサイクル数 ( 実行サイクル数 ) は , 各命令のサイクル数の値と , 条 件により決まる奇数アドレス補正の値を加算することにより得られます。 ● 実行例 各命令の実行例を示します。 実行例中の数値データはすべて 16 進数です。オペランド中の数値データは , サフィッ クス (H) を付加して 16 進数を表しています。 84 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.1 命令細則の読み方 F2MC-16FX ファミリ ■ 命令細則中で使用される記号 ( 略称 ) 表 8.1-1 に命令細則中で使用される記号の一覧を示します。 表 8.1-1 命令細則中で使用される記号 ( 略称 ) 表記 A AH AL SP PC PCB DTB ADB SSB USB DPR brg1 brg2 brg3 Ri Rj Rwi RWj RLi dir addr16 addr24 ad24 0-15 ad24 16-23 io imm4 imm8 imm16 imm32 ext(imm8) disp8 disp16 bp vct4 vct8 ( )b rel ear eam rlst CM44-00203-3 意味 32 ビットアキュムレータ 命令により , 使用されるビット長が変わります。 バイト…AL の下位 8 ビット ワード…AL の 16 ビット ロング…AL:AH の 32 ビット A の上位 16 ビット A の下位 16 ビット スタックポインタ (USP or SSP) プログラムカウンタ プログラムカウンタバンクレジスタ データバンクレジスタ アディショナルデータバンクレジスタ システムスタックバンクレジスタ ユーザスタックバンクレジスタ ダイレクトページレジスタ DTB, ADB, SSB, USB, DPR, PCB DTB, ADB, SSB, USB, DPR DTB, ADB, PCB, SPB R0, R1, R2, R3, R4, R5, R6, R7 R0, R1, R2, R3 RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 RW0, RW1, RW2, RW3 RL0, RL1, RL2, RL3 短縮直接アドレス指定 直接アドレス指定 物理直接アドレス指定 addr24 の bit0 ∼ bit15 addr24 の bit16 ∼ bit23 I/O 領域 (000000H ∼ 0000FFH) 4 ビット即値データ 8 ビット即値データ 16 ビット即値データ 32 ビット即値データ 8 ビット即値データを符号拡張した 16 ビットデータ 8 ビットディスプレースメント 16 ビットディスプレースメント ビットオフセット値 ベクタ番号 (0 ∼ 15) ベクタ番号 (0 ∼ 255) ビットアドレス PC 相対分岐指定 実効アドレス指定 ( コード 00H ∼ 07H) 実効アドレス指定 ( コード 08H ∼ 1FH) レジスタリスト FUJITSU MICROELECTRONICS LIMITED 85 第 8 章 命令細則 8.1 命令細則の読み方 F2MC-16FX ファミリ ■ 実行サイクル数 命令の実行に要するサイクル数は , 各命令の「サイクル数」の値 , データのアクセス条 件により決まる「奇数アドレス補正」の値を加算することで得られます。 実際の命令実行においては , 命令フェッチの遅れ , データアクセスの競合等により , 実 行サイクル数が計算値より増大することがあります。とくに , 外部バスインタフェース を使用して , 外部バスからの命令フェッチや , データアクセスを行うときには , 実行サ イクル数が増大します。 ■ 奇数アドレス補正 一部の命令においては,奇数アドレスへのデータアクセスを行うときに実行サイクルが 増大します。奇数アドレスへのデータアクセスで増大するサイクル数を奇数アドレス 補正として示してあります。 86 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.2 ADD (Add Byte Data of Destination and Source to Destination) F2MC-16FX ファミリ 8.2 ADD (Add Byte Data of Destination and Source to Destination) 第 1 オペランドのバイトデータと , 第 2 オペランドのバイトデータを加算して , 結果 を第 1 オペランドに格納します。 第 1 オペランドがアキュムレータ (A) のときは , AL の上位バイトには 00H が転送され ます。 ● アセンブラ形式 ADD A,#imm8 ADD A,dir ADD A,ear ADD A,eam ADD ear,A ADD eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド )+( 第 2 オペランド ) 【バイト加算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , キャリが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A A A ear eam 第 2 オペランド #imm8 dir ear eam A A バイト数 2 2 2 2+ 2 2+ サイクル数 1 2 1 2 1 3 FUJITSU MICROELECTRONICS LIMITED 87 第 8 章 命令細則 8.2 ADD (Add Byte Data of Destination and Source to Destination) ● 実行例 F2MC-16FX ファミリ ADD A,0E021H この例では , AL の下位バイトデータ (46H) に , E021H 番地のバイトデータ (ABH) を加 算します。 AH A AL ×× ×× A 0 AH 4 6 0 0 F 1 CCR × 1 0 0 0 T N Z V C T N Z V C B メモリ E021 実行前 88 ×× ×× CCR ××××× メモリ A A AL A B E021 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.3 ADDC (Add Byte Data of AL and AH with Carry to AL) F2MC-16FX ファミリ 8.3 ADDC (Add Byte Data of AL and AH with Carry to AL) AL の下位バイトデータと AH の下位バイトデータとキャリフラグ (C) を加算し , 結 果を AL に戻します。AL の上位バイトには 00H が転送されます。 ● アセンブラ形式 ADDC A ● オペレーション (AL) ← (AH) + (AL) + (C) 【キャリ付きバイト加算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , キャリが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 ADDC A この例では , AH の下位バイトデータ (05H) に , AL の下位バイトデータ (D4H) と C フラ グ ("0") を加算します。 AH A 0 5 AL 0 5 0 0 D 4 A 0 5 AL 0 5 0 0 D 9 CCR ×××× 0 CCR × 1 0 0 0 T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 89 第 8 章 命令細則 8.4 ADDC (Add Byte Data of Accumulator and Effective Address with Carry to Accumulator) 8.4 F2MC-16FX ファミリ ADDC (Add Byte Data of Accumulator and Effective Address with Carry to Accumulator) アキュムレータ (A) の最下位バイトデータと実効アドレスのバイトデータとキャリ フラグ (C) を加算し , 結果を A の最下位バイトに戻します。AL の上位バイトには 00H が転送されます。 ● アセンブラ形式 ADDC A,ear ADDC A,eam ● オペレーション (A) ← (A) + ( 第 2 オペランド ) + (C) 【キャリ付きバイト加算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , キャリが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 90 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 1 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.4 ADDC (Add Byte Data of Accumulator and Effective Address with Carry to Accumulator) F2MC-16FX ファミリ ● 実行例 ADDC A,E035H この例では , AL の下位バイトデータ (46H) に , E035H 番地のバイトデータ (D5H) と C フ ラグ ("1") を加算します。 AH A AL ×× ×× A 0 AH 4 6 ×× ×× 0 0 2 C CCR ××××1 CCR × 0 0 0 1 T N Z V C T N Z V C メモリ D 5 メモリ E035 実行前 CM44-00203-3 A AL D 5 E035 実行後 FUJITSU MICROELECTRONICS LIMITED 91 第 8 章 命令細則 8.5 ADDCW (Add Word Data of Accumulator and Effective Address with Carry to Accumulator) 8.5 F2MC-16FX ファミリ ADDCW (Add Word Data of Accumulator and Effective Address with Carry to Accumulator) アキュムレータ (A) の下位ワードデータ (AL), 第 2 オペランドの示すワードデータ , およびキャリフラグ (C) を加算し , 結果を A の下位ワードに戻します。 ● アセンブラ形式 ADDCW A,ear ADDCW A,eam ● オペレーション (A) ← (A) + ( 第 2 オペランド ) + (C) 【キャリ付きワード加算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , キャリが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 92 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 1 2 奇数アドレス補正 0 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.5 ADDCW (Add Word Data of Accumulator and Effective Address with Carry to Accumulator) F2MC-16FX ファミリ ● 実行例 ADDCW A,@RW0+ この例では , AL のワードデータ (2068H) に , 第 2 オペランド (@RW0+) で示されるアド レス (E024H) のワードデータ (8952H) と C フラグ ("1") を加算します。 AH A RWO AL AH ×× ×× 2 0 E0 CCR ××××1 24 6 8 A RWO AL ×× ×× A 9 E 0 CCR × 1 0 0 0 2 6 T N Z V C メモリ T N Z V C メモリ 8 9 E025 8 9 E025 5 2 E024 5 2 E024 実行前 CM44-00203-3 B B 実行後 FUJITSU MICROELECTRONICS LIMITED 93 第 8 章 命令細則 8.6 ADDDC (Add Decimal Data of AL and AH with Carry to AL) 8.6 F2MC-16FX ファミリ ADDDC (Add Decimal Data of AL and AH with Carry to AL) AL の下位バイトデータと AH の下位バイトデータとキャリフラグ (C) を 10 進加算 し , 結果を AL の下位バイトに戻します。AL の上位バイトには 00H が転送されま す。 ● アセンブラ形式 ADDDC A ● オペレーション (AL) ← (AH) + (AL) + (C) 【キャリ付き 10 進演算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −不定 C − 10 進演算の結果 , キャリが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :2 ● 実行例 ADDDC A この例では , AL の下位バイトデータ (62H) に , AH の下位バイトデータ (58H) と C フラ グ ("0") を 10 進加算します。 AH A × × AL 6 2 × × 5 8 A × × AL 6 2 0 0 2 0 CCR ×××× 0 CCR × 0 0 × 1 T N Z V C T N Z V C 実行前 94 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.7 ADDL (Add Long Word Data of Destination and Source to Destination) F2MC-16FX ファミリ 8.7 ADDL (Add Long Word Data of Destination and Source to Destination) 第 1 オペランドに記述された演算項のロングワードデータと第 2 オペランドに記述 された被演算項のロングワードデータを加算して , 結果を第 1 オペランドに戻しま す。 ● アセンブラ形式 ADDL A,#imm32 ADDL A,ear ADDL A,eam ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド )+( 第 2 オペランド ) 【ロングワード加算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , キャリが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A A 第 2 オペランド #imm32 ear eam バイト数 5 2 2+ サイクル数 2 2 3 奇数アドレス補正 0 0 1 FUJITSU MICROELECTRONICS LIMITED 95 第 8 章 命令細則 8.7 ADDL (Add Long Word Data of Destination and Source to Destination) ● 実行例 F2MC-16FX ファミリ ADDL A,0E077H この例では , アキュムレータ (A) のロングワードデータ (85B7A073H) に , E077H 番地の ロングワードデータ (357F41ABH) を加算します。 AH A 8 5 AL B 7 A 0 AH 7 3 A B B AL 3 6 E 2 1 E CCR ××××× CCR × 1 0 0 0 T N Z V C メモリ メモリ 3 5 E07A 3 5 E07A 7 F E079 7 F E079 4 1 E078 4 1 E078 A B E077 A B E077 実行前 96 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.8 ADDSP (Add Word Data of Stack Pointer and Immediate Data to Stack Pointer) F2MC-16FX ファミリ 8.8 ADDSP (Add Word Data of Stack Pointer and Immediate Data to Stack Pointer) SP( スタックポインタ ) のワードデータと 8 ビットの即値データを符号拡張した値 , または 16 ビットの即値データを加算し , 結果を SP に戻します。加算結果が 16 ビッ トを超えると桁落ちが発生します。 アンダフロー ( 桁落ち ) が発生したかどうかは , CCR で確認することはできません。 ● アセンブラ形式 (1) ADDSP #imm8 (2) ADDSP #imm16 ● オペレーション (1) (SP) ← (SP) + 符号拡張した imm8 【ワード加算】 (2) (SP) ← (SP) + imm16 【ワード加算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 オペランド CM44-00203-3 #imm8 #imm16 バイト数 2 3 サイクル数 1 1 FUJITSU MICROELECTRONICS LIMITED 97 第 8 章 命令細則 8.8 ADDSP (Add Word Data of Stack Pointer and Immediate Data to Stack Pointer) ● 実行例 F2MC-16FX ファミリ ADDSP #89BAH この例では , SP に 16 ビット即値データ (89BAH) を符号付で加算します。加算結果が 16 ビットを超えるためアンダフローが発生します。 SP E 2 A 4 CCR × 0 0 0 0 T N Z V C 実行前 98 SP 6 C CCR ×0 0 0 0 5 E T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.9 ADDW (Add Word Data of AL and AH to AL) F2MC-16FX ファミリ 8.9 ADDW (Add Word Data of AL and AH to AL) AH と AL のワードデータを加算して , 結果を AL に戻します。 ● アセンブラ形式 ADDW A ● オペレーション (AL) ← (AH) + (AL) 【ワード加算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , キャリが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 ADDW A この例では , AL のワードデータ (7F23H) に , AH のワードデータ (83A2H) を加算しま す。オーバフローが発生するため C フラグをセットします。 AH A 8 3 AL A 2 7 F AH 2 3 A 8 3 AL A 2 CCR ××××× 0 2 CCR × 0 0 0 1 T N Z V C 実行前 CM44-00203-3 C 5 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 99 第 8 章 命令細則 8.10 ADDW (Add Word Data of Destination and Source to Destination) 8.10 F2MC-16FX ファミリ ADDW (Add Word Data of Destination and Source to Destination) 第 1 オペランドに記述された演算項のワードデータと第 2 オペランドに記述された 被演算項のワードデータを加算して , 結果を第 1 オペランドに戻します。 ● アセンブラ形式 ADDW A,#imm16 ADDW A,ear ADDW A,eam ADDW ear,A ADDW eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド )+( 第 2 オペランド ) 【ワード加算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , キャリが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 100 第 1 オペランド A A A ear eam 第 2 オペランド #imm16 ear eam A A バイト数 3 2 2+ 2 2+ サイクル数 1 1 2 1 3 奇数アドレス補正 0 0 1 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.10 ADDW (Add Word Data of Destination and Source to Destination) F2MC-16FX ファミリ ● 実行例 ADDW @RW0+1,A この例では , 第 1 オペランド (@RW0+1) で示されるアドレス (E2A5H) のワードデータ (315DH) に , AL のワードデータ (CD04H) を加算します。 AH A RWO AL AH ×× ×× C D E2 CCR ××××× A4 0 4 A RWO AL ×× ×× C D E 2 CCR × 1 0 0 0 A 4 T N Z V C メモリ T N Z V C メモリ 3 1 E2A6 F E E2A6 5 D E2A5 6 1 E2A5 ×× E2A4 ×× E2A4 実行前 CM44-00203-3 0 4 実行後 FUJITSU MICROELECTRONICS LIMITED 101 第 8 章 命令細則 8.11 AND (And Byte Data of Destination and Source to Destination) 8.11 F2MC-16FX ファミリ AND (And Byte Data of Destination and Source to Destination) 第 1 オペランドに記述された演算項のバイトデータと第 2 オペランドに記述された 被演算項のバイトデータで論理積演算を行い , 結果を第 1 オペランドに戻します。 ● アセンブラ形式 AND A,#imm8 AND A,ear AND A,eam AND ear,A AND eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド )and( 第 2 オペランド ) 【バイト論理積】 第 1 オペランドのバイトデータと第 2 オペランドのバイトデータをビットごとに論理 積をとり , 第 1 オペランドに戻します。 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 102 第 1 オペランド A A A ear eam 第 2 オペランド #imm8 ear eam A A バイト数 2 2 2+ 2 2+ サイクル数 1 1 2 1 3 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.11 AND (And Byte Data of Destination and Source to Destination) F2MC-16FX ファミリ ● 実行例 AND 0052H,A この例では , 0052H 番地のバイトデータ (FAH) に , AL の下位バイトデータ (55H) を論理 積演算 (AND) します。 AH A AL ×× ×× 0 0 AH 5 5 A AL ×× ×× CCR ××××× 0 0 CCR × 0 0 0 × T N Z V C メモリ F A CM44-00203-3 T N Z V C メモリ 0052 実行前 5 5 5 0 0052 実行後 FUJITSU MICROELECTRONICS LIMITED 103 第 8 章 命令細則 8.12 AND (And Byte Data of Immediate Data and Condition Code Register) 8.12 F2MC-16FX ファミリ AND (And Byte Data of Immediate Data and Condition Code Register) コンディションコードレジスタ (CCR) のバイトデータと 8 ビットの即値データで論 理積演算を行い , 結果を CCR に戻します。 バイトデータの最上位ビットの論理積演算は行われません。 ● アセンブラ形式 AND CCR, #imm8 ● オペレーション (CCR) ← (CCR) and imm8 【バイト論理積】 ● CCR I S T N Z V C * * * * * * * I −演算結果の bit6 が入ります。 S −演算結果の bit5 が入ります。 T −演算結果の bit4 が入ります。 N −演算結果の bit3 が入ります。 Z −演算結果の bit2 が入ります。 V −演算結果の bit1 が入ります。 C −演算結果の bit0 が入ります。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 104 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.12 AND (And Byte Data of Immediate Data and Condition Code Register) F2MC-16FX ファミリ ● 実行例 AND CCR,#57H この例では , CCR の値 (0110101B) に , 即値データ (57H) を論理積演算 (AND) します。 AH A CCR AL ×× ×× AH ×× ×× A I S T N Z V C 0 1 1 0 1 0 1 CCR AL ×× ×× ×× ×× I S T N Z V C 0 0 1 0 1 0 1 ILM2 ILM1 ILM0 ILM × × MSB RP × 実行前 CM44-00203-3 × LSB × × × ILM2 ILM1 ILM0 × ILM × × MSB RP × × LSB × × × × 実行後 FUJITSU MICROELECTRONICS LIMITED 105 第 8 章 命令細則 8.13 ANDL (And Long Word Data of Destination and Source to Destination) 8.13 F2MC-16FX ファミリ ANDL (And Long Word Data of Destination and Source to Destination) アキュムレータ (A) と第 2 オペランドのロングワードデータでビットごとに論理積 演算を行い , 結果を A に戻します。 ● アセンブラ形式 ANDL A,ear ANDL A,eam ● オペレーション (A) ← (A) and ( 第 2 オペランド ) 【ロングワード論理積】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 106 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 2 3 奇数アドレス補正 0 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.13 ANDL (And Long Word Data of Destination and Source to Destination) F2MC-16FX ファミリ ● 実行例 ANDL A,0FFF0H この例では , アキュムレータ (A) のロングワードデータ (8252FEACH) に , FFF0H 番地の ロングワードデータ (FF55AA00H) を論理積演算 (AND) します。 AH A 8 2 AL 5 2 F E AH A C A 8 2 AL 5 0 A A 0 0 CCR ××××× CCR × 1 0 0 × T N Z V C メモリ メモリ F F FFF3 F F FFF3 5 5 FFF2 5 5 FFF2 A A FFF1 A A FFF1 0 0 FFF0 0 0 FFF0 実行前 CM44-00203-3 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 107 第 8 章 命令細則 8.14 ANDW (And Word Data of AH and AL to AL) F2MC-16FX ファミリ ANDW (And Word Data of AH and AL to AL) 8.14 AH と AL のワードデータで論理積演算を行い , 結果を AL に戻します。 ● アセンブラ形式 ANDW A ● オペレーション (AL) ← (AH) and (AL) 【ワード論理積】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 ANDW A この例では , AL のワードデータ (AB98H) に , AH のワードデータ (0426H) を論理積演算 (AND) します。 AH A 0 4 AL 2 6 A B AH 9 8 A 0 4 AL 2 6 0 0 0 0 CCR ××××× CCR × 0 1 0 × T N Z V C 実行前 108 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.15 ANDW (And Word Data of Destination and Source to Destination) F2MC-16FX ファミリ 8.15 ANDW (And Word Data of Destination and Source to Destination) 第 1 オペランドに記述された演算項のワードデータと第 2 オペランドに記述された 被演算項のワードデータで論理積演算を行い , 結果を第 1 オペランドに戻します。 ● アセンブラ形式 ANDW A,#imm16 ANDW A,ear ANDW A,eam ANDW ear,A ANDW eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド )and ( 第 2 オペランド ) 【ワード論理積】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A A ear eam 第 2 オペランド #imm16 ear eam A A バイト数 3 2 2+ 2 2+ サイクル数 1 1 2 1 3 奇数アドレス補正 0 0 1 0 2 FUJITSU MICROELECTRONICS LIMITED 109 第 8 章 命令細則 8.15 ANDW (And Word Data of Destination and Source to Destination) ● 実行例 F2MC-16FX ファミリ ANDW 0E001H,A この例では , 0E001H 番地のワードデータ (8342H) に , AL のワードデータ (5963H) を論 理積演算 (AND) します。 AH A AL ×× ×× 5 9 AH 6 3 ×× ×× 5 9 6 3 CCR ××××× CCR × 0 0 0 × T N Z V C T N Z V C メモリ メモリ 8 3 E002 0 1 E002 4 2 E001 4 2 E001 実行前 110 A AL 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.16 ASR (Arithmetic Shift Byte Data of Accumulator to Right) F2MC-16FX ファミリ 8.16 ASR (Arithmetic Shift Byte Data of Accumulator to Right) アキュムレータ (A) の最下位バイトデータを第 2 オペランドで示されるビット数だ け算術右シフトします。A の最下位バイトデータの最上位ビットは変化しません。 最下位ビットからシフトアウトされたビットはコンディションコードレジスタ (CCR) のキャリフラグ (C) に入ります。 ● アセンブラ形式 ASR A,R0 ● オペレーション MSB LSB C T AL 1 ● CCR I S T N Z V C − − * * * − * I, S −変化しません。 T − キャリよりシフトアウトされたデータに 1 つ以上 "1" であるビットがあればセット , それ以外はクリアされます。また , シフト量がゼロのときもクリアされます。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C −A の LSB から最後にシフトアウトしたビット値が入ります。シフト量がゼロのと きはクリアされます。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 111 第 8 章 命令細則 8.16 ASR (Arithmetic Shift Byte Data of Accumulator to Right) F2MC-16FX ファミリ ● 実行例 ASR A,R0 この例では , AL の下位バイトデータ (96H) を , R0 が示すビット数 (3 ビット ) 算術右シ フトします。 AH A AL ×× ×× RO 0 3 ×× AH 9 6 CCR ××××× A AL ×× ×× RO 0 3 T N Z V C 実行前 112 ×× F 2 CCR 1 1 0 × 1 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 8.17 第 8 章 命令細則 8.17 ASRL (Arithmetic Shift Long Word Data of Accumulator to Right) ASRL (Arithmetic Shift Long Word Data of Accumulator to Right) アキュムレータ (A) のロングワードデータを第 2 オペランドで示されるビット数だ け算術右シフトします。 A の最上位ビットは変化しません。最下位ビットからシフトアウトされたビットはコ ンディションコードレジスタ (CCR) のキャリフラグ (C) に入ります。 ● アセンブラ形式 ASRL A,R0 ● オペレーション MSB LSB C T 1 A ● CCR I S T N Z V C − − * * * − * I, S −変化しません。 T − キャリよりシフトアウトされたデータに1つ以上"1"であるビットがあればセット, それ以外はクリアされます。また , シフト量がゼロのときもクリアされます。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C −A の LSB から最後にシフトアウトしたビット値が入ります。シフト量がゼロのと きはクリアされます。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 113 第 8 章 命令細則 8.17 ASRL (Arithmetic Shift Long Word Data of Accumulator to Right) ● 実行例 F2MC-16FX ファミリ ASRL A,R0 この例では , アキュムレータ (A) のロングワードデータ (12345678H) を , R0 が示すビッ ト数 (2 ビット ) 算術右シフトします。 AH A 1 2 AL 5 6 3 4 RO AH 7 8 A 0 4 AL RO 0 2 CCR ×××× 0 CCR 114 9 E 0 2 1 0 0 × 0 T N Z V C T N Z V C 実行前 1 5 8 D 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 8.18 第 8 章 命令細則 8.18 ASRW (Arithmetic Shift Word Data of Accumulator to Right) ASRW (Arithmetic Shift Word Data of Accumulator to Right) アキュムレータ (A) の下位ワードデータを 1 ビットだけ算術右シフトします。 A の下位ワードデータの最上位ビットは変化しません。最下位ビットからシフトアウ トされたビットはキャリフラグ (C) に入ります。 ● アセンブラ形式 ASRW A ● オペレーション MSB LSB C T AL 1 ● CCR I S T N Z V C − − * * * − * I, S −変化しません。 T − 旧キャリの値が "1" か旧 T の値が "1" であればセット , それ以外であればクリアさ れます。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C − A の LSB からシフトアウトしたビット値が入ります。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 115 第 8 章 命令細則 8.18 ASRW (Arithmetic Shift Word Data of Accumulator to Right) F2MC-16FX ファミリ ● 実行例 ASRW A この例では , AL のワードデータ (A096H) を , 1 ビット算術右シフトします。 AH A AL × × × × A 0 9 6 A AL × × × × D 0 4 B CCR 0 × × × 1 CCR 1 1 0 × 0 T N Z V C T N Z V C 実行前 116 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 8.19 第 8 章 命令細則 8.19 ASRW (Arithmetic Shift Word Data of Accumulator to Right) ASRW (Arithmetic Shift Word Data of Accumulator to Right) アキュムレータ (A) の下位ワードデータを第 2 オペランドで示されるビット数だけ 算術右シフトします。 A の下位ワードデータの最上位ビットは変化しません。最下位ビットからシフトアウ トされたビットはコンディションコードレジスタ (CCR) のキャリフラグ (C) に入りま す。 ● アセンブラ形式 ASRW A,R0 ● オペレーション MSB LSB C T AL 1 ● CCR I S T N Z V C − − * * * − * I, S −変化しません。 T − キャリよりシフトアウトされたデータに 1 つ以上 "1" であるビットがあればセット , それ以外はクリアされます。また , シフト量がゼロのときもクリアされます。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C −A の LSB から最後にシフトアウトしたビット値が入ります。シフト量がゼロのと きはクリアされます。 ● バイト数 , ステート数 バイト数 :2 ステート数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 117 第 8 章 命令細則 8.19 ASRW (Arithmetic Shift Word Data of Accumulator to Right) F2MC-16FX ファミリ ● 実行例 ASRW A.R0 この例では , AL のワードデータ (A096H) を , R0 が示すビット数 (2 ビット ) 算術右シフ トします。 AH A AL ×× ×× RO 0 2 AH A 0 9 6 CCR ×××× 0 A AL ×× ×× RO 0 2 T N Z V C 実行前 118 E 8 2 5 CCR 0 1 0 × 1 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.20 BBcc (Branch if Bit Condition satisfied) F2MC-16FX ファミリ 8.20 BBcc (Branch if Bit Condition satisfied) 第 1 オペランドで示されるビットデータが条件を満たしたとき分岐します。 分岐先アドレスは BBcc 命令の次の命令のアドレスに , 符号拡張された第 2 オペランド のデータをワード加算した番地となります。 ● アセンブラ形式 BBC addr16:bp, rel BBC dir:bp, rel BBC io:bp, rel BBS addr16:bp, rel BBS dir:bp, rel BBS io:bp, rel ● オペレーション 条件成立時 : (PC) ← (PC) + < バイト数 > + rel 【ワード加算】 条件不成立時 : (PC) ← (PC) + < バイト数 > 【ワード加算】 ● CCR I S T N Z V C − − − − * − − I, S, T, N −変化しません。 Z −ビットデータが "0" ならばセット , "1" ならばクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 BBcc BBC BBS 条件 ビットデータ =0 ビットデータ =1 第 1 オペランド addr16:bp dir:bp io:bp addr16:bp dir:bp io:bp バイト数 5 4 4 5 4 4 サイクル数 5 5 5 5 5 5 FUJITSU MICROELECTRONICS LIMITED 119 第 8 章 命令細則 8.20 BBcc (Branch if Bit Condition satisfied) F2MC-16FX ファミリ ● 実行例 BBC 1234H:7,12H この例では , 1234H 番地のバイトデータ (7FH) の , bit7 が "0" のため分岐します ( 条件成 立時 )。 PC E 1 0 0 E 1 1 7 メモリ メモリ × × × × 7 F 120 +(12+バイト数5)→ PC 1234 :bit7=0 7 F × × × × 実行前 実行後 FUJITSU MICROELECTRONICS LIMITED 1234 CM44-00203-3 第 8 章 命令細則 8.21 Bcc (Branch relative if Condition satisfied) F2MC-16FX ファミリ 8.21 Bcc (Branch relative if Condition satisfied) 命令ごとに決められた条件が成立したときに分岐します。 分岐先は , Bcc 命令の次の命令のアドレスに , 符号拡張されたオペランドのデータを ワード加算した番地となります。 ● アセンブラ形式 BZ/BEQ rel BNZ/BNE rel BC/BLO rel BNC/BHS rel BN rel BP BV rel BNV rel BT rel BNT rel rel BLT rel BGE rel BLE rel BGT rel BLS rel BHI rel BRA rel ● オペレーション 条件成立時 : (PC) ← (PC) + 2 + rel 【ワード加算】 条件不成立時 : (PC) ← (PC) + 2 【ワード加算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :2 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 121 第 8 章 命令細則 8.21 Bcc (Branch relative if Condition satisfied) F2MC-16FX ファミリ ● 分岐命令と分岐条件 Bcc BZ/ BNZ/ BC/ BNC/ BN BEQ BNE BLO BHS BP BV BNV BT BNT BRA 条件 Z=1 N=0 V=1 V=0 T=1 T=0 常に成立 Z=0 C=1 C=0 N=1 Bcc BLT BGE BLE BGT BLS BHI 条件 V xor N=1 V xor N=0 (V xor N) or Z=1 (V xor N) or Z =0 C or Z=1 C or Z=0 ● 実行例 BHI 50H この例では , コンディションコードレジスタ (CCR) の C フラグ , Z フラグが "0" のため 分岐します ( 条件成立時 )。 PC CCR 122 E 2 0 0 0 1 0 1 0 +(2+50)→ PC C or Z=0,then CCR E 2 5 2 0 1 0 1 0 T N Z V C T N Z V C 実行前 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.22 CALL (Call Subrourtine) F2MC-16FX ファミリ 8.22 CALL (Call Subrourtine) オペランドが示すアドレスへ分岐します。分岐先サブルーチン中の RET 命令の実行 により , CALL 命令の次の命令に戻ります。 ● アセンブラ形式 CALL @ear CALL @eam CALL addr16 ● オペレーション (SP) ← (SP) − 2 【ワード減算】, ((SP)) ← (PC) + < バイト数 > (PC) ← < オペランド > ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 CM44-00203-3 オペランド @ear @eam addr16 バイト数 2 2+ 3 サイクル数 3 5 3 奇数アドレス補正 1 1+1 1 FUJITSU MICROELECTRONICS LIMITED 123 第 8 章 命令細則 8.22 CALL (Call Subrourtine) F2MC-16FX ファミリ ● 実行例 CALL @@RW0 この例では , SP で示されるスタックに次の命令のアドレス (E55AH) をプッシュしてか ら , オペランド (@@RW0) で示されるアドレス (F340H) の , ワードデータの示すアドレ ス (DC08H) に分岐します。 PC E5 58 RWO F3 40 SP 01 2 4 PC D C 0 8 RWO F 3 4 0 メモリ SP→ 0 1 2 2 メモリ D C F341 D C F341 0 8 F340 0 8 F340 ×× 0124 ×× 0124 ×× 0123 E 5 0123 ×× 0122 5 A 0122 実行前 124 SP SP→ 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.23 CALLP (Call physical Address) F2MC-16FX ファミリ 8.23 CALLP (Call physical Address) オペランドが示す物理アドレスへ分岐します。分岐先サブルーチン中の RETP 命令 の実行により , CALLP 命令の次の命令に戻ります。 プログラムカウンタバンクレジスタ (PCB) には , オペランドのデータの最上位バイト が設定されます。 ● アセンブラ形式 CALLP @ear CALLP @eam CALLP addr24 ● オペレーション (SP) ← (SP) − 2 【ワード減算】, ((SP)) ← (PCB) 【ゼロ拡張】 (SP) ← (SP) − 2 【ワード減算】, ((SP)) ← (PC)+< バイト数 > (PCB) ← 分岐先物理アドレス ( 上位バイト ) (PC) ← 分岐先物理アドレス ( 下位ワード ) ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 CM44-00203-3 オペランド @ear @eam addr24 バイト数 2 2+ 4 サイクル数 5 7 4 奇数アドレス補正 2 2+1 2 FUJITSU MICROELECTRONICS LIMITED 125 第 8 章 命令細則 8.23 CALLP (Call physical Address) F2MC-16FX ファミリ ● 実行例 CALLP 080711H この例では , USB と SP で示されるスタックに PCB と次の命令のアドレス (4349H) を プッシュしてから , 080711H 番地に分岐します。オペランドの最上位バイト (08H) を PCB に設定します。 PC 43 45 PCB AD SP F9 0 0 USB 1 5 PC 0 7 1 1 PCB 0 8 F C USB 1 5 CCR × 0 × × × × × I S T N Z V C I S T N Z V C メモリ ×× 15F900 ×× 15F900 ×× 15F8FF 0 0 15F8FF ×× 15F8FE A D 15F8FE ×× 15F8FD 4 3 15F8FD ×× 15F8FC 4 9 15F8FC 実行前 126 F 8 CCR × 0 × × × × × メモリ SP→ SP SP→ 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.24 CALLV (Call Vectored Subroutine) F2MC-16FX ファミリ 8.24 CALLV (Call Vectored Subroutine) オペランドで指定した割込みベクタが示すアドレスへ分岐します。分岐先サブルー チン中の RET 命令の実行により , CALLV 命令の次の命令に戻ります。 RET 命令は通常の CALL 命令の場合と同じものが使用できます。 ● アセンブラ形式 CALLV #vct4 ● オペレーション (SP) ← (SP) − 2 【ワード減算】 ((SP)) ← (PC) + 1 (PC) ← ベクタアドレス <注意事項> プログラムカウンタバンクレジスタ (PCB) が割込みベクタテーブルレジスタ (TBR) の上 位 8 ビット (TBR:TB[23:16]) と同じで , TBR の下位 6 ビット (TBR:TB[15:10]) が 111111B のときに , "CALLV #vct4" 命令と "INT #vct8" 命令 (#0 ∼ #7) のベクタ領域が重なります ( 表 8.24-1 参照 )。 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :5 奇数アドレス補正 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 127 第 8 章 命令細則 8.24 CALLV (Call Vectored Subroutine) F2MC-16FX ファミリ ● 実行例 CALLV #15 この例では , SP で示されるスタックに次の命令のアドレス (F4A8H) をプッシュしてか ら , #15 の割込みベクタが示すアドレスへ分岐します。 PC F4 A7 SP 01 0 2 PC E 1 メモリ SP→ 5 4 SP 0 1 0 0 メモリ E 1 FFE1 E 1 FFE1 5 4 FFE0 5 4 FFE0 ×× 0102 ×× 0102 ×× 0101 F 4 0101 ×× 0100 A 8 0100 SP→ 実行前 実行後 表 8.24-1 CALLV ベクタ一覧表 命令 ベクタアドレス L * ベクタアドレス H * CALLV #0 XXFFFEH XXFFFFH CALLV #1 XXFFFCH XXFFFDH CALLV #2 XXFFFAH XXFFFBH CALLV #3 XXFFF8H XXFFF9H CALLV #4 XXFFF6H XXFFF7H CALLV #5 XXFFF4H XXFFF5H CALLV #6 XXFFF2H XXFFF3H CALLV #7 XXFFF0H XXFFF1H CALLV #8 XXFFEEH XXFFEFH CALLV #9 XXFFECH XXFFEDH CALLV #10 XXFFEAH XXFFEBH CALLV #11 XXFFE8H XXFFE9H CALLV #12 XXFFE6H XXFFE7H CALLV #13 XXFFE4H XXFFE5H CALLV #14 XXFFE2H XXFFE3H CALLV #15 XXFFE0H XXFFE1H *:XX はプログラムカウンタバンクレジスタ (PCB) の値に置き換えられます。 128 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.25 CBNE (Compare Byte Data and Branch if not equal) F2MC-16FX ファミリ 8.25 CBNE (Compare Byte Data and Branch if not equal) 第 1 オペランドと第 2 オペランド (8 ビット即値データ ) のバイト比較演算を行い , 第 1 オペランドと第 2 オペランドが等しくないとき分岐します。第 1 オペランドと 第 2 オペランドが等しいときは分岐しません。 分岐先アドレスは , CBNE 命令の次の命令のアドレスに , 第 3 オペランドを符号拡張し たワード値を加算したものとなります。 第 1 オペランドが @PC+disp16 のときのオペランドアドレスは ,「CBNE 命令の機械命 令が格納されているアドレス +4+disp16」となります。 「CBNE 命令の次の命令の機械 命令が格納されているアドレス +4+disp16」ではありませんので注意してください。 ● アセンブラ形式 CBNE A, #imm8,rel CBNE ear, #imm8,rel CBNE eam, #imm8,rel ● オペレーション ( 第 1 オペランド ) ≠ imm8 【バイト比較】: (PC) ← (PC) + < バイト数 > + rel ( 第 1 オペランド ) = imm8 【バイト比較】: (PC) ← (PC) + < バイト数 > ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −比較演算の結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z − ( 第 1 オペランド )=imm8 ならばセット , それ以外はクリアされます。 V −比較演算の結果 , オーバフローが生じればセット , それ以外はクリアされます。 C −比較演算の結果 , ボローが生じればセット , それ以外はクリアされます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 129 第 8 章 命令細則 8.25 CBNE (Compare Byte Data and Branch if not equal) F2MC-16FX ファミリ ● バイト数 , サイクル数 第 1 オペランド A ear eam 第 2 オペランド #imm8 #imm8 #imm8 第 3 オペランド rel rel rel バイト数 3 4 4+ サイクル数 5 4 5 ● 実行例 CBNE A,#0F4H,55H この例では , AL の下位バイトデータ (F3H) と , 8 ビット即値データ (F4H) を比較演算し ます。第 1 オペランドと第 2 オペランドが等しくないため分岐します。 AH A AL ×× ×× 0 0 AH F 3 A AL × × × × 0 0 F 3 PC E 3 6 8 F3H=F4H PC E 3 1 0 +(55H+バイト数3) → CCR ××××× T N Z V C 実行前 130 FUJITSU MICROELECTRONICS LIMITED CCR ×1 0 0 1 T N Z V C 実行後 CM44-00203-3 第 8 章 命令細則 8.26 CLRB (Clear Bit) F2MC-16FX ファミリ 8.26 CLRB (Clear Bit) オペランドで示されるメモリの bp で表されるビット位置の内容を "0" にします。 ● アセンブラ形式 CLRB dir:bp CLRB io:bp CLRB addr16:bp ● オペレーション ( オペランド )b ← 0 【ビット転送】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 オペランド dir:bp io:bp addr16:bp バイト数 3 3 4 サイクル数 3 3 3 ● 実行例 CLRB 0AA55H:3 この例では , AA55H 番地のデータ (FFH) の bit3 を "0" にします。 メモリ メモリ ×× ×× F F CM44-00203-3 AA55 F 7 ×× ×× 実行前 実行後 AA55 FUJITSU MICROELECTRONICS LIMITED 131 第 8 章 命令細則 8.27 CMP (Compare Byte Data of Destination and Source) 8.27 F2MC-16FX ファミリ CMP (Compare Byte Data of Destination and Source) 第 1 オペランドのバイトデータと第 2 オペランドのバイトデータで比較演算を行い , フラグ変化をコンディションコードレジスタ (CCR) にセットします。 第 1 オペランドおよび第 2 オペランドのデータは変化しません。 オペランドとしてアキュムレータ(A)だけを指定した場合は, AHとALが比較されます。 ● アセンブラ形式 1) CMP A,#imm8 CMP A,ear 2) CMP A,eam CMP A ● オペレーション 1) ( 第 1 オペランド ) − ( 第 2 オペランド ) 【バイト比較】 2) (AH) − (AL) 【バイト比較】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 132 第 1 オペランド A A A A 第 2 オペランド #imm8 ear eam ― バイト数 2 2 2+ 1 サイクル数 1 1 2 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.27 CMP (Compare Byte Data of Destination and Source) F2MC-16FX ファミリ ● 実行例 CMP A,#7FH この例では , AL の下位バイトデータ (22H) と 8 ビット即値データ (7FH) を比較演算し ます。 AH A AL ×× ×× A 0 A AL ×× ×× A 0 2 2 CCR ××××× CCR × 1 0 0 1 T N Z V C T N Z V C 実行前 CM44-00203-3 AH 2 2 実行後 FUJITSU MICROELECTRONICS LIMITED 133 第 8 章 命令細則 8.28 CMPL (Compare Long Word Data of Destination and Source) 8.28 F2MC-16FX ファミリ CMPL (Compare Long Word Data of Destination and Source) 第 1 オペランドのロングワードデータと第 2 オペランドのロングワードデータを比 較演算し , 結果をコンディションコードレジスタ (CCR) にセットします。 第 1 オペランドおよび第 2 オペランドのデータは変化しません。 ● アセンブラ形式 CMPL A,#imm32 CMPL A,ear CMPL A,eam ● オペレーション ( 第 1 オペランド ) − ( 第 2 オペランド ) 【ロングワード比較】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 134 第 1 オペランド A A A 第 2 オペランド #imm32 ear eam バイト数 5 2 2+ サイクル数 2 2 3 奇数アドレス補正 0 0 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.28 CMPL (Compare Long Word Data of Destination and Source) F2MC-16FX ファミリ ● 実行例 CMPL A,#12345678H この例では , アキュムレータ (A) のロングワードデータ (12345678H) と 32 ビット即値 データ (12345678H) を比較演算します。 AH A 1 2 AL 3 4 5 6 7 8 A 1 2 AL 3 4 5 6 7 8 CCR ××××× CCR × 0 1 0 0 T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 135 第 8 章 命令細則 8.29 CMPW (Compare Word Data of Destination and Source) 8.29 F2MC-16FX ファミリ CMPW (Compare Word Data of Destination and Source) 第 1 オペランドのワードデータと第 2 オペランドのワードデータを比較演算し , 結 果をコンディションコードレジスタ (CCR) にセットします。 第 1 オペランドおよび第 2 オペランドのデータは変化しません。オペランドとして A だけを指定した場合は , AH と AL が比較演算されます。 ● アセンブラ形式 1) CMPW A,#imm16 CMPW A,ear 2) CMPW A,eam CMPW A ● オペレーション 1) ( 第 1 オペランド ) − ( 第 2 オペランド ) 【ワード比較】 2) (AH) − (AL) 【ワード比較】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果 , ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 136 第 1 オペランド A A A A 第 2 オペランド #imm16 ear eam − バイト数 3 2 2+ 1 サイクル数 1 1 2 1 奇数アドレス補正 0 0 1 0 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.29 CMPW (Compare Word Data of Destination and Source) F2MC-16FX ファミリ ● 実行例 CMPW A,RW0 この例では , AL のワードデータ (ABCDH) と RW0 のワードデータ (ABCCH) を比較演 算します。 A AH AL × × ×× A B C D RWO A AL ×× ×× A B C C RWO A B C D A B C C CCR ××××× CCR × 0 0 0 0 T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 137 第 8 章 命令細則 8.30 CWBNE (Compare Word Data and Branch if not equal) 8.30 F2MC-16FX ファミリ CWBNE (Compare Word Data and Branch if not equal) 第 1 オペランドと第 2 オペランド (16 ビット即値データ ) のワード比較演算を行い , 第 1 オペランドと第 2 オペランドが等しくないとき分岐します。第 1 オペランドと 第 2 オペランドが等しいときは分岐しません。 分岐先アドレスは , CWBNE 命令の次の命令のアドレスに , 第 3 オペランドを符号拡張 したワードデータを加算したものとなります。 第 1 オペランドが @PC+disp16 のときのオペランドアドレスは「CWBNE 命令の機械命 令が格納されているアドレス +4+disp16」となります。「CWBNE 命令の次の命令の機 械命令が格納されているアドレス +disp16」ではありません。 ● アセンブラ形式 CWBNE A,#imm16,rel CWBNE ear,#imm16,rel CWBNE eam,#imm16,rel ● オペレーション ( 第 1 オペランド ) ≠ imm16 【ワード比較】: (PC) ← (PC) + < バイト数 > + rel ( 第 1 オペランド ) = imm16 【ワード比較】: (PC) ← (PC) + < バイト数 > ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −比較演算の結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z − ( 第 1 オペランド ) = imm16 ならばセット , それ以外はクリアされます。 V −比較演算の結果 , オーバフローが生じればセット , それ以外はクリアされます。 C −比較演算の結果 , ボローが生じればセット , それ以外はクリアされます。 138 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.30 CWBNE (Compare Word Data and Branch if not equal) F2MC-16FX ファミリ ● バイト数 , サイクル数 A 第 1 オペランド ear eam #imm16 #imm16 #imm16 第 2 オペランド 第 3 オペランド rel rel rel バイト数 4 5 5+ サイクル数 5 5 6 奇数アドレス補正 0 0 1 ● 実行例 CWBNE A,#0E5E5H,30H この例では , AL のワードデータ (5EE5H) と 16 ビット即値データ (E5E5H) を比較演算し ます。第 1 オペランドと第 2 オペランドが等しくないため分岐します。 A AH AL × × ×× 5 E E 5 PC AH A AL ×× ×× D 8 5 6 PC CCR CCR ××××× CM44-00203-3 E 5 D 8 8 A ×0 0 0 0 T N Z V C T N Z V C 実行前 5 E 実行後 FUJITSU MICROELECTRONICS LIMITED 139 第 8 章 命令細則 8.31 DBNZ (Decrement Byte Data and Branch if not zero) 8.31 F2MC-16FX ファミリ DBNZ (Decrement Byte Data and Branch if not zero) 第 1 オペランドの内容から 1 をバイト減算し , この結果が 00H 以外のとき分岐しま す。減算結果が 00H のときは次の命令に制御が移ります。 分岐先アドレスは DBNZ 命令の次の命令のアドレスに , 第 2 オペランドのデータを符 号拡張したワードデータを加算したものとなります。 第 1 オペランドが @PC+disp16 のときのオペランドアドレスは「DBNZ 命令の機械命 令が格納されているアドレス +4+disp16」となります。「DBNZ 命令の次の命令の機械 命令が格納されているアドレス +disp16」ではありませんので注意してください。 ● アセンブラ形式 DBNZ ear,rel DBNZ eam,rel ● オペレーション (ea) ← (ea) − 1 【バイト減算】 if(ea) ≠ 0 : (PC) ← (PC) + < バイト数 > + rel if(ea) = 0 : (PC) ← (PC) + < バイト数 > ● CCR I S T N Z V C − − − * * * − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果がオーバフローが発生したときセット , それ以外はクリアされます。 C −変化しません。 ● バイト数 , サイクル数 140 第 1 オペランド ear eam 第 2 オペランド rel rel バイト数 3 3+ サイクル数 5 6 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.31 DBNZ (Decrement Byte Data and Branch if not zero) F2MC-16FX ファミリ ● 実行例 DBNZ @RW0+2,40H この例では , 第 1 オペランド (@RW0+2) で示されるアドレスの (0122H) バイトデータ (03H) から 1 を減算します。演算結果がゼロでないので分岐します。 PC E 3 5 8 PC E 3 9 C RWO 0 1 2 0 RWO 0 1 CCR RWO+2 → 0 0 0 0 1 T N Z V C T N Z V C メモリ メモリ 0 3 0122 ×× ×× 実行前 CM44-00203-3 CCR 0 0 1 0 1 2 0 RWO+2 → 2 0122 0121 ×× 0121 0120 ×× 0120 0 実行後 FUJITSU MICROELECTRONICS LIMITED 141 第 8 章 命令細則 8.32 DEC (Decrement Byte Data) 8.32 F2MC-16FX ファミリ DEC (Decrement Byte Data) オペランドのバイトデータから 1 を引き , 結果をオペランドへ戻します。 ● アセンブラ形式 DEC ear DEC eam ● オペレーション (ea) ← (ea) − 1 【バイト減算】 ● CCR I S T N Z V C − − − * * * − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが生じればセット , それ以外はクリアされます。 C −変化しません。 ● バイト数 , サイクル数 オペランド ear eam バイト数 2 2+ サイクル数 1 3 ● 実行例 DEC R1 この例では , R1 のバイトデータ (80H) から 1 を減算します。 R1 8 0 7 F CCR ××××× CCR × 0 0 1 × T N Z V C T N Z V C 実行前 142 R1 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.33 DECL (Decrement Long Word Data) F2MC-16FX ファミリ 8.33 DECL (Decrement Long Word Data) オペランドのロングワードデータから 1 を引き , 結果をオペランドへ戻します。 ● アセンブラ形式 DECL ear DECL eam ● オペレーション (ea) ← (ea) − 1 【ロングワード減算】 ● CCR I S T N Z V C − − − * * * − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが生じればセット , それ以外はクリアされます。 C −変化しません。 ● バイト数 , サイクル数 オペランド ear eam バイト数 2 2+ サイクル数 2 4 奇数アドレス補正 0 2) ● 実行例 DECL RL0 この例では , RL0 のロングワードデータ (00001000H) から 1 を減算します。 RLO 0 0 0 0 1 0 0 0 RLO 0 0 0 0 CCR ××××× 0 F CCR × 0 0 0 × T N Z V C 実行前 CM44-00203-3 F F T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 143 第 8 章 命令細則 8.34 DECW (Decrement Word Data) 8.34 F2MC-16FX ファミリ DECW (Decrement Word Data) オペランドのワードデータから 1 を引き , 結果をオペランドへ戻します。 ● アセンブラ形式 DECW ear DECW eam ● オペレーション (ea) ← (ea) − 1 【ワード減算】 ● CCR I S T N Z V C − − − * * * − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが生じればセット , それ以外はクリアされます。 C −変化しません。 ● バイト数 , サイクル数 144 オペランド ear eam バイト数 2 2+ サイクル数 1 3 奇数アドレス補正 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.34 DECW (Decrement Word Data) F2MC-16FX ファミリ ● 実行例 DECW @RW0+1000H この例では , オペランド (@RW0+1000H) で示されるアドレス (7780H) のワードデータ (0001H) から 1 を減算します。 RWO 6 7 8 0 RWO T N Z V C T N Z V C メモリ メモリ 0 0 7781 0 1 7780 × × 777F RWO+1000H → 実行前 CM44-00203-3 8 0 CCR × 0 1 0 × CCR ××××× RWO+1000H → 6 7 FUJITSU MICROELECTRONICS LIMITED 0 0 7781 0 0 7780 × × 777F 実行後 145 第 8 章 命令細則 8.35 DIV (Divide Word Data by Byte Data) 8.35 F2MC-16FX ファミリ DIV (Divide Word Data by Byte Data) 第 1 オペランドのワードデータを第 2 オペランドのバイトデータで割り , その結果 としてバイトデータの商を第 1 オペランドに , バイトデータの剰余を第 2 オペラン ドに収めます。符号付き数値として演算を行います。 オペランドに A だけを記述すると , AH のワードデータを AL のバイトデータで割り , その結果としてバイトデータの商を AL に , バイトデータの剰余を AH に収めます。符 号付き数値として演算を行います。 なお , ゼロでの割り算 ( ゼロディバイド ) が発生したときは , 第 2 オペランドまたは AL は命令実行直前の値を保持します。ただし , オーバフロー ( 桁あふれ ) が発生したとき は , AL の内容は不定です。 ● アセンブラ形式 1) DIV A,ear 2) DIV A DIV A,eam ● オペレーション 1) word(A) / byte(ea), 商 → byte(A), 剰余 → byte(ea) 2) word(AH) / byte(AL), 商 → byte(AL), 剰余 → byte(AH) ● CCR I S T N Z V C − − − − − * * I, S, T, N, Z −変化しません。 V−演算の結果オーバフローが発生するか除数がゼロのときセット, それ以外はクリア されます。 C −除数がゼロのときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 146 第 1 オペランド A A A 第 2 オペランド − ear eam バイト数 2 2 2+ サイクル数 オーバフロー :5 正常 :11 オーバフロー :5 正常 :11 オーバフロー :6 正常 :13 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.35 DIV (Divide Word Data by Byte Data) F2MC-16FX ファミリ ● 実行例 DIV A この例では , AH のワードデータ (1357H) を AL のバイトデータ (AAH) で符号付き除算 します。商を AL の下位バイトに , 剰余を AH の下位バイトに設定します。 A H A 1 3 A L 0 0 5 7 A A A 0 0 A L 0 0 3 1 C 7 CCR ××××× CCR ××× 0 0 T N Z V C T N Z V C 実行前 CM44-00203-3 A H 実行後 FUJITSU MICROELECTRONICS LIMITED 147 第 8 章 命令細則 8.36 DIVW (Divide Long Word Data by Word Data) 8.36 F2MC-16FX ファミリ DIVW (Divide Long Word Data by Word Data) 第 1 オペランド (A) のロングワードデータを第 2 オペランドのワードデータで割り , その結果としてワードデータの商を A に , ワードデータの剰余を第 2 オペランドに 格納します。符号付き数値として演算を行います。 なお , ゼロでの割り算 ( ゼロディバイド ) が発生したときは , 第 2 オペランドまたは AL は命令実行直前の値を保持します。ただし , オーバフロー ( 桁あふれ ) が発生したとき は , AL の内容は不定です。 ● アセンブラ形式 DIVW A,ear DIVW A, eam ● オペレーション Long word (A) / word(ea), 商 → word(A), 剰余 → word(ea) ● CCR I S T N Z V C − − − − − * * I, S, T, N, Z −変化しません。 V −演算の結果オーバフローが発生するか除数がゼロのときセット , それ以外はクリア されます。 C −除数がゼロのときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 148 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 オーバフロー :5 正常 :19 オーバフロー :6 正常 :21 奇数アドレス補正 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.36 DIVW (Divide Long Word Data by Word Data) F2MC-16FX ファミリ ● 実行例 DIVW A,7254H この例では , アキュムレータ (A) のロングワードデータ (00001357H) を , 7254H 番地の ワードデータ (00AAH) で符号付き除算します。商を AL に , 剰余を 7254H 番地に設定 します。 A H A 0 0 A L 0 0 1 3 A H 5 7 0 0 0 0 0 0 1 D CCR ××××× CCR ××× 0 0 T N Z V C T N Z V C メモリ メモリ 0 0 7255 0 0 7255 A A 7254 1 5 7254 実行前 CM44-00203-3 A A L 実行後 FUJITSU MICROELECTRONICS LIMITED 149 第 8 章 命令細則 8.37 DIVU (Divide unsigned Word Data by unsigned Byte Data) 8.37 F2MC-16FX ファミリ DIVU (Divide unsigned Word Data by unsigned Byte Data) 第 1 オペランドのワードデータを第 2 オペランドのバイトデータで割り , その結果 としてバイトデータの商を第 1 オペランドに , バイトデータの剰余を第 2 オペラン ドに収めます。符号なし数値として演算を行います。 オペランドに A だけを記述すると , AH のワードデータを AL のバイトデータで割り , そ の結果としてバイトデータの商を AL に , バイトデータの剰余を AH に収めます。符号 なし数値として演算を行います。 なお , オーバフロー ( 桁あふれ ) あるいはゼロでの割り算 ( ゼロディバイド ) が発生し たときは , 第 2 オペランドまたは AL は命令実行直前の値を保持します。 ● アセンブラ形式 1) DIVU A,ear 2) DIVU A DIVU A,eam ● オペレーション 1) word(A) / byte(ea), 商→ byte(A), 剰余→ byte(ea) 2) word(AH) / byte(AL), 商→ byte(AL), 剰余→ byte(AH) ● CCR I S T N Z V C − − − − − * * I, S, T, N, Z −変化しません。 V −演算の結果オーバフローが発生するか除数がゼロのときセット , それ以外はクリア されます。 C −除数がゼロのときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 150 第 1 オペランド A A A 第 2 オペランド − ear eam バイト数 1 2 2+ サイクル数 オーバフロー :4 正常 :9 オーバフロー :4 正常 : 9 オーバフロー :5 正常 :11 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.37 DIVU (Divide unsigned Word Data by unsigned Byte Data) F2MC-16FX ファミリ ● 実行例 DIVU A この例では , AH のワードデータ (1357H) を AL のバイトデータ (AAH) で符号なし除算 します。商を AL に , 剰余を AH に設定します。 AH A 1 3 AL 5 7 0 0 A A A 0 0 AL 1 5 0 0 1 D CCR ××××× CCR ××× 0 0 T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 151 第 8 章 命令細則 8.38 DIVUW (Divide unsigned Long Word Data by unsigned Word Data) 8.38 F2MC-16FX ファミリ DIVUW (Divide unsigned Long Word Data by unsigned Word Data) 第 1 オペランド (A) のロングワードデータを第 2 オペランドのワードデータで割り , その結果としてワードデータの商を A に , ワードデータの剰余を第 2 オペランドに 格納します。演算は , 符号なし数値として行われます。 オーバフロー ( 桁あふれ ) あるいはゼロでの割り算 ( ゼロディバイド ) が発生したとき は , 第 2 オペランドまたは AL は命令実行直前の値を保持します。 ● アセンブラ形式 DIVUW A,ear DIVUW A,eam ● オペレーション long word(A) / word(ea), 商 → word(A), 剰余 → word(ea) ● CCR I S T N Z V C − − − − − * * I, S, T, N, Z −変化しません。 V −演算の結果オーバフローが発生するか除数がゼロのときセット , それ以外はクリア されます。 C −除数がゼロのときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 152 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 オーバフロー :4 正常 :17 オーバフロー :5 正常 :19 奇数アドレス補正 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.38 DIVUW (Divide unsigned Long Word Data by unsigned Word Data) F2MC-16FX ファミリ ● 実行例 DIVUW A,7254H この例では , アキュムレータ (A) のロングワードデータ (00001357H) を , 7254H 番地の ワードデータ (00AAH) で符号なし除算します。商を AL に , 剰余を 7254H 番地に設定 します。 AH A 0 0 AL 0 0 1 3 AH 5 7 0 0 AL 0 0 0 0 1 D CCR ××××× CCR ××× 0 0 T N Z V C T N Z V C メモリ メモリ 0 0 7255 0 0 7255 A A 7254 1 5 7254 実行前 CM44-00203-3 A 実行後 FUJITSU MICROELECTRONICS LIMITED 153 第 8 章 命令細則 8.39 DWBNZ (Decrement Word Data and Branch if not Zero) 8.39 F2MC-16FX ファミリ DWBNZ (Decrement Word Data and Branch if not Zero) 第 1 オペランドの内容から 1 をワード減算し , この結果がゼロ以外のときに分岐し ます。減算結果がゼロのときは DWBNZ 命令の次の命令に制御が移ります。 分岐先アドレスは DWBNZ 命令の次の命令のアドレスに第 2 オペランドのデータを符 号拡張したワードデータを加算したものとなります。 第 1 オペランドが @PC+disp16 のときのオペランドアドレスは「DWBNZ 命令の機械 命令が格納されているアドレス +4+disp16」となります。「DWBNZ 命令の次の命令の 機械命令が格納されているアドレス +disp16」ではありませんので注意してください。 ● アセンブラ形式 DWBNZ ear,rel DWBNZ eam,rel ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド ) − 1 ( 第 1 オペランド ) ≠ 0 のとき 【ワード減算】 (PC) ← (PC) + < バイト数 > + 第 2 オペランド (PC) ← (PC) + < バイト数 > ● CCR I S T N Z V C − − − * * * − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果がオーバフローが発生したときセット , それ以外はクリアされます。 C −変化しません。 ● バイト数 , サイクル数 154 第 1 オペランド ear eam 第 2 オペランド rel rel バイト数 3 3+ サイクル数 5 6 奇数アドレス補正 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 8 章 命令細則 8.39 DWBNZ (Decrement Word Data and Branch if not Zero) ● 実行例 DWBNZ RW0,30H この例では , RW0 のワードデータ (0001H) から 1 を減算します。演算結果がゼロなの で分岐しません。 PC F 8 2 0 PC F 8 2 3 RWO 0 0 0 1 RWO 0 0 CCR CM44-00203-3 ××××× CCR 0 0 ×0 0 0 × T N Z V C T N Z V C 実行前 実行後 FUJITSU MICROELECTRONICS LIMITED 155 第 8 章 命令細則 8.40 EXT (Sign Extend from Byte Data to Word Data) 8.40 F2MC-16FX ファミリ EXT (Sign Extend from Byte Data to Word Data) AL の下位バイトデータを符号付き 2 進数としてワードデータに拡張します。 ● アセンブラ形式 EXT ● オペレーション AL の bit7 = 0 のとき AL の bit8 ∼ bit15 ← 00H AL の bit7 ≠ 0 のとき AL の bit8 ∼ bit15 ← FFH ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −符号拡張したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −符号拡張したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 EXT この例では , AL の下位バイトデータ (80H) の最上位ビットが "1" のため , AL の上位バ イト (bit8 ∼ bit15) が FFH で拡張されます。 AH A AL ×× ×× ×× 8 0 A AL ×× ×× F F 8 0 CCR ××××× CCR × 1 0 ×× T N Z V C T N Z V C 実行前 156 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.41 EXTW (Sign Extend from Word Data to Long Word Data) F2MC-16FX ファミリ 8.41 EXTW (Sign Extend from Word Data to Long Word Data) A の下位ワードデータを符号付き 2 進数としてロングワードデータに拡張します。 ● アセンブラ形式 EXTW ● オペレーション A の bit15 = 0 のとき (AH) ← 0000H A の bit15 ≠ 0 のとき (AH) ← FFFFH ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −符号拡張したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −符号拡張したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 EXTW この例では , AL のワードデータ (FF80H) の最上位ビットが "1" のため , AH(A の bit16 ∼ bit31) が FFFFH で拡張されます。 AH A AL ×× ×× F F 8 0 A F F AL F F F F 8 0 CCR ××××× CCR × 1 0 ×× T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 157 第 8 章 命令細則 8.42 FILS, FILSI (Fill String Byte) 8.42 F2MC-16FX ファミリ FILS, FILSI (Fill String Byte) <bank> で指定されたバンクレジスタを上位 8 ビット , AH の内容を下位 16 ビット として示されるアドレスから , RW0 バイト分の領域に AL の内容を転写します。 RW0 がゼロであった場合は転送は行われません。命令実行中に割込みが生じると , 命 令の実行を一時中断し , 割込み処理が終わった時点で処理の継続を行います。 <bank> としては PCB, DTB, ADB, SPB の 4 種が指定できます。<bank> 省略時は DTB が指定されたものとします。 ● アセンブラ形式 FILS [<bank>] FILSI [<bank>] ● オペレーション RW0 ≠ 0 である間 , ((AH)) ← (AL) 【バイト転送】, (AH) ← (AH) + 1, (RW0) ← (RW0) − 1 を繰り返します。 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロのときセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :(RW0 + 1) / 2 奇数アドレス補正 : 1 158 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.42 FILS, FILSI (Fill String Byte) F2MC-16FX ファミリ ● 実行例 FILS この例では , DTB と AH で示されるアドレス (94BC00H) から , RW0 が示すバイト数 (0100H) に AL の下位バイトデータ (E5H) を転送します。 AL AH A RWO B C 0 0 01 00 0 0 DTB AH E 5 A 94 RWO AL B D 0 0 0 0 0 0 T N Z V C メモリ ×× 94BDOO 94BCFF E 5 94BCFF 94BCFE E 5 94BCFE ×× 94BDOO ×× ×× AH → ×× 94BC02 E 5 94BC02 ×× 94BC01 E 5 94BC01 ×× 94BC00 E 5 94BC00 実行前 9 4 T N Z V C メモリ CM44-00203-3 DTB E 5 CCR × 1 0 ×× CCR ××××× AH → 0 0 実行後 FUJITSU MICROELECTRONICS LIMITED 159 第 8 章 命令細則 8.43 FILSW, FILSWI (Fill String Word) 8.43 F2MC-16FX ファミリ FILSW, FILSWI (Fill String Word) <bank> で指定されたバンクレジスタを上位 8 ビット , AH の内容を下位 16 ビット として示されるアドレスから , RW0 ワード分の領域に AL の内容を転写します。 RW0 がゼロであった場合は転送は行われません。命令実行中に割込みが生じると , 命 令の実行を一時中断し , 割込み処理が終わった時点で処理の継続を行います。 <bank> としては PCB, DTB, ADB, SPB の 4 種の指定ができます。<bank> 省略時は DTB が指定されたものとします。 ● アセンブラ形式 FILSW [<bank>] FILSWI [<bank>] ● オペレーション RW0 ≠ 0 である間 , ((AH)) ← (AL) 【ワード転送】, (AH) ← (AH) + 2, (RW0) ← (RW0) − 1 を繰り返します。 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロのときセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 : RW0 がゼロのときに 1 サイクル , それ以外は RW0 サイクル 奇数アドレス補正 :1 160 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.43 FILSW, FILSWI (Fill String Word) F2MC-16FX ファミリ ● 実行例 FILSW ADB この例では , ADB と AH で示されるアドレス (49ABFEH) から , RW0 が示すワード数 (0080H) に AL のワードデータ (E55EH) を転送します。 AH A RWO AL A B F E 00 80 E 5 ADB AH 5 E A 49 RWO AL A C F E 0 0 0 0 CCR ××××× ×× 49ACFF T N Z V C ×× 49ACFE ×× ×× 49ACFF ×× 49ACFE 49ACFD E 5 49ACFD ×× 49AC00 5 E 49AC00 ×× 49ABFF E 5 49ABFF ×× 49ABFE 5 E 49ABFE 実行前 4 9 メモリ メモリ CM44-00203-3 ADB 5 E CCR × 0 0 ×× T N Z V C AH → E 5 AH → 実行後 FUJITSU MICROELECTRONICS LIMITED 161 第 8 章 命令細則 8.44 INC (Increment Byte Data( アドレス指定 )) 8.44 F2MC-16FX ファミリ INC (Increment Byte Data( アドレス指定 )) オペランドのバイトデータに 1 を加え , その結果をオペランドへ戻します。 ● アセンブラ形式 INC ear INC eam ● オペレーション ( オペランド ) ← ( オペランド ) +1 【バイト加算】 ● CCR I S T N Z V C − − − * * * − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが生じればセット , それ以外はクリアされます。 C −変化しません。 ● バイト数 , サイクル数 オペランド ear eam バイト数 2 2+ サイクル数 1 3 ● 実行例 INC R0 この例では , R0 のバイトデータ (FFH) に 1 を加算します。 RO F F CCR ××××× T N Z V C 実行前 162 RO 0 0 CCR × 0 1 0 × T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.45 INCL (Increment Long Word Data) F2MC-16FX ファミリ 8.45 INCL (Increment Long Word Data) オペランドのロングワードデータに 1 を加え , その結果をオペランドへ戻します。 ● アセンブラ形式 INCL ear INCL eam ● オペレーション ( オペランド ) ← ( オペランド ) +1 【ロングワード加算】 ● CCR I S T N Z V C − − − * * * − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが生じればセット , それ以外はクリアされます。 C −変化しません。 ● バイト数 , サイクル数 オペランド ear eam バイト数 2 2+ サイクル数 2 4 奇数アドレス補正 0 2 ● 実行例 INCL RL0 この例では , RL0 のロングワードデータ (7FFFFFFFH) に 1 を加算します。 RLO 7 F F F F F F F RLO 8 0 0 0 CCR ××××× 0 0 CCR × 1 0 1 × T N Z V C T N Z V C 実行前 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 0 0 実行後 163 第 8 章 命令細則 8.46 INCW (Increment Word Data) 8.46 F2MC-16FX ファミリ INCW (Increment Word Data) オペランドのワードデータに 1 を加え , その結果をオペランドへ戻します。 ● アセンブラ形式 INCW ear INCW eam ● オペレーション ( オペランド ) ← ( オペランド ) +1 【ワード加算】 ● CCR I S T N Z V C − − − * * * − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果 , オーバフローが生じればセット , それ以外はクリアされます。 C −変化しません。 ● バイト数 , サイクル数 164 オペランド ear eam バイト数 2 2+ サイクル数 1 3 奇数アドレス補正 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.46 INCW (Increment Word Data) F2MC-16FX ファミリ ● 実行例 INCW @RW0+ この例では , オペランド (@RW0+) で示されるアドレス (0354H) のワードデータ (0101H) に 1 を加算します。 RWO 0 3 5 4 RWO CCR ××××× RWO → 5 6 CCR × 0 0 0 × T N Z V C T N Z V C メモリ メモリ ×× 0357 ×× 0356 0355 0 1 0355 0354 0 2 0354 ×× 0357 ×× 0356 0 1 0 1 実行前 CM44-00203-3 0 3 RWO → 実行後 FUJITSU MICROELECTRONICS LIMITED 165 第 8 章 命令細則 8.47 INT (Software Interrupt) 8.47 F2MC-16FX ファミリ INT (Software Interrupt) バンク 0FFH 内の指定されたアドレスの割込み処理ルーチンへ分岐します。分岐先 割込みルーチン中の RETI 命令の実行により , この命令の次の命令に戻ります。 ● アセンブラ形式 INT addr16 ● オペレーション (SSP) ← (SSP)-2, ((SSP)) ← (AH), (SSP) ← (SSP)-2, ((SSP)) ← (AL) (SSP) ← (SSP)-2, ((SSP)) ← (DPR):(ADB) 【DPRを上位, ADBを下位としてセットで退避される】 (SSP) ← (SSP)-2, ((SSP)) ← (DTB):(PCB) 【DTB を上位 , PCB を下位としてセットで退避される】 (SSP) ← (SSP)-2, ((SSP)) ← (PC+3), (SSP) ← (SSP)-2, ((SSP)) ← (PS) (S) ← 1, (I) ← 0, (PCB) ← 0FFH, (PC) ← addr16 ● CCR I S T N Z V C R S − − − − − I −クリアされます。 S −セットされます。 T, N, Z, V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :3 サイクル数 :8 奇数アドレス補正 :6 166 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.47 INT (Software Interrupt) F2MC-16FX ファミリ ● 実行例 INT 020F2H この例では , FF20F2H 番地の割込み処理ルーチンへ分岐します。PCB に FFH を設定し ます。 AH A F F E E D D C C A F F AL E E D D PC PCB 9 9 F F DPR ADB CCR B B A A CCR RP I S T N Z V C ILM RP I S T N Z V C 1 0 0 0 0 0 1 0 1 0 3 1 0 0 1 0 0 1 0 1 PCB 9 9 8 8 DPR ADB B B A A ILM 0 3 SSB PC 7 7 6 6 SSB SSP 8 0 0 3 0 0 2 0 SSP 7 F F 4 038000 038000 ×× 037FFF FF 037FFF ×× 037FFE EE 037FFE ×× 037FFD DD 037FFD ×× 037FFC CC 037FFC ×× 037FFB BB 037FFB ×× 037FFA AA 037FFA ×× 037FF9 99 037FF9 ×× 037FF8 88 037FF8 ×× 037FF7 77 037FF7 ×× 037FF6 69 037FF6 ×× 037FF5 70 037FF5 ×× 037FF4 85 037FF4 実行前 CM44-00203-3 F 2 メモリ メモリ SSP → C C DTB DTB 0 3 AH AL SSP → 実行後 FUJITSU MICROELECTRONICS LIMITED 167 第 8 章 命令細則 8.48 INT (Software Interrupt( ベクタ指定 )) 8.48 F2MC-16FX ファミリ INT (Software Interrupt( ベクタ指定 )) オペランドで指定した割込みベクタが示す割込み処理ルーチンへ分岐します。 ● アセンブラ形式 INT #vct8 ● オペレーション (SSP) ← (SSP)-2, ((SSP)) ← (AH), (SSP) ← (SSP)-2, ((SSP)) ← (AL) (SSP) ← (SSP)-2, ((SSP)) ← (DPR):(ADB) 【DPRを上位, ADBを下位としてセットで退避される】 (SSP) ← (SSP)-2, ((SSP)) ← (DTB):(PCB) 【DTB を上位 , PCB を下位としてセットで退避される】 (SSP) ← (SSP)-2, ((SSP)) ← (PC+2), (SSP) ← (SSP)-2, ((SSP)) ← (PS) (S) ← 1, (I) ← 0, (PCB) ←ベクタアドレス ( 上位バイト ) (PC) ←ベクタアドレス ( 下位ワード ) ● CCR I S T N Z V C R S − − − − − I −クリアされます。 S −セットされます。 T, N, Z, V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :12 奇数アドレス補正 :6 168 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.48 INT (Software Interrupt( ベクタ指定 )) F2MC-16FX ファミリ ● 実行例 INT #11 この例では , #11 の割込みベクタが示す割込み処理ルーチンへ分岐します。 AH A F F E E D D C C A F F E E D D C C PC PCB 9 9 8 9 DPR ADB CCR B B A A CCR RP I S T N Z V C ILM RP I S T N Z V C 1 5 0 0 0 0 1 0 1 0 2 1 5 0 1 0 0 1 0 1 PCB 9 9 8 8 DPR ADB B B A A ILM 0 2 SSB PC 7 7 6 6 SSB SSP 8 0 0 3 0 0 メモリ E 7 9 5 SSP 7 F F 4 メモリ 8 9 FFFFD2 8 9 FFFFD2 E 7 FFFFD1 E 7 FFFFD1 9 5 FFFFD0 9 5 FFFFD0 038000 SSP → ×× 037FFF FF 037FFF ×× 037FFE EE 037FFE ×× 037FFD DD 037FFD ×× 037FFC CC 037FFC ×× 037FFB BB 037FFB ×× 037FFA AA 037FFA ×× 037FF9 99 037FF9 ×× 037FF8 88 037FF8 ×× 037FF7 77 037FF7 ×× 037FF6 68 037FF6 037FF5 55 037FF5 ×× ×× 実行前 CM44-00203-3 AL DTB DTB 0 3 AH AL 037FF4 SSP → 85 037FF4 実行後 FUJITSU MICROELECTRONICS LIMITED 169 第 8 章 命令細則 8.49 INT9 (Software Interrupt) 8.49 F2MC-16FX ファミリ INT9 (Software Interrupt) ベクタが示す割込み処理ルーチンへ分岐します。 分岐先割込みルーチン中の RETI 命令の実行により , この命令の次の命令に戻りま す。 ● アセンブラ形式 INT9 ● オペレーション (SSP) ← (SSP)-2, ((SSP)) ← (AH), (SSP) ← (SSP)-2, ((SSP)) ← (AL) (SSP) ← (SSP)-2, ((SSP)) ← (DPR):(ADB) 【DPRを上位, ADBを下位としてセットで退避される】 (SSP) ← (SSP)-2, ((SSP)) ← (DTB):(PCB) 【DTB を上位 , PCB を下位としてセットで退避される】 (SSP) ← (SSP)-2, ((SSP)) ← (PC+1), (SSP) ← (SSP)-2, ((SSP)) ← (PS) (S) ← 1, (I) ← 0, (PCB) ←ベクタアドレス ( 上位バイト ) (PC) ←ベクタアドレス ( 下位ワード ) ● CCR I S T N Z V C R S − − − − − I −クリアされます。 S −セットされます。 T, N, Z, V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :12 奇数アドレス補正 :6 170 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.49 INT9 (Software Interrupt) F2MC-16FX ファミリ ● 実行例 INT9 この例では , #9 の割込みベクタが示す割込み処理ルーチンへ分岐します。 AH A 1 1 3 3 4 4 A 1 1 3 3 4 4 PC PCB 7 7 8 9 DPR ADB CCR 5 5 6 6 CCR RP I S T N Z V C ILM RP I S T N Z V C 1 5 0 0 0 0 1 0 1 0 2 1 5 0 1 0 0 1 0 1 PCB 7 7 8 8 DPR ADB 5 5 6 6 ILM 0 2 SSB 9 9 A A SSB SSP 8 0 0 3 0 0 メモリ E 7 9 5 SSP 7 F F 4 メモリ 8 9 FFFFDA 8 9 FFFFDA E 7 FFFFD9 E 7 FFFFD9 9 5 FFFFD8 9 5 FFFFD8 038000 SSP → ×× 037FFF 11 037FFF ×× 037FFE 22 037FFE ×× 037FFD 33 037FFD ×× 037FFC 44 037FFC ×× 037FFB 55 037FFB ×× 037FFA 66 037FFA ×× 037FF9 77 037FF9 ×× 037FF8 88 037FF8 ×× 037FF7 99 037FF7 ×× 037FF6 AB 037FF6 037FF5 55 037FF5 85 037FF4 ×× ×× 実行前 CM44-00203-3 AL 2 2 DTB PC DTB 0 3 AH AL 2 2 037FF4 SSP → 実行後 FUJITSU MICROELECTRONICS LIMITED 171 第 8 章 命令細則 8.50 INTP (Software Interrupt) 8.50 F2MC-16FX ファミリ INTP (Software Interrupt) オペランドで指定された 24 ビットの物理アドレスの割込みルーチンへ分岐します。 16M バイト全空間の任意のアドレスが指定可能です。 分岐先割込みルーチン中の RETI 命令の実行により , この命令の次の命令に戻りま す。 ● アセンブラ形式 INTP addr24 ● オペレーション (SSP) ← (SSP)-2, ((SSP)) ← (AH), (SSP) ← (SSP)-2, ((SSP)) ← (AL) (SSP) ← (SSP)-2, ((SSP)) ← (DPR):(ADB) 【DPR: 上位 , ADB: 下位バイト】 (SSP) ← (SSP)-2, ((SSP)) ← (DTB):(PCB) 【DTB: 上位 , PCB: 下位バイト】 (SSP) ← (SSP)-2, ((SSP)) ← (PC+4), (SSP) ← (SSP)-2, ((SSP)) ← (PS) (S) ← 1, (I) ← 0, (PCB) ← addr24 の最上位バイト , (PC) ← addr24 の下位ワード ● CCR I S T N Z V C R S − − − − − I −クリアされます。 S −セットされます。 T, N, Z, V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :4 サイクル数 :8 奇数アドレス補正 :6 172 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.50 INTP (Software Interrupt) F2MC-16FX ファミリ ● 実行例 INTP 0C8F220H この例では , C8F220H 番地の割込み処理ルーチンへ分岐します。PCB に C8H を設定し ます。 AH A 1 1 AH AL 2 2 3 3 DTB PCB 7 7 8 8 DPR ADB 4 4 PC 9 9 A A A 1 1 3 3 DTB PCB 7 7 C 8 4 4 PC F 2 2 0 DPR ADB 5 5 6 6 CCR 5 5 6 6 CCR ILM RP I S T N Z V C ILM RP I S T N Z V C 0 3 1 0 0 0 0 0 1 0 1 0 3 1 0 0 1 0 0 1 0 1 SSB 0 3 SSB SSP 8 0 0 3 0 0 メモリ SSP → SSP 7 F F 4 メモリ 038000 038000 ×× 037FFF 1 1 037FFF ×× 037FFE 2 2 037FFE ×× 037FFD 3 3 037FFD ×× 037FFC 4 4 037FFC ×× 037FFB 5 5 037FFB ×× 037FFA 6 6 037FFA ×× 037FF9 7 7 037FF9 ×× 037FF8 8 8 037FF8 ×× 037FF7 9 9 037FF7 ×× 037FF6 A E 037FF6 ×× 037FF5 7 0 037FF5 ×× 037FF4 8 5 037FF4 実行前 CM44-00203-3 AL 2 2 SSP → 実行後 FUJITSU MICROELECTRONICS LIMITED 173 第 8 章 命令細則 8.51 JCTX (Jump Context) 8.51 F2MC-16FX ファミリ JCTX (Jump Context) メモリに退避されたレジスタの内容やアドレスなどを復帰します。 ● アセンブラ形式 JCTX @A ● オペレーション (temp) ← (AL) (PS) ← ((temp)) : (temp) ← (temp) + 2 (PC) ← ((temp)) : (temp) ← (temp) + 2 (DTB), (PCB) ← ((temp)) : (temp) ← (temp) + 2 (DPR), (ADB) ← ((temp)) : (temp) ← (temp) + 2 (AL) ← ((temp)) : (temp) ← (temp) + 2 (AH) ← ((temp)) ● CCR I S T N Z V C * * * * * * * I − AL の示す番地の bit6 が入ります。 S − AL の示す番地の bit5 が入ります。 T − AL の示す番地の bit4 が入ります。 N − AL の示す番地の bit3 が入ります。 Z − AL の示す番地の bit2 が入ります。 V − AL の示す番地の bit1 が入ります。 C − AL の示す番地の bit0 が入ります。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :PR の内容が変化するときは 23, それ以外は 6 174 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.51 JCTX (Jump Context) F2MC-16FX ファミリ ● 実行例 JCTX @A この例では, DTBとALで示されるアドレス(09E020H)から, コンテキストを復帰します。 AH A AH AL × × × × E 0 2 0 A C B AL 7 5 0 2 DTB PCB PC DTB PCB 0 9 ×× ×× ×× 8 0 5 0 DPR ADB DPR ADB ×× ×× CCR 0 8 C E CCR ILM RP I S T N Z V C ILM RP I S T N Z V C ×× ×× ××××××× 0 7 1 6 0 0 0 1 0 1 0 メモリ PC 8 8 09E02C CB 09E02B C B 09E02B 75 09E02A 7 5 09E02A 02 09E029 0 2 09E029 50 09E028 5 0 09E028 08 09E027 0 8 09E027 CE 09E026 C E 09E026 80 09E025 8 0 09E025 50 09E024 5 0 09E024 88 09E023 8 8 09E023 01 09E022 0 1 09E022 09E021 F 6 09E021 F6 AL → 0 1 メモリ 09E02C 8A 実行前 CM44-00203-3 5 0 09E020 8 A 09E020 実行後 FUJITSU MICROELECTRONICS LIMITED 175 第 8 章 命令細則 8.52 JMP (Jump Destination Address) 8.52 F2MC-16FX ファミリ JMP (Jump Destination Address) オペランドで示されるアドレスのワードデータを読み出し , そのワードデータが示 すアドレスへ分岐します。 ● アセンブラ形式 JMP @A JMP addr16 JMP @ear JMP @eam ● オペレーション (PC) ← ( オペランド ) ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 176 オペランド @A @ear @eam addr16 バイト数 1 2 2+ 3 サイクル数 2 2 4 2 奇数アドレス補正 0 0 1 0 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.52 JMP (Jump Destination Address) F2MC-16FX ファミリ ● 実行例 JMP @@RW0+2 この例では , オペランド (@RW0+2) で示されるアドレス (A0A2H) の , ワードデータの 示すアドレス (DB80H) に分岐します。 PC E 0 0 0 PC D B 8 0 RWO A 0 A 0 RWO A 0 A 0 メモリ RWO+2 → D B A0A3 8 0 A0A2 A0A1 ×× A0A1 A0A0 ×× A0A0 D B A0A3 8 0 A0A2 ×× ×× 実行前 CM44-00203-3 メモリ RWO+2 → 実行後 FUJITSU MICROELECTRONICS LIMITED 177 第 8 章 命令細則 8.53 JMPP (Jump Destination Physical Address) 8.53 F2MC-16FX ファミリ JMPP (Jump Destination Physical Address) オペランドが addr24 の場合 , addr24 で示される物理アドレスへ分岐します。 また , オペランドが @ea の場合 , オペランドの内容で示される物理アドレスへ分岐 します。 ● アセンブラ形式 1) JMPP addr24 2) JMPP @ear JMPP @eam ● オペレーション 1) : (PC) ← addr24 の下位ワード (PCB) ← addr24 の最上位バイト 2) : (PC) ← (ea) 【ワード転送】 (PCB) ← (ea+2) 【バイト転送】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 オペランド addr24 @ear @eam バイト数 4 2 2+ サイクル数 2 3 5 奇数アドレス補正 0 0 1 ● 実行例 JMPP 0FFC850H この例では , FFC850H に分岐します。PCB に FFH を設定します。 PC 1 2 4 8 PCB 3 4 実行前 178 PC C 8 PCB 5 0 F F 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.54 LINK (Link and create new stack frame) F2MC-16FX ファミリ 8.54 LINK (Link and create new stack frame) 現在のフレームポインタ (RW3) の値をスタックに保存し , 新しいフレームポインタ を設定します。これにより , 新しいローカル ( 局所 ) 変数の領域を確保します。この 命令は関数を呼び出す前に使用します。 ● アセンブラ形式 LINK #imm8 ● オペレーション (SP) ← (SP)-2; ((SP)) ← (RW3); (RW3) ← (SP); (SP) ← (SP)-imm8 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :2 奇数アドレス補正 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 179 第 8 章 命令細則 8.54 LINK (Link and create new stack frame) F2MC-16FX ファミリ ● 実行例 LINK #20H この例では , SP で示されるスタックに RW3 をプッシュします。次に SP の値 (E020H) から 8 ビット即値データ (20H) を減算します。 SP E0 22 SP E 0 0 0 RW3 A0 46 RW3 E 0 2 0 メモリ メモリ A 0 SP→ ×× E022 SP→ 実行前 180 4 6 E020 × × E000 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.55 LSL (Logical Shift Byte Data of Accumulator to Left) F2MC-16FX ファミリ 8.55 LSL (Logical Shift Byte Data of Accumulator to Left) アキュムレータ (A) の最下位バイトデータを , 第 2 オペランドで示されるビット数だ け左へシフトします。 A の最下位ビットには "0" が入ります。A の最下位バイトデータの最上位ビットからシ フトアウトされたビットはキャリフラグ (C) に入ります。 ● アセンブラ形式 LSL A,R0 ● オペレーション C MSB AL LSB 0 ● CCR I S T N Z V C − − − * * − * I, S, T −変化しません。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C −A の MSB から最後にシフトアウトしたビット値が入ります。シフト量がゼロの場 合はクリアされます。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 181 第 8 章 命令細則 8.55 LSL (Logical Shift Byte Data of Accumulator to Left) F2MC-16FX ファミリ ● 実行例 LSL A,R0 この例では , AL の下位バイトデータ (FEH) を , R0 が示すビット数 (2 ビット ) 左シフト します。 AH A AL ×× ×× ×× RO AH F F A AL ×× F C ×× ×× 02 CCR ××××× RO 0 2 CCR × 1 0 × 1 T N Z V C 実行前 182 FUJITSU MICROELECTRONICS LIMITED T N Z V C 実行後 CM44-00203-3 F2MC-16FX ファミリ 8.56 第 8 章 命令細則 8.56 LSLL (Logical Shift Long Word Data of Accumulator to Left) LSLL (Logical Shift Long Word Data of Accumulator to Left) アキュムレータ (A) のロングワードデータを , 第 2 オペランドで示されるビット数だ け左へシフトします。 アキュムレータ (A) の最下位ビットには "0" が入ります。最上位ビットからシフトアウ トされたビットはキャリフラグ (C) に入ります。 ● アセンブラ形式 LSLL A,R0 ● オペレーション C MSB A LSB 0 ● CCR I S T N Z V C − − − * * − * I, S, T −変化しません。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C −A の MSB から最後にシフトアウトしたビット値が入ります。シフト量がゼロの場 合はクリアされます。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 183 第 8 章 命令細則 8.56 LSLL (Logical Shift Long Word Data of Accumulator to Left) F2MC-16FX ファミリ ● 実行例 LSLL A,R0 この例では , アキュムレータ (A) のロングワードデータ (33333333H) を , R0 が示すビッ ト数 (2 ビット ) 左シフトします。 A AH AL 3 3 3 3 3 3 3 3 RO A AH AL C C C C C C C C 02 0 2 CCR ××××× CCR × 1 0 × 0 T N Z V C T N Z V C 実行前 184 RO FUJITSU MICROELECTRONICS LIMITED 実行後 CM44-00203-3 第 8 章 命令細則 8.57 LSLW (Logical Shift Word Data of Accumulator to Left) F2MC-16FX ファミリ 8.57 LSLW (Logical Shift Word Data of Accumulator to Left) アキュムレータ (A) の下位ワードデータを , 1 ビットだけ左へシフトします。 アキュムレータ (A) の最下位ビットには "0" が入ります。アキュムレータ (A) の下位 ワードデータの最上位ビットからシフトアウトされたビットはキャリフラグ (C) に入 ります。 ● アセンブラ形式 LSLW A / SHLW A ● オペレーション C MSB AL LSB 0 ● CCR I S T N Z V C − − − * * − * I, S, T −変化しません。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C − A の MSB からシフトアウトしたビット値が入ります。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 185 第 8 章 命令細則 8.57 LSLW (Logical Shift Word Data of Accumulator to Left) F2MC-16FX ファミリ ● 実行例 LSLW A この例では , AL のワードデータ (AA55H) を , 1 ビット左シフトします。 AH A AL ×× ×× A A AH 5 5 A AL ×× ×× CCR ××××× 5 5 CCR × 0 0 × 1 T N Z V C 実行前 186 A A T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.58 LSLW (Logical Shift Word Data of Accumulator to Left) F2MC-16FX ファミリ 8.58 LSLW (Logical Shift Word Data of Accumulator to Left) アキュムレータ (A) の下位ワードデータを , 第 2 オペランドで示されるビット数だけ 左へシフトします。 アキュムレータ (A) の最下位ビットには "0" が入ります。アキュムレータ (A) の下位 ワードデータの最上位ビットからシフトアウトされたビットはキャリフラグ (C) に入 ります。 ● アセンブラ形式 LSLW A,R0 ● オペレーション C MSB AL LSB 0 ● CCR I S T N Z V C − − − * * − * I, S, T −変化しません。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C −A の MSB から最後にシフトアウトしたビット値が入ります。シフト量がゼロの場 合はクリアされます。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 187 第 8 章 命令細則 8.58 LSLW (Logical Shift Word Data of Accumulator to Left) F2MC-16FX ファミリ ● 実行例 LSLW A,R0 この例では , AL のワードデータ (AA55H) を , R0 が示すビット数 (4 ビット ) 左シフト します。 AH A AL ×× ×× A A RO AH 5 5 A AL ×× ×× A 5 04 RO CCR ××××× 188 0 4 CCR × 1 0 × 0 T N Z V C 実行前 5 0 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.59 LSR (Logical Shift Byte Data of Accumulator to Right) F2MC-16FX ファミリ 8.59 LSR (Logical Shift Byte Data of Accumulator to Right) アキュムレータ (A) の最下位バイトデータを , 第 2 オペランドで示されるビット数だ け右へシフトします。 アキュムレータ (A) の最下位バイトの最上位ビットには "0" が入ります。最下位ビット からシフトアウトされたビットはキャリフラグ (C) に入ります。 ● アセンブラ形式 LSR A,R0 ● オペレーション AL MSB LSB C T 1 0 ● CCR I S T N Z V C − − * * * − * I, S −変化しません。 T − キャリよりシフトアウトされたデータに1つ以上"1"であるビットがあればセット, それ以外はクリアされます。また , シフト量がゼロのときもクリアされます。 N −シフトの結果の MSB が "1" のときセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C −A の LSB から最後にシフトアウトしたビット値が入ります。シフト量がゼロの場 合はクリアされます。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 189 第 8 章 命令細則 8.59 LSR (Logical Shift Byte Data of Accumulator to Right) F2MC-16FX ファミリ ● 実行例 LSR A,R0 この例では , AL の下位バイトデータ (FFH) を , R0 が示すビット数 (5 ビット ) 右シフト します。 AH A AL ×× ×× ×× RO AH F F A AL ×× ×× 05 ×× RO CCR ××××× 190 0 5 CCR 1 0 0 × 1 T N Z V C 実行前 0 7 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.60 LSRL (Logical Shift Long Word Data of Accumulator to Right) F2MC-16FX ファミリ 8.60 LSRL (Logical Shift Long Word Data of Accumulator to Right) アキュムレータ (A) のロングワードデータを , 第 2 オペランドで示されるビット数だ け右へシフトします。 アキュムレータ (A) の最上位ビットには "0" が入り , アキュムレータ (A) の最下位ビッ トからシフトアウトされたビットはキャリフラグ (C) に入ります。 ● アセンブラ形式 LSRL A,R0 ● オペレーション A MSB LSB C T 1 0 ● CCR I S T N Z V C − − * * * − * I, S −変化しません。 T − キャリよりシフトアウトされたデータに1つ以上"1"であるビットがあればセット, それ以外はクリアされます。また , シフト量がゼロのときもクリアされます。 N −シフトの結果の MSB が "1" のときセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C −A の LSB から最後にシフトアウトしたビット値が入ります。シフト量がゼロの場 合はクリアされます。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 191 第 8 章 命令細則 8.60 LSRL (Logical Shift Long Word Data of Accumulator to Right) ● 実行例 F2MC-16FX ファミリ LSRL A,R0 この例では , アキュムレータ (A) のロングワードデータ (33333333H) を , R0 が示すビッ ト数 (16 ビット ) 右シフトします。 A AH AL 3 3 3 3 3 3 3 3 RO A AH AL 0 0 0 0 3 3 3 3 10 CCR ××××× RO CCR T N Z V C 実行前 192 FUJITSU MICROELECTRONICS LIMITED 1 0 10 0 × 0 T N Z V C 実行後 CM44-00203-3 第 8 章 命令細則 8.61 LSRW (Logical Shift Word Data of Accumulator to Right) F2MC-16FX ファミリ 8.61 LSRW (Logical Shift Word Data of Accumulator to Right) アキュムレータ (A) の下位ワードデータを , 1 ビットだけ右へシフトします。 アキュムレータ (A) の下位ワードデータの最上位ビットには "0" が入ります。最下位 ビットはキャリフラグ (C) に入ります。 ● アセンブラ形式 LSRW A / SHRW A ● オペレーション MSB AL LSB C T 1 0 ● CCR I S T N Z V C − − * R * − * I, S −変化しません。 T −キャリよりシフトアウトされたデータと旧 T フラグとの OR がセットされます。 N −クリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C − A の LSB からシフトアウトしたビット値が入ります。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 193 第 8 章 命令細則 8.61 LSRW (Logical Shift Word Data of Accumulator to Right) F2MC-16FX ファミリ ● 実行例 LSRW A この例では , AL のワードデータ (AAAAH) を , 1 ビット右シフトします。 AH A AL ×× ×× A A A A A AL ×× ×× 5 5 5 5 CCR 1 ××× 0 CCR 1 0 0 × 0 T N Z V C T N Z V C 実行前 194 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.62 LSRW (Logical Shift Word Data of Accumulator to Right) F2MC-16FX ファミリ 8.62 LSRW (Logical Shift Word Data of Accumulator to Right) アキュムレータ (A) の下位ワードデータを , 第 2 オペランドで示されるビット数だけ 右へシフトします。 アキュムレータ (A) の下位ワードデータの最上位ビットには "0" が入ります。最下位 ビットからシフトアウトされたビットはキャリフラグ (C) に入ります。 ● アセンブラ形式 LSRW A,R0 ● オペレーション MSB AL LSB C T 1 0 ● CCR I S T N Z V C − − * * * − * I, S −変化しません。 T − キャリよりシフトアウトされたデータに1つ以上"1"であるビットがあればセット, それ以外はクリアされます。また , シフト量がゼロのときもクリアされます。 N −シフトの結果の MSB が "1" のときセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C −A の LSB から最後にシフトアウトしたビット値が入ります。シフト量がゼロの場 合はクリアされます。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 195 第 8 章 命令細則 8.62 LSRW (Logical Shift Word Data of Accumulator to Right) F2MC-16FX ファミリ ● 実行例 LSRW A,R0 この例では , AL のワードデータ (AAAAH) を , R0 が示すビット数 (12 ビット ) 右シフ トします。 AH A AL ×× ×× A A RO AH A A A AL ×× ×× 0 0 0C CCR ××××× RO CCR T N Z V C 実行前 196 FUJITSU MICROELECTRONICS LIMITED 0 A 0 C 10 0 × 1 T N Z V C 実行後 CM44-00203-3 第 8 章 命令細則 8.63 MOV (Move Byte Data from Source to Accumulator) F2MC-16FX ファミリ 8.63 MOV (Move Byte Data from Source to Accumulator) AH に AL の値が転送されます。そのあと , AL の上位バイトには 00H が , AL の下位 バイトには第 2 オペランドのバイトデータが転送されます。 第 2 オペランドが @A の場合は , AH への転送は行われません。 ● アセンブラ形式 MOV A,#imm8 MOV A,Ri MOV A,@A MOV A,dir MOV A,@RLi+disp8 MOV A,addr16 MOV A,io MOV A,brg1 MOV A,eam MOV A,ear ● オペレーション (A) ← ( 第 2 オペランド ) 【バイト転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 第 1 オペランド A A A A 第 2 オペランド #imm8 @A @RLi+disp8 io CM44-00203-3 A A A addr16 Ri dir A A A ear eam brg1 バイト数 2 2 3 2 3 1 2 2 2+ 2 サイクル数 1 1 1 1 1 1 1 1 1 1 FUJITSU MICROELECTRONICS LIMITED 197 第 8 章 命令細則 8.63 MOV (Move Byte Data from Source to Accumulator) F2MC-16FX ファミリ ● 実行例 MOV A,0092H この例では , AL のワードデータ (A046H) を AH に転送したあと , 0092H 番地のバイト データ (71H) を AL に転送します。 AH A AL ×× ×× A 0 AH 4 6 A A 0 AL 0 0 4 6 CCR ××××× CCR × 0 0 × × T N Z V C メモリ 7 1 198 T N Z V C メモリ 0092 実行前 7 1 7 1 0092 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.64 MOV (Move Byte Data from Accumulator to Destination) F2MC-16FX ファミリ 8.64 MOV (Move Byte Data from Accumulator to Destination) アキュムレータ (A) の最下位バイトデータを , 第 1 オペランドで示されるアドレスに 転送します。 ● アセンブラ形式 MOV dir,A MOV Ri,A MOV @RLi+disp8,A MOV io,A MOV addr16,A MOV brg2,A MOV ear,A MOV eam,A ● オペレーション ( 第 1 オペランド ) ← (A) 【バイト転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド dir @RLi+disp8 addr16 io Ri ear 第 2 オペランド A A バイト数 2 サイクル数 1 A A A A A A 3 3 2 1 2 2+ 2 1 1 1 1 1 1 1 FUJITSU MICROELECTRONICS LIMITED eam brg2 199 第 8 章 命令細則 8.64 MOV (Move Byte Data from Accumulator to Destination) F2MC-16FX ファミリ ● 実行例 MOV R1,A この例では , AL の下位バイトデータ (32H) を R1 に転送します。 AH A AL ×× ×× 4 9 AH 3 2 R1 ×× CCR ××××× T N Z V C A CCR ×× ×× 4 9 ×0 0 ×× 3 2 R1 3 2 T N Z V C 実行前 200 AL FUJITSU MICROELECTRONICS LIMITED 実行後 CM44-00203-3 第 8 章 命令細則 8.65 MOV (Move Byte Immediate data to Destination) F2MC-16FX ファミリ 8.65 MOV (Move Byte Immediate data to Destination) 第 2 オペランドで指定された 8 ビットの即値データを第 1 オペランドで示されるア ドレスに転送します。 第 1 オペランドが @PC+disp16 のときの転送先アドレスは「MOV 命令の機械命令が格 納されているアドレス +4+rel」となります。 「MOV 命令の次の命令の機械命令が格納 されているアドレス +rel」ではありません。 ● アセンブラ形式 MOV RP,#imm8 MOV ILM,#imm8 MOV io,#imm8 MOV dir,#imm8 MOV ear,#imm8 MOV eam,#imm8 ● オペレーション ( 第 1 オペランド ) ← imm8 ● CCR 転送先が汎用レジスタ (R0 ∼ R7) とバンクレジスタの場合 転送先が汎用レジスタ (R0 ∼ R7) とバンクレジスタ以外の場合 I S T N Z V C I S T N Z V C − − − * * − − − − − − − − − I, S, T −変化しません。 N −汎用レジスタ以外への転送であれば変化しません。汎用レジスタへの転送であれ ば , 転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z − 汎用レジスタ以外への転送であれば変化しません。汎用レジスタへの転送であれ ば , 転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド RP ILM dir io ear eam 第 2 オペランド #imm8 #imm8 #imm8 #imm8 #imm8 #imm8 バイト数 2 2 3 3 3 3+ サイクル数 RP の内容が変化 するときは 19, それ以外は 4 1 1 1 1 1 FUJITSU MICROELECTRONICS LIMITED 201 第 8 章 命令細則 8.65 MOV (Move Byte Immediate data to Destination) F2MC-16FX ファミリ ● 実行例 MOV 009FH,#22H この例では , 8 ビット即値データ (22H) を 009FH 番地にバイト転送します。 A AH AL ×× ×× ×× ×× A AL ×× ×× ×× ×× CCR ××××× CCR ××××× T N Z V C T N Z V C メモリ 7 1 メモリ 009F 実行前 202 AH 2 2 009F 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.66 MOV (Move Byte Data from Source to Destination) F2MC-16FX ファミリ 8.66 MOV (Move Byte Data from Source to Destination) 第 2 オペランドで示されるバイトデータを第 1 オペランドへ転送します。 ここで解説する MOV Ri, #imm8 は基本ページマップ (「付録 C 表 C.2-1 」参照 ) 内に ある命令を指し , MOV ear, #imm8 に含まれるものとは別のコードの命令です。 ● アセンブラ形式 MOV Ri,#imm8 MOV Ri,ear MOV Ri,eam MOV ear,Ri MOV eam,Ri ● オペレーション ( 第 1 オペランド ) ← ( 第 2 オペランド ) 【バイト転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド Ri Ri Ri ear eam 第 2 オペランド #imm8 ear eam Ri Ri バイト数 2 2 2+ 2 2+ サイクル数 1 1 1 1 1 FUJITSU MICROELECTRONICS LIMITED 203 第 8 章 命令細則 8.66 MOV (Move Byte Data from Source to Destination) F2MC-16FX ファミリ ● 実行例 MOV R3,@RW0 この例では , 第 2 オペランド (@RW0) で示されるアドレス (E001H) のバイトデータ (71H) を , R3 に転送します。 RWO R3 ×× E 0 RWO 0 1 CCR ××××× R3 E 0 7 1 CCR ×× 0 0 × T N Z V C メモリ 7 1 実行前 204 0 1 T N Z V C メモリ E001 7 1 E001 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.67 MOV (Move Byte Data from AH to Memory ) F2MC-16FX ファミリ 8.67 MOV (Move Byte Data from AH to Memory ) AH の下位バイトデータを AL の内容によって示されるメモリへ転送します。 ● アセンブラ形式 MOV @AL,AH ● オペレーション ((AL)) ← (AH) 【バイト転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 205 第 8 章 命令細則 8.67 MOV (Move Byte Data from AH to Memory ) F2MC-16FX ファミリ ● 実行例 MOV @AL,AH この例では , AH の下位バイトデータ (22H) を , AL のワードデータで示されるアドレス (E084H) にバイト転送します。 AH A 0 1 AL 2 2 E 0 AH 8 4 A 0 1 AL 2 2 E 0 CCR × 0 0 ×× CCR ××××× T N Z V C メモリ 実行前 206 T N Z V C メモリ E084 7 1 8 4 2 2 E084 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.68 MOVB (Move Bit Data from Bit Address to Accumulator) F2MC-16FX ファミリ 8.68 MOVB (Move Bit Data from Bit Address to Accumulator) AH に AL の値が転送されます。そのあと , アキュムレータ (A) の bit8 ∼ bit15 には 00H が転送されます。A の bit0 ∼ bit7 には , 第 2 オペランドで指定したアドレスの ビットが "0" のとき 00H, "1" のとき FFH が転送されます。 ● アセンブラ形式 MOVB A,addr16:bp MOVB A,dir:bp MOVB A,io:bp ● オペレーション 【バイト転送】 ( 第 2 オペランド ) = 0 のとき :(A) ← 00H ( 第 2 オペランド ) = 1 のとき :(A) ← FFH 【バイト転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送されるビットが "1" ならばセット , "0" ならばクリアされます。 Z −転送されるビットが "0" ならばセット , "1" ならばクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A A 第 2 オペランド addr16:bp dir:bp io:bp バイト数 4 3 3 サイクル数 1 1 1 FUJITSU MICROELECTRONICS LIMITED 207 第 8 章 命令細則 8.68 MOVB (Move Bit Data from Bit Address to Accumulator) F2MC-16FX ファミリ ● 実行例 MOVB A,32H:3 この例では , 32H 番地のバイトデータ (7FH) の bit3 が "1" なので , AL に 00FFH が設定さ れます。 A AH AL ×× ×× ×× ×× A AL ×× ×× 0 0 F F CCR ××××× CCR × 1 0 ×× T N Z V C T N Z V C メモリ メモリ × × × × 7 F 208 AH 0032 7 F × × × × 実行前 実行後 FUJITSU MICROELECTRONICS LIMITED 0032 CM44-00203-3 第 8 章 命令細則 8.69 MOVB (Move Bit Data from Accumulator to Bit Address) F2MC-16FX ファミリ 8.69 MOVB (Move Bit Data from Accumulator to Bit Address) アキュムレータ (A) の最下位バイトデータが 00H のときは , 第 1 オペランドで指定 したビットアドレスにビットデータ 0 を転送します。 A の最下位バイトデータが 00H でないときは , 第 1 オペランドで指定したビットア ドレスにビットデータ 1 を転送します。 ● アセンブラ形式 MOVB addr16:bp,A MOVB dir:bp,A MOVB io:bp,A ● オペレーション (A) のバイトデータが 00H のとき :( 第 1 オペランド )b=0 【ビット転送】 (A) のバイトデータが 00H でないとき :( 第 1 オペランド )b=1 【ビット転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N − A のバイトデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z − A のバイトデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 第 1 オペランド addr16:bp CM44-00203-3 dir:bp io:bp 第 2 オペランド A A A バイト数 4 3 3 サイクル数 3 3 3 FUJITSU MICROELECTRONICS LIMITED 209 第 8 章 命令細則 8.69 MOVB (Move Bit Data from Accumulator to Bit Address) F2MC-16FX ファミリ ● 実行例 MOVB 765FH:7,A この例では, ALの下位バイトデータが00H でないので, 765FH 番地のbit7を"1"にします。 AH A AL ×× ×× ×× 0 1 A AL ×× ×× ×× 0 1 CCR ××××× CCR × 0 0 ×× T N Z V C T N Z V C メモリ メモリ × × × × 7 F 210 AH 765F F F × × × × 実行前 実行後 FUJITSU MICROELECTRONICS LIMITED 765F CM44-00203-3 第 8 章 命令細則 8.70 MOVEA (Move Effective Address to Destination) F2MC-16FX ファミリ 8.70 MOVEA (Move Effective Address to Destination) 第 2 オペランドで示される値 ( 実効アドレス ) を第 1 オペランドへ転送します。 第2オペランドに汎用レジスタが指定されたときは, 汎用レジスタアドレスを転送しま す。転送先 ( 第 1 オペランド ) がアキュムレータ (A) の場合 , AH には , アドレス転送前 の AL の値が転送されます。 ● アセンブラ形式 MOVEA A,ear MOVEA RWi,ear MOVEA A,eam MOVEA RWi,eam ● オペレーション 第 1 オペランド← ea 【ワード転送】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A RWi RWi 第 2 オペランド ear eam ear eam バイト数 2 2+ 2 2+ サイクル数 1 1 1 1 FUJITSU MICROELECTRONICS LIMITED 211 第 8 章 命令細則 8.70 MOVEA (Move Effective Address to Destination) F2MC-16FX ファミリ ● 実行例 MOVEA RW2,@RW0+2 この例では , 第 2 オペランド (@RW0+2) で示されるアドレス値 (006BH) を , RW2 に転 送します。 RWO 0 0 6 9 RWO 0 0 6 9 RW2 ×× ×× RW2 0 0 6 B CCR ××××× CCR ××××× T N Z V C T N Z V C 実行前 212 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 8.71 第 8 章 命令細則 8.71 MOVL (Move Long Word Data from Source to Accumulator) MOVL (Move Long Word Data from Source to Accumulator) 第 2 オペランドで示されるロングワードデータをアキュムレータ (A) へ転送します。 ● アセンブラ形式 MOVL A,#imm32 MOVL A,ear MOVL A,eam ● オペレーション (A) ← ( 第 2 オペランド ) 【ロングワード転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A A 第 2 オペランド #imm32 ear eam バイト数 5 2 2+ サイクル数 2 2 2 奇数アドレス補正 0 0 1 FUJITSU MICROELECTRONICS LIMITED 213 第 8 章 命令細則 8.71 MOVL (Move Long Word Data from Source to Accumulator) F2MC-16FX ファミリ ● 実行例 MOVL A,#0053FF64H この例では , 32 ビット即値データ (0053FF64H) を , アキュムレータ (A) にロングワード 転送します。 AH A AL ×× ×× ×× ×× A 0 0 AL F F 5 3 6 4 CCR ××××× CCR × 0 0 ×× T N Z V C T N Z V C 実行前 214 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.72 MOVL (Move Long Word Data from Accumulator to Destination) F2MC-16FX ファミリ 8.72 MOVL (Move Long Word Data from Accumulator to Destination) アキュムレータ (A) のロングワードデータを第 1 オペランドへ転送します。 ● アセンブラ形式 MOVL ear,A MOVL eam,A ● オペレーション ( 第 1 オペランド ) ← (A) 【ロングワード転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 215 第 8 章 命令細則 8.72 MOVL (Move Long Word Data from Accumulator to Destination) ● バイト数 , サイクル数 第 1 オペランド ear eam 第 2 オペランド A A バイト数 2 2+ サイクル数 2 2 奇数アドレス補正 0 1 F2MC-16FX ファミリ ● 実行例 MOVL RL1,A この例では , アキュムレータ (A) のロングワードデータ (0197A024H) を , RL1 に転送し ます。 AH A RL1 0 1 AL A 0 9 7 ×× ×× 2 4 ×× ×× AL A 0 1 9 7 A 0 2 4 RL1 0 1 9 7 A 0 2 4 CCR ××××× CCR × 0 0 ×× T N Z V C T N Z V C 実行前 216 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.73 MOVN (Move Immediate Nibble Data to Accumulator) F2MC-16FX ファミリ 8.73 MOVN (Move Immediate Nibble Data to Accumulator) AH に AL の値が転送されます。そのあと , AL の bit4 ∼ bit15 には 000H が , AL の bit0 ∼ bit3 には第 2 オペランドで指定されたニブルデータが転送されます。 ● アセンブラ形式 MOVN A,#imm4 ● オペレーション (A) ← imm4 【バイト転送】 ● CCR I S T N Z V C − − − R * − − I, S, T −変化しません。 N −クリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 MOVN A,#0FH この例では , AL のワードデータ (6207H) を AH に転送したあと , 4 ビット即値データ (FH) をゼロ拡張したバイトデータ (0FH) を , AL に転送します。 AH A AL ×× ×× 6 2 AH 0 7 A 6 2 AL 0 0 0 7 CCR ××××× CCR × 0 0 ×× T N Z V C 実行前 CM44-00203-3 0 F T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 217 第 8 章 命令細則 8.74 MOVS, MOVSI (Move String Byte with Increment) 8.74 F2MC-16FX ファミリ MOVS, MOVSI (Move String Byte with Increment) <source bank> で指定される空間の AL で示されるアドレスから , <destination bank> で指定される空間の AH で示されるアドレスへ , バイトデータを転送します。 RW0 で指定された回数だけ , アドレスを増加させながら転送を繰り返します。 RW0 がゼロであったときは転送は行いません。<destination bank>, <sourcebank> として PCB, DTB, ADB, SPB の 4 種が使用できます。省略時は自動的に DTB が設定されます。 転送中に割込みが生じた場合は , 転送を一時中断して割込み処理を行います。割込み処 理の終了のあと転送を再開します。 ● アセンブラ形式 MOVS [<destination bank>] [,<source bank>] MOVSI [<destination bank>] [,<source bank>] ● オペレーション RW0=0 となるまで ((AH)) ← ((AL)) 【バイト転送】 (AH) ← (AH)+1, (AL) ← (AL)+1 (RW0) ← (RW0)-1 を繰り返します。 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 : RW0 がゼロのときに 1 サイクル , RW0 が 1 以上で転送元と転送先 のアドレス領域が重ならないときに RW0 サイクル , それ以外は 2 × RW0 サイクル 奇数アドレス補正 : 1 218 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.74 MOVS, MOVSI (Move String Byte with Increment) F2MC-16FX ファミリ ● 実行例 MOVSI ADB,PCB この例では , PCB と AL で示されるアドレス (FF0000H) から , ADB と AH で示されるア ドレス (018000H) へバイトデータを転送します。 AH AH AL A 8 0 0 0 RWO 0 0 0 3 0 0 0 0 CCR ××××× AL A 8 0 0 3 RWO 0 0 0 0 0 0 0 3 CCR ××××× T N Z V C T N Z V C PCB F F PCB ADB 0 1 F F ADB 0 1 メモリ AL → AH→ メモリ F C FF0003 F D F C FF0003 FF0002 F D FF0002 F E FF0001 F E FF0001 F F FF0000 F F FF0000 ×× 018003 ×× 018003 ×× 018002 F D 018002 ×× 018001 F E 018001 ×× 018000 F F 018000 AL → AH→ 実行前 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 実行後 219 第 8 章 命令細則 8.75 MOVSD (Move String Byte with Decrement) 8.75 F2MC-16FX ファミリ MOVSD (Move String Byte with Decrement) <source bank> で指定される空間の AL で示されるアドレスから , <destination bank> で指定される空間の AH で示されるアドレスへ , バイトデータを転送します。 RW0 で指定された回数だけ , アドレスを減少させながら転送を繰り返します。 RW0 がゼロであったときは転送は行いません。<destination bank>, <sourcebank> として PCB, DTB, ADB, SPB の 4 種が使用できます。省略時は自動的に DTB が設定されます。 転送中に割込みが生じた場合は , 転送を一時中断して割込み処理を行います。割込み処 理の終了のあと転送を再開します。 ● アセンブラ形式 MOVSD [<destination bank>] [,<source bank>] ● オペレーション RW0=0 となるまで ((AH)) ← ((AL)) 【バイト転送】 (AH) ← (AH)-1, (AL) ← (AL)-1 (RW0) ← (RW0)-1 を繰り返します。 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :RW0 がゼロのときに 1 サイクル , それ以外は 2 × RW0 サイクル 220 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.76 MOVSW, MOVSWI (Move String Word with Increment) F2MC-16FX ファミリ 8.76 MOVSW, MOVSWI (Move String Word with Increment) <source bank> で指定される空間の AL で示されるアドレスから , <destination bank> で指定される空間の AH で示されるアドレスへ , ワードデータを転送します。 RW0 で指定された回数だけ , アドレスを増加させながら転送を繰り返します。 RW0 がゼロであったときは転送は行いません。<destination bank>, <source bank> として PCB, DTB, ADB, SPB の 4 種が使用できます。省略時は , 自動的に DTB が設定されます。 転送中に割込みが生じた場合は , 転送を一時中断して割込み処理を行います。割込み処 理の終了のあと転送を再開します。 ● アセンブラ形式 MOVSW [<destination bank>] [,<source bank>] MOVSWI [<destination bank>] [,<source bank>] ● オペレーション RW0=0 となるまで ((AH)) ← ((AL)) 【ワード転送】 (AH) ← (AH)+2, (AL) ← (AL)+2 (RW0) ← (RW0)-1 を繰り返します。 ● CCR I S T N Z V C − − − − − − − 全フラグとも変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 : RW0 がゼロのときに 1 サイクル , それ以外は 2 × RW0 サイクル CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 221 第 8 章 命令細則 8.76 MOVSW, MOVSWI (Move String Word with Increment) F2MC-16FX ファミリ ● 実行例 MOVSW ,ADB この例では , ADB と AL で示されるアドレス (38A000H) から , DTB と AH で示される アドレス (CD0000H) へワードデータを転送します。 AH AH AL A 0 0 0 0 RWO 0 0 0 3 A 0 0 0 CCR ××××× AL A 0 0 0 6 RWO 0 0 0 0 A 0 CCR ××××× T N Z V C T N Z V C DTB C D DTB ADB 3 8 メモリ AH→ 0 6 C D ADB 3 8 AH→ メモリ ×× CD0005 2 6 CD0005 ×× CD0004 4 2 CD0004 ×× CD0003 3 6 CD0003 ×× CD0002 3 1 CD0002 ×× CD0001 4 D CD0001 ×× CD0000 4 6 CD0000 AL → AL → 2 6 38A005 2 6 38A005 4 2 38A004 4 2 38A004 3 6 38A003 3 6 38A003 3 1 38A002 3 1 38A002 4 D 38A001 4 D 38A001 4 6 38A000 4 6 38A000 実行前 222 FUJITSU MICROELECTRONICS LIMITED 実行後 CM44-00203-3 第 8 章 命令細則 8.77 MOVSWD (Move String Word with Decrement) F2MC-16FX ファミリ 8.77 MOVSWD (Move String Word with Decrement) <source bank> で指定される空間の AL で示されるアドレスから , <destination bank> で指定される空間の AH で示されるアドレスへ , ワードデータを転送します。 RW0 で指定された回数だけ , アドレスを減少させながら転送を繰り返します。 RW0 がゼロであったときは転送は行いません。<destination bank>, <source bank> として PCB, DTB, ADB, SPB の 4 種が使用できます。省略時は , 自動的に DTB が設定されます。 転送中に割込みが生じた場合は , 転送を一時中断して割込み処理を行います。割込み処 理の終了のあと転送を再開します。 ● アセンブラ形式 MOVSWD [<destination bank>] [,<source bank>] ● オペレーション RW0=0 となるまで ((AH)) ← ((AL)) 【ワード転送】 (AH) ← (AH)-2, (AL) ← (AL)-2 (RW0) ← (RW0)-1 を繰り返します。 ● CCR I S T N Z V C − − − − − − − 全フラグとも変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 : RW0 がゼロのときに 1 サイクル , それ以外は 2 × RW0 サイクル 奇数アドレス補正 : 転送先が奇数アドレスのとき RW0 サイクル , 転送元が奇数アド レスのとき RW0 サイクル , 転送先 , 転送元の両方が奇数アドレ スのときは 2 × RW0 サイクル CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 223 第 8 章 命令細則 8.78 MOVW (Move Word Data from Source to Accumulator) 8.78 F2MC-16FX ファミリ MOVW (Move Word Data from Source to Accumulator) AH に AL の値が転送されます。そのあと , AL に第 2 オペランドのワードデータが 転送されます。 第 2 オペランドが @A の場合は , AH への転送は行われません。 ● アセンブラ形式 MOVW A,#imm16 MOVW A,@RWi+disp8 MOVW A,@A MOVW A,addr16 MOVW A,@RLi+disp8 MOVW A,RWi MOVW A,SP MOVW A,dir MOVW A,io MOVW A,ear MOVW A,eam ● オペレーション (A) ← ( 第 2 オペランド ) 【ワード転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 第 1 オペランド 第 2 オペランド 224 A A A A A A A A A A A #imm16 @A @RLi+disp8 SP io @RWi+disp8 addr16 RWi dir ear eam バイト数 3 2 3 1 2 2 3 1 2 2 2+ サイクル数 1 1 1 1 1 1 1 1 1 1 1 奇数アドレス補正 0 1 1 0 1 1 1 0 1 0 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.78 MOVW (Move Word Data from Source to Accumulator) F2MC-16FX ファミリ ● 実行例 MOVW A,0F9A0H この例では , AL のワードデータ (4901H) を AH に転送したあと , F9A0H 番地のワード データ (AE86H) を AL に転送します。 AH A AL ×× ×× 4 9 AH 0 1 4 9 A E 0 1 8 6 CCR ××××× CCR × 1 0 ×× T N Z V C T N Z V C メモリ メモリ A E F9A1 A E F9A1 8 6 F9A0 8 6 F9A0 実行前 CM44-00203-3 A AL 実行後 FUJITSU MICROELECTRONICS LIMITED 225 第 8 章 命令細則 8.79 MOVW (Move Word Data from Accumulator to Destination) 8.79 F2MC-16FX ファミリ MOVW (Move Word Data from Accumulator to Destination) アキュムレータ (A) の下位ワードデータを第 1 オペランドへ転送します。 ● アセンブラ形式 MOVW @RLi+disp8,A MOVW addr16,A MOVW SP,A MOVW RWi,A MOVW io,A MOVW dir,A MOVW @RWi+disp8,A MOVW ear,A MOVW eam,A ● オペレーション ( 第 1 オペランド ) ← (A) 【ワード転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 226 第 1 オペランド dir @RLi+disp8 addr16 SP io @RWi+disp8 RWi ear eam 第 2 オペランド A A A A A A A A A バイト数 2 3 3 1 2 2 1 2 2+ サイクル数 1 1 1 1 1 1 1 1 1 奇数アドレス補正 1 1 1 0 1 1 0 0 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.79 MOVW (Move Word Data from Accumulator to Destination) F2MC-16FX ファミリ ● 実行例 MOVW RW0,A この例では , AL のワードデータ (0000H) を RW0 に転送します。 AH A AL ×× ×× 0 0 AH 0 0 ×× ×× RWO A AL ×× ×× RWO CCR ××××× CM44-00203-3 0 0 0 0 0 0 CCR × 0 1 ×× T N Z V C 実行前 0 0 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 227 第 8 章 命令細則 8.80 MOVW (Move Immediate Word Data to Destination) 8.80 F2MC-16FX ファミリ MOVW (Move Immediate Word Data to Destination) 16 ビットの即値データを第 1 オペランドに転送します。 第 1 オペランドが @PC+disp16 のときの転送先アドレスは「MOVW 命令の機械命令が 格納されているアドレス +4+disp16」となります。 「MOVW 命令の次の命令の機械命令 が格納されているアドレス +disp16」ではありません。 ● アセンブラ形式 MOVW ear,#imm16 MOVW eam,#imm16 ● オペレーション ( 第 1 オペランド ) ← imm16 ● CCR 転送先が汎用レジスタ (RW0 ∼ RW7) の場合 転送先が汎用レジスタ (RW0 ∼ RW7) 以外の場合 I S T N Z V C I S T N Z V C − − − * * − − − − − − − − − I, S, T −変化しません。 N −汎用レジスタ以外への転送であれば変化しません。汎用レジスタへの転送であれ ば , 転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z − 汎用レジスタ以外への転送であれば変化しません。汎用レジスタへの転送であれ ば , 転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。全フラグ変化しません。 ● バイト数 , サイクル数 第 1 オペランド 第 2 オペランド 228 ear eam #imm16 #imm16 バイト数 4 4+ サイクル数 2 2 奇数アドレス補正 0 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 8 章 命令細則 8.80 MOVW (Move Immediate Word Data to Destination) ● 実行例 MOVW RW0,#2343H この例では , 16 ビット即値データ (2343H) を RW0 に転送します。 CCR ××××× CCR × 0 0 ×× T N Z V C RWO ×× ×× 実行前 CM44-00203-3 T N Z V C RWO 2 3 4 3 実行後 FUJITSU MICROELECTRONICS LIMITED 229 第 8 章 命令細則 8.81 MOVW (Move Word Data from source to Destination) 8.81 F2MC-16FX ファミリ MOVW (Move Word Data from source to Destination) 第 2 オペランドで指定されたワードデータを第 1 オペランドへ転送します。 ● アセンブラ形式 MOVW RWi,#imm16 MOVW ear,RWi MOVW eam,RWi MOVW RWi,ear MOVW RWi,eam ● オペレーション ( 第 1 オペランド ) ← ( 第 2 オペランド ) 【ワード転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 230 第 1 オペランド RWi RWi RWi ear eam 第 2 オペランド #imm16 ear eam RWi RWi バイト数 3 2 2+ 2 2+ サイクル数 1 1 1 1 1 奇数アドレス補正 0 0 1 0 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.81 MOVW (Move Word Data from source to Destination) F2MC-16FX ファミリ ● 実行例 MOVW RW1,RW0 この例では , RW0 のワードデータ (004AH) を RW1 に転送します。 A AH AL ×× ×× ×× ×× A AH AL ×× ×× ×× ×× RWO 0 0 4 A RWO 0 0 4 A RW1 ×× ×× RW1 0 0 4 A CCR × 0 0 ×× CCR ××××× T N Z V C T N Z V C 実行前 CM44-00203-3 実行後 FUJITSU MICROELECTRONICS LIMITED 231 第 8 章 命令細則 8.82 MOVW (Move Immediate Word Data to io) 8.82 F2MC-16FX ファミリ MOVW (Move Immediate Word Data to io) 16 ビットの即値データを第 1 オペランドで示される I/O 領域に転送します。 ● アセンブラ形式 MOVW io,#imm16 ● オペレーション ( 第 1 オペランド ) ← imm16 【ワード転送】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :4 サイクル数 :1 奇数アドレス補正 :1 ● 実行例 MOVW 24H,#2343H この例では , 16 ビット即値データ (2343H) を , I/O 領域の 24H 番地にワード転送します。 232 CCR ××××× CCR ××××× T N Z V C T N Z V C メモリ メモリ ×× ×× ×× 000025 2 3 000025 ×× 000024 4 3 000024 ×× ×× 実行前 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.83 MOVW (Move Word Data from AH to Memory) F2MC-16FX ファミリ 8.83 MOVW (Move Word Data from AH to Memory) AH のワードデータを AL の内容によって示されるメモリへ転送します。 ● アセンブラ形式 MOVW @AL, AH ● オペレーション ((AL)) ← (AH) ( ワード転送 ) ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 奇数アドレス補正 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 233 第 8 章 命令細則 8.83 MOVW (Move Word Data from AH to Memory) F2MC-16FX ファミリ ● 実行例 MOVW @AL,AH この例では , AH のワードデータ (00CBH) を , AL で示されるアドレス (FEFFH) へ転送 します。 AH A 0 0 AL F E C B AH F F 0 0 AL F E C B F F CCR ××××× CCR × 1 0 ×× T N Z V C T N Z V C メモリ 7 1 メモリ FEFF 実行前 234 A C B FEFF 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.84 MOVX (Move Byte Data with Sign Extension from Source to Accumulator) F2MC-16FX ファミリ 8.84 MOVX (Move Byte Data with Sign Extension from Source to Accumulator) AH に AL の値が転送されます。そのあと , AL に , 第 2 オペランドのバイトデータを 符号拡張した , ワードデータが転送されます。 第 2 オペランドが @A の場合は , AH への転送は行われません。 ● アセンブラ形式 MOVX A,#imm8 MOVX A,@RWi+disp8 MOVX A,@A MOVX A,addr16 MOVX A,@RLi+disp8 MOVX A,Ri MOVX A,dir MOVX A,io MOVX A,ear MOVX A,eam ● オペレーション (A) ← ( 第 2 オペランド ) 【符号拡張付きバイト転送】 ● CCR I S T N Z V C − − − * * − − I, S, T −変化しません。 N −転送したデータの MSB が "1" ならばセット , それ以外はクリアされます。 Z −転送したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 第 1 オペランド A A A A 第 2 オペランド #imm8 @A @RLi+disp8 dir A A A A io @RWi+disp8 addr16 Ri A A ear eam バイト数 2 2 3 2 2 2 3 1 2 2+ サイクル数 1 1 1 1 1 1 1 1 1 1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 235 第 8 章 命令細則 8.84 MOVX (Move Byte Data with Sign Extension from Source to Accumulator) ● 実行例 F2MC-16FX ファミリ MOVX A,0E001H この例では , AL のワードデータ (A046H) を AH に転送したあと , E001H 番地のバイト データ (86H) を符号拡張したワードデータ (FF86H) を , AL に転送します。 AH A AL ×× ×× A 0 AH 4 6 A 0 F F 4 6 8 6 CCR ××××× CCR × 1 0 ×× T N Z V C T N Z V C メモリ 8 6 メモリ E001 実行前 236 A AL 8 6 E001 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.85 MUL (Multiply Byte Data of Accumulator) F2MC-16FX ファミリ 8.85 MUL (Multiply Byte Data of Accumulator) AH と AL の下位バイトデータを符号付き 2 進数として乗算し , 結果をアキュムレー タ (A) の AL へ戻します。 ● アセンブラ形式 MUL A ● オペレーション word(A) ← byte (AH) × byte (AL) 【バイト乗算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 : 2 サイクル数 : 4 ● 実行例 MUL A この例では , AH の下位バイトデータ (FAH) と , AL の下位バイトデータ (11H) を符号付 きで乗算します。乗算結果のワードデータ (FF9AH) を AL に設定します。 AH A 0 0 AL F A 0 0 1 1 A 0 0 AL F A F F 9 A CCR ××××× CCR ××××× T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 237 第 8 章 命令細則 8.86 MUL (Multiply Byte Data of Accumulator and Effective Address) 8.86 F2MC-16FX ファミリ MUL (Multiply Byte Data of Accumulator and Effective Address) アキュムレータ (A) と第 2 オペランドのバイトデータを符号付き 2 進数として乗算 し , 結果を A の bit0 ∼ bit15 に戻します。 ● アセンブラ形式 MUL A,ear MUL A,eam ● オペレーション word (A) ← byte (A) × byte (ea) 【バイト乗算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 238 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 4 5 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.86 MUL (Multiply Byte Data of Accumulator and Effective Address) F2MC-16FX ファミリ ● 実行例 MUL A,R7 この例では , AL の下位バイトデータ (85H) と , R7 のバイトデータ (A5H) を符号付きで 乗算します。乗算結果のワードデータ (2B89H) を AL に設定します。 AH A AL ×× ×× 0 0 8 5 R7 A 5 A AL ×× ×× 2 B B 9 R7 A 5 CCR ××××× CCR ××××× T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 239 第 8 章 命令細則 8.87 MULW (Multiply Word Data of Accumulator) 8.87 F2MC-16FX ファミリ MULW (Multiply Word Data of Accumulator) AH と AL のワードデータを符号付き 2 進数として乗算し , 結果のロングワードデー タをアキュムレータ (A) に戻します。 ● アセンブラ形式 MULW A ● オペレーション long (A) ← word (AH) × word (AL) 【ワード乗算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 : 2 サイクル数 : 6 ● 実行例 MULW A この例では , AH のワードデータ (AD01H) と , AL のワードデータ (05EDH) を符号付き で乗算します。乗算結果のロングワードデータをアキュムレータ (A) に設定します。 AH A A D AL 0 1 0 5 E D A F E AL 1 4 2 E E D CCR ××××× CCR ××××× T N Z V C T N Z V C 実行前 240 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.88 MULW (Multiply Word Data of Accumulator and Effective Address) F2MC-16FX ファミリ 8.88 MULW (Multiply Word Data of Accumulator and Effective Address) アキュムレータ (A) と第 2 オペランドのワードデータを符号付き 2 進数として乗算 し , 結果のロングワードデータを A に戻します。 ● アセンブラ形式 MULW A,ear MULW A,eam ● オペレーション long (A) ← word (A) × word ( 第 2 オペランド ) 【ワード乗算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 6 7 奇数アドレス補正 0 1 FUJITSU MICROELECTRONICS LIMITED 241 第 8 章 命令細則 8.88 MULW (Multiply Word Data of Accumulator and Effective Address) ● 実行例 F2MC-16FX ファミリ MULW A,RW5 この例では , AL のワードデータ (8342H) と , RW5 のワードデータ (4314H) を符号付き で乗算します。乗算結果のロングワードデータをアキュムレータ (A) に設定します。 AH A AL ×× ×× RW5 8 3 4 2 4 3 1 4 A D F AL 5 0 RW5 8 7 2 8 4 3 1 4 CCR ××××× CCR ××××× T N Z V C T N Z V C 実行前 242 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.89 MULU (Multiply Unsigned Byte Data of Accumulator) F2MC-16FX ファミリ 8.89 MULU (Multiply Unsigned Byte Data of Accumulator) AH と AL の下位バイトデータを符号なし 2 進数として乗算し , 結果をアキュムレー タ (A) の AL に戻します。 ● アセンブラ形式 MULU A ● オペレーション word (A) ← byte (AH) × byte (AL) 【バイト乗算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :2 ● 実行例 MULU A この例では , AH の下位バイトデータ (FAH) と , AL の下位バイトデータ (11H) を符号な し乗算します。乗算結果のワードデータ (109AH) を AL に設定します。 AH A 0 0 AL F A 0 0 1 1 A 0 0 AL F A 1 0 9 A CCR ××××× CCR ××××× T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 243 第 8 章 命令細則 8.90 MULU (Multiply Unsigned Byte Data of Accumulator and Effective Address) 8.90 F2MC-16FX ファミリ MULU (Multiply Unsigned Byte Data of Accumulator and Effective Address) アキュムレータ (A) と第 2 オペランドのバイトデータを符号なし 2 進数として乗算 し , 結果を A の bit0 ∼ bit15 に戻します。 ● アセンブラ形式 MULU A,ear MULU A,eam ● オペレーション word (A) ← byte (A) × byte ( 第 2 オペランド ) 【バイト乗算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 244 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 2 3 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.90 MULU (Multiply Unsigned Byte Data of Accumulator and Effective Address) F2MC-16FX ファミリ ● 実行例 MULU A,R7 この例では , AL の下位バイトデータ (85H) と , R7 のバイトデータ (A5H) を符号なし乗 算します。乗算結果のワードデータ (55B9H) を AL に設定します。 AH A AL ×× ×× 0 0 8 5 R7 A 5 A AL ×× ×× 5 5 B 9 R7 A 5 CCR ××××× CCR ××××× T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 245 第 8 章 命令細則 8.91 MULUW (Multiply Unsigned Word Data of Accumulator) 8.91 F2MC-16FX ファミリ MULUW (Multiply Unsigned Word Data of Accumulator) AH と AL のワードデータを符号なし 2 進数として乗算し , 結果のロングワードデー タをアキュムレータ (A) に戻します。 ● アセンブラ形式 MULUW A ● オペレーション long (A) ← word (AH) × word (AL) 【ワード乗算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :4 ● 実行例 MULUW A この例では , AH のワードデータ (AD01H) と , AL のワードデータ (05EDH) を符号なし で乗算します。乗算結果のロングワードデータをアキュムレータ (A) に設定します。 AH A A D AL 0 1 0 5 E D A 0 4 AL 0 1 2 E E D CCR ××××× CCR ××××× T N Z V C T N Z V C 実行前 246 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 8.92 第 8 章 命令細則 8.92 MULUW (Multiply Unsigned Word Data of Accumulator and Effective Address) MULUW (Multiply Unsigned Word Data of Accumulator and Effective Address) アキュムレータ (A) と第 2 オペランドのワードデータを符号なし 2 進数として乗算 し , 結果のロングワードデータを A に戻します。 ● アセンブラ形式 MULUW A,ear MULUW A,eam ● オペレーション long (A) ← word (A) × word ( 第 2 オペランド ) 【ワード乗算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 4 5 奇数アドレス補正 0 1 ● 実行例 MULUW A,RW5 この例では , AL のワードデータ (8342H) と , RW5 のワードデータ (4314H) を符号なし で乗算します。乗算結果のロングワードデータをアキュムレータ (A) に設定します。 AH A RW5 AL AH ×× ×× 8 3 4 3 CCR ××××× 1 4 4 2 AL A 2 2 6 4 RW5 4 3 1 4 8 7 T N Z V C 実行前 CM44-00203-3 2 8 CCR ××××× T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 247 第 8 章 命令細則 8.93 NEG (Negate Byte Data of Destination) 8.93 F2MC-16FX ファミリ NEG (Negate Byte Data of Destination) オペランドで指定されたバイトデータの 2 の補数をとり , 結果をオペランドへ戻し ます。オペランドがアキュムレータ (A) の場合は AL の上位バイトには演算結果を符 号拡張した値が転送されます。 ● アセンブラ形式 NEG A NEG ear NEG eam ● オペレーション ( オペランド ) ← 0 − ( オペランド ) 【バイト演算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 248 オペランド A ear eam バイト数 1 2 2+ サイクル数 1 1 3 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 第 8 章 命令細則 8.93 NEG (Negate Byte Data of Destination) ● 実行例 NEG R0 この例では , R0 のバイトデータ (59H) の 2 の補数を求めます。 R0 R0 A 7 CCR ××××× CCR × 1 0 0 1 T N Z V C T N Z V C 実行前 CM44-00203-3 5 9 実行後 FUJITSU MICROELECTRONICS LIMITED 249 第 8 章 命令細則 8.94 NEGW (Negate Word Data of Destination) 8.94 F2MC-16FX ファミリ NEGW (Negate Word Data of Destination) オペランドで指定されたワードデータの 2 の補数をとり , 結果をオペランドへ戻し ます。 ● アセンブラ形式 NEGW A NEGW ear NEGW eam ● オペレーション ( オペランド ) ← 0 − ( オペランド ) 【ワード演算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 250 オペランド A ear eam バイト数 1 2 2+ サイクル数 1 1 3 奇数アドレス補正 0 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.94 NEGW (Negate Word Data of Destination) F2MC-16FX ファミリ ● 実行例 NEGW A この例では , AL のワードデータ (AB98H) の 2 の補数を求めます。 AH A ×× ×× CM44-00203-3 AL A B AH 9 8 A AL ×× ×× 5 4 6 8 CCR ××××× CCR × 0 0 0 1 T N Z V C 実行前 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 251 第 8 章 命令細則 8.95 NOP (No Operation) 8.95 F2MC-16FX ファミリ NOP (No Operation) 何の動作も行いません。 ● アセンブラ形式 NOP ● オペレーション 何の動作も行いません。 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 NOP NOP 命令では , 何も動作をしません。 A AH AL ×× ×× ×× ×× PC F 0 A AH AL ×× ×× ×× ×× 0 0 PC CCR ××××× メモリ PC → 0 1 CCR ××××× T N Z V C T N Z V C メモリ ×× F001 0 0 F000 PC → 実行前 252 F 0 FUJITSU MICROELECTRONICS LIMITED ×× F001 0 0 F000 実行後 CM44-00203-3 第 8 章 命令細則 8.96 NOT (Not Byte Data of Destination) F2MC-16FX ファミリ 8.96 NOT (Not Byte Data of Destination) オペランドで指定されたバイトデータの論理否定をとり , 結果をオペランドへ戻し ます。 ● アセンブラ形式 NOT A NOT ear NOT eam ● オペレーション ( オペランド ) ← not ( オペランド ) 【バイト論理否定】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 オペランド A ear eam バイト数 1 2 2+ サイクル数 1 1 3 FUJITSU MICROELECTRONICS LIMITED 253 第 8 章 命令細則 8.96 NOT (Not Byte Data of Destination) F2MC-16FX ファミリ ● 実行例 NOT 0071H この例では , 0071H 番地のバイトデータ (FFH) のビットごとに反転します。 A AH AL ×× ×× ×× ×× A AH AL ×× ×× ×× ×× CCR ××××× メモリ F F T N Z V C T N Z V C メモリ 0071 実行前 254 CCR × 0 1 0 × FUJITSU MICROELECTRONICS LIMITED 0 0 0071 実行後 CM44-00203-3 第 8 章 命令細則 8.97 NOTW (Not Word Data of Destination) F2MC-16FX ファミリ 8.97 NOTW (Not Word Data of Destination) オペランドで指定されたワードデータの論理否定をとり , 結果をオペランドへ戻し ます。 ● アセンブラ形式 NOTW A NOTW ear NOTW eam ● オペレーション ( オペランド ) ← not( オペランド ) 【ワード論理否定】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 オペランド A ear eam バイト数 1 2 2+ サイクル数 1 1 3 奇数アドレス補正 0 0 2 FUJITSU MICROELECTRONICS LIMITED 255 第 8 章 命令細則 8.97 NOTW (Not Word Data of Destination) F2MC-16FX ファミリ ● 実行例 NOTW RW3 この例では , RW3 のワードデータ (258BH) をビットごとに反転します。 RW3 256 2 5 8 B RW3 D A 7 4 CCR ××××× CCR × 1 0 0 × T N Z V C T N Z V C 実行前 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.98 NRML (NORMALIZE Long Word) F2MC-16FX ファミリ 8.98 NRML (NORMALIZE Long Word) アキュムレータ (A) のロングワードデータがゼロでないとき , アキュムレータ (A) の 最上位ビットが "1" になるまで左にシフトします。 R0 にそのときのシフト回数が入り , ゼロフラグ (Z) はクリアされます。 アキュムレータ (A) のロングワードデータがゼロのとき , R0 にゼロが入り , ゼロフラ グ (Z) はセットされます。 ● アセンブラ形式 NRML A,R0 ● オペレーション A ≠ 0 のとき……A の最上位ビットが "1" になるまで左にシフトします。 (R0) ←そのときのシフト回数 , Z ← "0" A=0 のとき……(R0) ← 0, Z ← "1" ● CCR I S T N Z V C − − − − * − − I, S, T, N −変化しません。 Z − A がゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 257 第 8 章 命令細則 8.98 NRML (NORMALIZE Long Word) F2MC-16FX ファミリ ● 実行例 NRML A,R0 この例では , アキュムレータ (A) のロングワードデータ (00008361H) を 16 ビット左シ フトします。R0 にシフトしたビット数 (10H) を設定します。 AH A 0 0 AL 0 0 8 3 6 1 RO 3 4 A 8 3 AL 6 1 0 0 0 0 RO 1 0 CCR ××××× CCR ×× 0 ×× T N Z V C T N Z V C 実行前 258 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 8.99 第 8 章 命令細則 8.99 OR (Or Byte Data of Destination and Source to Destination) OR (Or Byte Data of Destination and Source to Destination) 第 1 オペランドと第 2 オペランドのバイトデータで論理和演算を行い , 結果を第 1 オペランドに戻します。 ● アセンブラ形式 OR A,#imm8 OR A,ear OR A,eam OR ear,A OR eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド )or( 第 2 オペランド ) 【バイト論理和】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A A ear eam 第 2 オペランド #imm8 ear eam A A バイト数 2 2 2+ 2 2+ サイクル数 1 1 2 1 3 FUJITSU MICROELECTRONICS LIMITED 259 第 8 章 命令細則 8.99 OR (Or Byte Data of Destination and Source to Destination) F2MC-16FX ファミリ ● 実行例 OR 0052H,A この例では , 0052H 番地のバイトデータと , AL の下位バイトデータ (37H) を論理和演算 (OR) します。 AH A AL 0 0 ×× ×× AH 3 7 A F A 3 7 CCR × 1 0 0 × T N Z V C T N Z V C メモリ 0052 実行前 260 0 0 ×× ×× CCR ××××× メモリ AL FUJITSU MICROELECTRONICS LIMITED F F 0052 実行後 CM44-00203-3 F2MC-16FX ファミリ 8.100 第 8 章 命令細則 8.100 OR (Or Byte Data of Immediate Data and Condition Code Register to Condition Code Register) OR (Or Byte Data of Immediate Data and Condition Code Register to Condition Code Register) コンディションコードレジスタ (CCR) のバイトデータと指定された 8 ビットの即値 データで論理和演算を行い , 結果をコンディションコードレジスタ (CCR) に戻しま す。 コンディションコードレジスタ (CCR) は 7 ビットしかないため , 即値データの bit7 は 無視されます。 ● アセンブラ形式 OR CCR,#imm8 ● オペレーション (CCR) ← (CCR) or imm8 【バイト論理和】 ● CCR I S T N Z V C * * * * * * * I −演算結果の bit6 が入ります。 S −演算結果の bit5 が入ります。 T −演算結果の bit4 が入ります。 N −演算結果の bit3 が入ります。 Z −演算結果の bit2 が入ります。 V −演算結果の bit1 が入ります。 C −演算結果の bit0 が入ります。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 261 第 8 章 命令細則 8.100 OR (Or Byte Data of Immediate Data and Condition Code Register to Condition Code Register) ● 実行例 F2MC-16FX ファミリ OR CCR,#57H この例では , CCR と , 8 ビット即値データ (57H) の bit6 ∼ bit0 を論理和演算 (OR) します。 AH A CCR AL ×× ×× AH ×× ×× A I S T N Z V C 0 1 1 0 1 0 1 CCR AL ×× ×× ×× ×× I S T N Z V C 1 1 1 0 1 1 1 ILM2 ILM1 ILM0 ILM × × MSB RP × 実行前 262 × LSB × × × ILM2 ILM1 ILM0 × ILM × × MSB RP × × LSB × × × × 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.101 ORL (Or Long Word Data of Destination and Source to Destination ) F2MC-16FX ファミリ 8.101 ORL (Or Long Word Data of Destination and Source to Destination ) アキュムレータ (A) のロングワードデータと第 2 オペランドのロングワードデータ で論理和演算を行い , 結果を A に戻します。 ● アセンブラ形式 ORL A,ear ORL A,eam ● オペレーション (A) ← (A) or ( 第 2 オペランド ) 【ロングワード論理和】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 2 3 奇数アドレス補正 0 1 FUJITSU MICROELECTRONICS LIMITED 263 第 8 章 命令細則 8.101 ORL (Or Long Word Data of Destination and Source to Destination ) ● 実行例 F2MC-16FX ファミリ ORL A,0FFF0H この例では , アキュムレータ (A) のロングワードデータ (725DF05CH) と , FFF0H 番地の ロングワードデータ (FF55AA00H) を論理和演算 (OR) します。 AH A 7 2 AL 5 D F 0 AH 5 C F F 5 D F A 5 C CCR ××××× CCR × 1 0 0 × T N Z V C T N Z V C メモリ メモリ F F FFF3 F F FFF3 5 5 FFF2 5 5 FFF2 A A FFF1 A A FFF1 0 0 FFF0 0 0 FFF0 実行前 264 A AL 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.102 ORW (Or Word Data of AH and AL to AL) F2MC-16FX ファミリ 8.102 ORW (Or Word Data of AH and AL to AL) AH と AL のワードデータで論理和演算を行い , 結果を AL に戻します。 ● アセンブラ形式 ORW A ● オペレーション (AL) ← (AH) or (AL) 【ワード論理和】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 ORW A この例では , AL のワードデータ (AB98H) と , AH のワードデータ (0426H) を論理和演算 (OR) します。 AH A 0 4 AL 2 6 A B A 0 4 AL 2 6 A F B E CCR ××××× CCR × 1 0 0 × T N Z V C T N Z V C 実行前 CM44-00203-3 AH 9 8 実行後 FUJITSU MICROELECTRONICS LIMITED 265 第 8 章 命令細則 8.103 ORW (Or Word Data of Destination and Source to Destination) 8.103 F2MC-16FX ファミリ ORW (Or Word Data of Destination and Source to Destination) 第 1 オペランドと第 2 オペランドのワードデータで論理和演算を行い , 結果を第 1 オペランドに戻します。 ● アセンブラ形式 ORW A,#imm16 ORW A,ear ORW A,eam ORW ear,A ORW eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド ) or ( 第 2 オペランド ) 【ワード論理和】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 266 第 1 オペランド A A A ear eam 第 2 オペランド #imm16 ear eam A A バイト数 3 2 2+ 2 2+ サイクル数 1 1 2 1 3 奇数アドレス補正 0 0 1 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.103 ORW (Or Word Data of Destination and Source to Destination) F2MC-16FX ファミリ ● 実行例 ORW 0E001H,A この例では , E001H 番地のワードデータ (4283H) と , AL のワードデータ (5963H) を論理 和演算 (OR) します。 AH A AL 5 9 ×× ×× AH 6 3 A ×× ×× CCR ××××× メモリ 5 9 6 3 CCR × 1 0 0 × T N Z V C T N Z V C メモリ 8 3 E002 D B E002 4 2 E001 6 3 E001 実行前 CM44-00203-3 AL FUJITSU MICROELECTRONICS LIMITED 実行後 267 第 8 章 命令細則 8.104 POPW (Pop Word Data of Accumulator from Stack Memory) 8.104 F2MC-16FX ファミリ POPW (Pop Word Data of Accumulator from Stack Memory) AH に AL の値が転送されます。そのあと , AL にスタックポインタ (SP) で示される メモリのワードデータが転送されます。データの転送後 , SP の値 ( ワードデータ ) に 0002H をワード加算します。 ● アセンブラ形式 POPW A ● オペレーション (A) ← ((SP)) 【ワード転送】 (SP) ← (SP)+2 【ワード加算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 奇数アドレス補正 :1 268 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.104 POPW (Pop Word Data of Accumulator from Stack Memory) F2MC-16FX ファミリ ● 実行例 POPW A この例では , AL のワードデータ (1635H) を AH に転送したあと , SP で示されるアドレ ス (0120H) のワードデータ (10ACH) を AL に転送します。SP に 2 を加算します。 AH 0 4 A AL 2 2 SP AH 1 6 3 5 0 1 2 0 A 1 6 AL 3 5 SP CCR ××××× T N Z V C 0 1 2 2 T N Z V C メモリ 0122 0122 SP → 1 0 0121 1 0 0121 A C 0120 A C 0120 実行前 CM44-00203-3 A C CCR ××××× メモリ SP → 1 0 実行後 FUJITSU MICROELECTRONICS LIMITED 269 第 8 章 命令細則 8.105 POPW (Pop Word Data of AH from Stack Memory) 8.105 F2MC-16FX ファミリ POPW (Pop Word Data of AH from Stack Memory) スタックポインタ (SP) で示されるメモリからワードデータを AH へ転送します。そ の後 , SP の値 ( ワードデータ ) に 0002H をワード加算します。 ● アセンブラ形式 POPW AH ● オペレーション (AH) ← ((SP)) 【ワード転送】 (SP) ← (SP)+2 【ワード加算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 奇数アドレス補正 :1 270 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.105 POPW (Pop Word Data of AH from Stack Memory) F2MC-16FX ファミリ ● 実行例 POPW AH この例では , SP で示されるアドレス (0120H) のワードデータ (4314H) を AH に転送しま す。SP に 2 を加算します。 AH 0 4 A AL 2 2 SP AH 1 6 3 5 0 1 2 0 A 4 3 AL 1 4 SP CCR ××××× T N Z V C 0 1 2 2 T N Z V C メモリ 0122 0122 SP → 4 3 0121 4 3 0121 1 4 0120 1 4 0120 実行前 CM44-00203-3 3 5 CCR ××××× メモリ SP → 1 6 実行後 FUJITSU MICROELECTRONICS LIMITED 271 第 8 章 命令細則 8.106 POPW (Pop Word Data of Program Status from Stack Memory) 8.106 F2MC-16FX ファミリ POPW (Pop Word Data of Program Status from Stack Memory) スタックポインタ (SP) で示されるメモリからワードデータをプロセッサステータス (PS) へ転送します。ただし , ワードデータの bit7 は無視されます。その後 , SP の値 ( ワードデータ ) に 0002H をワード加算します。 ● アセンブラ形式 POPW PS ● オペレーション (PS) ← ((SP)) 【ワード転送】 (SP) ← (SP)+2 【ワード加算】 ● CCR I S T N Z V C * * * * * * * スタックメモリの対応するビットの値が転送されます。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :PR の内容が変化するときは 19, それ以外は 4 奇数アドレス補正 :1 272 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.106 POPW (Pop Word Data of Program Status from Stack Memory) F2MC-16FX ファミリ ● 実行例 POPW PS この例では , SP で示されるアドレス (0120H) のワードデータ (4314H) を PS に転送しま す。SP に 2 を加算します。 SP CCR × 2 0 SP I S T N Z V C × × × × × × × MSB ILM2 ILM1 ILM0 ILM 0 1 × × RP × CCR LSB × × × × 0 S T N Z V C 0 0 1 0 1 0 0 1 0122 RP 0 0 LSB 0 0 1 1 0122 SP → 4 3 0121 4 3 0121 1 4 0120 1 4 0120 実行前 CM44-00203-3 MSB メモリ メモリ SP → 2 2 I ILM2 ILM1 ILM0 ILM 0 1 実行後 FUJITSU MICROELECTRONICS LIMITED 273 第 8 章 命令細則 8.107 POPW (Pop Registers from Stack Memory) 8.107 F2MC-16FX ファミリ POPW (Pop Registers from Stack Memory) レジスタリスト (rlst) で示された複数の汎用ワードレジスタに , スタックポインタ (SP) で示されるデータを転送します。 アセンブラ表記上はレジスタリストとしてレジスタ名を列挙しますが , アセンブル後 にレジスタリストはバイトデータとなります。 ● アセンブラ形式 POPW rlst ● オペレーション (RWx) ← ((SP)) 【ワード転送】 (SP) ← (SP)+2 【ワード加算】 これを rlst で示されたレジスタの数だけ繰り返します。 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :( 転送する回数 ) 奇数アドレス補正 :( 転送する回数 ) 274 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.107 POPW (Pop Registers from Stack Memory) F2MC-16FX ファミリ ● 実行例 POPW (RW0,RW4) この例では , SP で示されるスタックから RW0 と RW4 をポップします。 SP 3 4 F A SP × × × × RW0 0 2 0 1 RW1 × × × × RW1 × × × × RW2 × × × × RW2 × × × × RW3 × × × × RW3 × × × × RW4 × × × × RW4 0 4 0 3 RW5 × × × × RW5 × × × × RW6 × × × × RW6 × × × × RW7 × × × × RW7 × × × × メモリ 34FE 34FE SP → 0 4 34FD 0 4 34FD 0 3 34FC 0 3 34FC 0 2 34FB 0 2 34FB 0 1 34FA 0 1 34FA 実行前 CM44-00203-3 F E RW0 メモリ SP → 3 4 実行後 FUJITSU MICROELECTRONICS LIMITED 275 第 8 章 命令細則 8.108 PUSHW (Push Word Data of Inherent Register to Stack Memory) 8.108 F2MC-16FX ファミリ PUSHW (Push Word Data of Inherent Register to Stack Memory) スタックポインタ (SP) の値から 2 をワードで減算し , その結果の SP で示されるメ モリへレジスタのワードデータを転送します。 ● アセンブラ形式 PUSHW A PUSHW AH PUSHW PS ● オペレーション (SP) ← (SP) − 2 【ワード減算】 ((SP)) ← ( オペランド ) 【ワード転送】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 276 オペランド A AH PS バイト数 1 1 1 サイクル数 1 1 1 奇数アドレス補正 1 1 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.108 PUSHW (Push Word Data of Inherent Register to Stack Memory) F2MC-16FX ファミリ ● 実行例 PUSHW A この例では , SP から 2 を減算したあと , AL のワードデータを SP で示されるアドレス (0120H) へ転送します。 AH A AL ×× ×× SP AH 4 5 A 4 0 1 2 2 A AL ×× ×× SP CCR ××××× T N Z V C CM44-00203-3 0 1 2 0 T N Z V C メモリ 0122 × × 0121 × × 0120 実行前 A 4 CCR ××××× メモリ SP → 4 5 0122 SP → 4 5 0121 A 4 0120 実行後 FUJITSU MICROELECTRONICS LIMITED 277 第 8 章 命令細則 8.109 PUSHW (Push Registers to Stack Memory) 8.109 F2MC-16FX ファミリ PUSHW (Push Registers to Stack Memory) レジスタリスト (rlst) で示された複数の汎用ワードレジスタの内容を , スタックポイ ンタ (SP) で示されるメモリへ転送します。 アセンブラ表記上はレジスタリストとしてレジスタ名を列挙しますが , アセンブル後 にレジスタリストはバイトデータとなります。 ● アセンブラ形式 PUSHW rlst ● オペレーション (SP) ← (SP) − 2 【ワード減算】 ((SP)) ← (RWx) 【ワード転送】 これを rlst で示されたレジスタの数だけ繰り返します。 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :2 サイクル数 :( 転送する回数 ) 奇数アドレス補正 :( 転送する回数 ) 278 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.109 PUSHW (Push Registers to Stack Memory) F2MC-16FX ファミリ ● 実行例 PUSHW (RW1,RW3) この例では , SP で示されるスタックに RW3 と RW1 をプッシュします。 SP 3 4 F E SP F A RW0 × × × × RW0 × × × × RW1 3 5 A 4 RW1 3 5 A 4 RW2 × × × × RW2 × × × × RW3 6 D F 0 RW3 6 D F 0 RW4 × × × × RW4 × × × × RW5 × × × × RW5 × × × × RW6 × × × × RW6 × × × × RW7 × × × × RW7 × × × × メモリ メモリ 34FE SP → 34FE × × 34FD 6 D 34FD × × 34FC F 0 34FC × × 34FB 3 5 34FB × × 34FA A 4 34FA 実行前 CM44-00203-3 3 4 SP → 実行後 FUJITSU MICROELECTRONICS LIMITED 279 第 8 章 命令細則 8.110 RET (Return from Subroutine) 8.110 F2MC-16FX ファミリ RET (Return from Subroutine) スタックポインタ (SP) で示されるアドレスへ分岐します。 サブルーチン呼び出し命令 (CALL, CALLV) と対で使用すると , 分岐先の処理が終了し たあと , サブルーチン読出し命令の次の命令に戻ります。 ● アセンブラ形式 RET ● オペレーション (PC) ← ((SP)) 【ワード転送】 (SP) ← (SP)+2 【ワード加算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :4 奇数アドレス補正 :1 280 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.110 RET (Return from Subroutine) F2MC-16FX ファミリ ● 実行例 RET この例では , SP で示されるアドレス (0062H) のワードデータ (FC22H) を , PC に設定し ます。SP に 2 を加算します。 SP 0 0 6 2 SP 0 0 6 4 PC F 0 0 2 PC F C 2 2 メモリ メモリ 0064 SP → F C 0063 F C 0063 2 2 0062 2 2 0062 実行前 CM44-00203-3 0064 SP → 実行後 FUJITSU MICROELECTRONICS LIMITED 281 第 8 章 命令細則 8.111 RETI (Return from Interrupt) 8.111 F2MC-16FX ファミリ RETI (Return from Interrupt) システムスタックポインタ (SSP) で示されるメモリの内容をプロセッサステータス (PS) に復帰し , IF, ILM による割込み要求の検出を行います。 次の割込み受付けの場合には検出した割込みベクタへの分岐を行い , 次の割込み受付 けでない場合には割込みからの復帰を行います。 ● アセンブラ形式 RETI ● オペレーション 1) 次の割込み受付けの場合 (PS) ← ((SSP)) (S) ← 1, (PCB), (PC) ← 割込みベクタアドレス (ILM) ← 受け付けた割込みレベル DTB, PCB, DPR, ADB, AL, AH の復帰は行いません。 2) 次の割込みからの復帰の場合 282 (PS) ← ((SSP)), (SSP) ← (SSP)+2; (PC) ← ((SSP)), (SSP) ← (SSP)+2; (DTB), (PCB) ← ((SSP)), (SSP) ← (SSP)+2; (DPR), (ADB) ← ((SSP)), (SSP) ← (SSP)+2; (AL) ← ((SSP)), (SSP) ← (SSP)+2; (AH) ← ((SSP)), (SSP) ← (SSP)+2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.111 RETI (Return from Interrupt) F2MC-16FX ファミリ ● CCR 1) 次の割込み受付けの場合 I S T N Z V C * S * * * * * I −待避されていた I の値に復帰します。 S −セットされます。 T −待避されていた T の値に復帰します。 N −待避されていた N の値に復帰します。 Z −待避されていた Z の値に復帰します。 V −待避されていた V の値に復帰します。 C −待避されていた C の値に復帰します。 2) 次の割込みからの復帰の場合 I S T N Z V C * * * * * * * I −待避されていた I の値に復帰します。 S −待避されていた S の値に復帰します。 T −待避されていた T の値に復帰します。 N −待避されていた N の値に復帰します。 Z −待避されていた Z の値に復帰します。 V −待避されていた V の値に復帰します。 C −待避されていた C の値に復帰します。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :PR の内容が変化するときは 23, それ以外は 6 奇数アドレス補正 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 283 第 8 章 命令細則 8.111 RETI (Return from Interrupt) F2MC-16FX ファミリ ● 実行例 RETI( 割込みから復帰の場合 ) この例では , SSB と SP で示されるアドレス (037FF4H) から , ワードデータを各レジス タに転送します。レジスタへの転送毎に , SP に 2 を加算します。 AH A AH AL A ×××× ×××× F F F F D D C C DTB PCB PC DTB PCB ×× ×× ×× ×× 9 9 8 8 DPR ADB DPR ADB ×× ×× CCR B B A A CCR ILM RP I S T N Z V C ILM RP I S T N Z V C ×× ×× ××××××× 0 3 0 1 0 0 0 0 0 0 0 SSB SSP SSB 0 3 SSP 7 F 7 7 8 0 6 6 0 0 メモリ 038000 SSP → PC 0 3 F 4 メモリ 038000 SSP → FF 037FFF FF 037FFF EE 037FFE EE 037FFE DD 037FFD DD 037FFD CC 037FFC CC 037FFC BB 037FFB BB 037FFB AA 037FFA AA 037FFA 99 037FF9 99 037FF9 88 037FF8 88 037FF8 77 037FF7 77 037FF7 66 037FF6 66 037FF6 61 037FF5 61 037FF5 80 037FF4 80 037FF4 実行前 284 AL 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.112 RETP (Return from physical Address) F2MC-16FX ファミリ 8.112 RETP (Return from physical Address) スタックポインタ (SP) で示される物理アドレスへ分岐します。 CALLP 命令と対で使用すると , 分岐先の処理が終了したあと , CALLP 命令の次の命令 に戻ります。 ● アセンブラ形式 RETP ● オペレーション (PC) ← ((SP)), (SP) ← (SP) + 2 【ワード加算】 (PCB) ← ((SP)) 【バイト転送】, (SP) ← (SP) + 2 【ワード加算】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :5 奇数アドレス補正 :1 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 285 第 8 章 命令細則 8.112 RETP (Return from physical Address) F2MC-16FX ファミリ ● 実行例 RETP この例では , USB と SP で示されるスタックから PC と PCB をポップして , AD4345H 番 地に分岐します。 PC 2 2 F C SP F 8 0 8 PCB CCR USB F C PC 4 3 4 5 PCB 1 5 SP A D CCR × 0 ××××× 1 5 × 0 ××××× メモリ ×× 15F900 15F8FF 0 0 15F8FF A D 15F8FE A D 15F8FE 4 3 15F8FD 4 3 15F8FD 4 5 15F8FC 4 5 15F8FC ×× 15F900 0 0 実行前 286 USB 0 0 I S T N Z V C I S T N Z V C メモリ SP → F 9 SP → 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.113 ROLC (Rotate Byte Data of Accumulator With Carry to Left) F2MC-16FX ファミリ 8.113 ROLC (Rotate Byte Data of Accumulator With Carry to Left) オペランドのバイトデータを 1 ビットだけ , キャリフラグ (C) も含めて左へローテー ト ( 回転 ) シフトします。オペランドの最上位ビットはキャリフラグ (C) に入りま す。 ● アセンブラ形式 ROLC A ROLC ear ROLC eam ● オペレーション MSB LSB C A or オペランド ● CCR I S T N Z V C − − − * * − * I, S, T −変化しません。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C − A の MSB からシフトアウトしたビット値が入ります。 ● バイト数 , サイクル数 CM44-00203-3 オペランド A ear eam バイト数 2 2 2+ サイクル数 1 1 3 FUJITSU MICROELECTRONICS LIMITED 287 第 8 章 命令細則 8.113 ROLC (Rotate Byte Data of Accumulator With Carry to Left) ● 実行例 F2MC-16FX ファミリ ROLC A この例では , AL の下位バイトデータ (32H) と C フラグ ("0") を , 左へローテートします。 AH A AL ×× ×× ×× 3 2 A AL ×× ×× ×× 6 4 CCR ×××× 0 CCR × 0 0 × 0 T N Z V C T N Z V C 実行前 288 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.114 RORC (Rotate Byte Data of Accumulator With Carry to Right) F2MC-16FX ファミリ 8.114 RORC (Rotate Byte Data of Accumulator With Carry to Right) オペランドのバイトデータをキャリフラグ (C) も含めて 1 ビット右へローテート ( 回 転 ) シフトします。オペランドの最下位ビットはキャリフラグ (C) に入ります。 ● アセンブラ形式 RORC A RORC ear RORC eam ● オペレーション MSB LSB C A or オペランド ● CCR I S T N Z V C − − − * * − * I, S, T −変化しません。 N −シフト結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −シフト結果がゼロならばセット , それ以外はクリアされます。 V −変化しません。 C − A の LSB からシフトアウトしたビット値が入ります。 ● バイト数 , サイクル数 CM44-00203-3 オペランド A ear eam バイト数 2 2 2+ サイクル数 1 1 3 FUJITSU MICROELECTRONICS LIMITED 289 第 8 章 命令細則 8.114 RORC (Rotate Byte Data of Accumulator With Carry to Right) ● 実行例 F2MC-16FX ファミリ RORC A この例では , AL の下位バイトデータ (32H) と C フラグ ("0") を , 右へローテートします。 A ×× ×× ×× A ×× ×× ×× 1 9 CCR ×××× 0 CCR × 0 0 × 0 T N Z V C T N Z V C 実行前 290 3 2 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.115 SBBS (Set Bit and Branch if Bit Set) F2MC-16FX ファミリ 8.115 SBBS (Set Bit and Branch if Bit Set) 第 1 オペランドで示されるビットデータが "1" のとき分岐します。 分岐先アドレスは , SBBS 命令の次の命令のアドレスと第 2 オペランドを符号拡張した 値をワード加算した番地となります。 命令実行後 , 第 1 オペランドで示されるビットは "1" にセットされます。 ● アセンブラ形式 SBBS addr16:bp,rel ● オペレーション 条件成立時……(PC) ← (PC) + < バイト数 > + rel 【ワード加算】, (addr16:bp) ← 1 条件不成立時……(PC) ← (PC) + < バイト数 > 【ワード加算】, (addr16:bp) ← 1 ● CCR I S T N Z V C − − − − * − − I, S, T, N −変化しません。 Z −ビットデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :5 サイクル数 :5 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 291 第 8 章 命令細則 8.115 SBBS (Set Bit and Branch if Bit Set) F2MC-16FX ファミリ ● 実行例 SBBS 1234H:5,20H この例では , 1234H 番地のバイトデータ (7FH) の bit7 が "1" なので , bit7 を "1" に設定し てから , 分岐します ( 条件成立時 )。 PC E 1 0 0 E 1 2 5 メモリ メモリ × × × × 7 F 292 PC 1234 7 F × × × × 実行前 実行後 FUJITSU MICROELECTRONICS LIMITED 1234 CM44-00203-3 第 8 章 命令細則 8.116 SCEQ, SCEQI (Scan String Byte until equal with Increment) F2MC-16FX ファミリ 8.116 SCEQ, SCEQI (Scan String Byte until equal with Increment) <bank> で指定される空間の AH で示されるバイトデータと AL 中のデータを比較し ます。比較結果が一致するか , または RW0 がゼロとなるまで , アドレスのインクリ メント , RW0 のデクリメントを繰り返します。 <bank> として PCB, DTB, ADB, SPB の 4 種類が指定可能です。省略時は , 自動的に DTB が設定されます。 RW0 がゼロであった場合は比較は行いません。また , 命令実行中に割込みが発生する と命令の実行を一時中断して割込み処理を行い , 割込み処理が終了したあとで続きを 再開します。 ● アセンブラ形式 SCEQ [<bank>] SCEQI [<bank>] ● オペレーション RW0=0 もしくは ((AH))=(AL) 【バイト比較】になるまで (AH) ← (AH) + 1 (RW0) ← (RW0) − 1 を繰り返します。 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算結果の MSB が "1" ならばセット , それ以外はクリアされま す。 Z − RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは AL の内容と同じものが見つかった場合にセット , RW0 がゼロになって停止したと きにクリアされます。 V −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算の結果オーバフローが生じたらセット,それ以外はクリアさ れます。 C −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算の結果ボローが生じたらセット , それ以外はクリアされま す。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 293 第 8 章 命令細則 8.116 SCEQ, SCEQI (Scan String Byte until equal with Increment) ● バイト数 , サイクル数 F2MC-16FX ファミリ バイト数 :2 サイクル数 : RW0 がゼロのときに 1 サイクル , RW0 が 1 のときに 3 サイクル , それ以 外は 2 + 2 ×比較回数サイクル ● 実行例 SCEQ この例では , DTB と AH で示されるアドレス (031580H) のバイトデータ (54H) から , AL の下位バイトデータ (46H) と比較します。031585H 番地のバイトデータ (46H) で一致し ています。 AH AL A 1 5 8 0 RWO 0 1 0 0 0 0 DTB AH 4 6 0 3 AL A 1 5 8 6 RWO 0 0 F A CCR ××××× 0 0 DTB T N Z V C T N Z V C メモリ 031586 031586 AH → 4 6 031585 4 6 031585 4 8 031584 4 8 031584 4 9 031583 4 9 031583 4 D 031582 4 D 031582 4 E 031581 4 E 031581 5 4 031580 5 4 031580 実行前 294 0 3 CCR × 0 1 0 0 メモリ AH → 4 6 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.117 SCEQD (Scan String Byte until equal with Decrement) F2MC-16FX ファミリ 8.117 SCEQD (Scan String Byte until equal with Decrement) <bank> で指定される空間の AH で示されるバイトデータと AL 中のデータを比較し ます。比較結果が一致するか , または RW0 がゼロとなるまで , アドレスのデクリメ ント , RW0 のデクリメントを繰り返します。 <bank> として PCB, DTB, ADB, SPB の 4 種類が指定可能です。省略時は , 自動的に DTB が設定されます。 RW0 がゼロであった場合は比較は行いません。また , 命令実行中に割込みが発生する と命令の実行を一時中断して割込み処理を行い , 割込み処理が終了したあとで続きを 再開します。 ● アセンブラ形式 SCEQD [<bank>] ● オペレーション RW0=0 もしくは ((AH))=(AL) 【バイト比較】になるまで (AH) ← (AH) − 1 (RW0) ← (RW0) − 1 を繰り返します。 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算結果の MSB が "1" ならばセット , それ以外はクリアされま す。 Z − RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは AL の内容と同じものが見つかった場合にセット , RW0 がゼロになって停止したと きにクリアされます。 V −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算の結果オーバフローが生じたらセット,それ以外はクリアさ れます。 C −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは最 後に行った比較演算の結果ボローが生じたらセット , それ以外はクリアされます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 295 第 8 章 命令細則 8.117 SCEQD (Scan String Byte until equal with Decrement) F2MC-16FX ファミリ ● バイト数 , サイクル数 バイト数 :2 サイクル数 : RW0 がゼロのときに 1 サイクル , RW0 が 1 のときに 3 サイクル , それ以 外は 2 + 2 ×比較回数サイクル 奇数アドレス補正 : 比較回数 296 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.118 SCWEQ, SCWEQI (Scan String Word until equal with Increment) F2MC-16FX ファミリ 8.118 SCWEQ, SCWEQI (Scan String Word until equal with Increment) <bank> で指定される空間の AH で示されるワードデータと AL 中のデータを比較し ます。比較結果が一致するか , または RW0 がゼロとなるまで , アドレスのインクリ メントと , RW0 のデクリメントを繰り返します。 <bank> として PCB, DTB, ADB, SPB の 4 種類が指定可能です。省略時は , 自動的に DTB が設定されます。 RW0 がゼロであった場合は比較は行いません。また , 命令実行中に割込みが発生する と命令の実行を一時中断して割込み処理を行い , 割込み処理が終了したあとで続きを 再開します。 ● アセンブラ形式 SCWEQ [<Bank>] SCWEQI [<Bank>] ● オペレーション RW0=0 もしくは ((AH))=(AL) 【ワード比較】になるまで (AH) ← (AH) + 2 (RW0) ← (RW0) − 1 を繰り返します。 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算結果の MSB が "1" ならばセット , それ以外はクリアされま す。 Z − RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは AL の内容と同じものが見つかった場合にセット , RW0 がゼロになって停止したと きにクリアされます。 V −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算の結果オーバフローが生じたらセット,それ以外はクリアさ れます。 C −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算の結果ボローが生じたらセット ,それ以外はクリアされます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 297 第 8 章 命令細則 8.118 SCWEQ, SCWEQI (Scan String Word until equal with Increment) ● バイト数 , サイクル数 F2MC-16FX ファミリ バイト数 :2 サイクル数 : RW0 がゼロのときに 1 サイクル , RW0 が 1 のときに 3 サイクル , それ以 外は 2 + 2 ×比較回数サイクル 奇数アドレス補正 : 比較回数 ● 実行例 SCWEQ この例では , DTB と AH で示されるアドレス (DEC000H) のワードデータ (E1E0H) から , AL のワードデータ (00FFH) と比較します。RW0 がゼロになり終了しています。 AH AL A C 0 0 0 RWO 0 0 0 3 0 0 DTB AH F F D E A C 0 0 6 RWO 0 0 0 0 DTB F F D E CCR × 1 0 0 1 T N Z V C T N Z V C メモリ E 6 DEC006 E 5 E 6 DEC006 DEC005 E 5 DEC005 E 4 DEC004 E 4 DEC004 E 3 DEC003 E 3 DEC003 E 2 DEC002 E 2 DEC002 E 1 DEC001 E 1 DEC001 E 0 DEC000 E 0 DEC000 実行前 298 0 0 CCR ××××× メモリ AH → AL AH → 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ 8.119 第 8 章 命令細則 8.119 SCWEQD (Scan String Word until equal with Decrement) SCWEQD (Scan String Word until equal with Decrement) <bank> で指定される空間の AH で示されるワードデータと AL 中のデータを比較し ます。比較結果が一致するか , または RW0 がゼロとなるまで , アドレスのデクリメ ントと , RW0 のデクリメントを繰り返します。 <bank> として PCB, DTB, ADB, SPB の 4 種類が指定可能です。省略時は , 自動的に DTB が設定されます。 RW0 がゼロであった場合は比較は行いません。また , 命令実行中に割込みが発生する と命令の実行を一時中断して割込み処理を行い , 割込み処理が終了したあとで続きを 再開します。 ● アセンブラ形式 SCWEQD [<Bank>] ● オペレーション RW0=0 もしくは ((AH))=(AL) 【ワード比較】になるまで (AH) ← (AH) − 2 (RW0) ← (RW0) − 1 を繰り返します。 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算結果の MSB が "1" ならばセット , それ以外はクリアされま す。 Z − RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは AL の内容と同じものが見つかった場合にセット , RW0 がゼロになって停止したと きにクリアされます。 V −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは 最後に行った比較演算の結果オーバフローが生じたらセット,それ以外はクリアさ れます。 C −RW0 が始めからゼロであったときは変化しません。RW0 がゼロでなかったときは最 後に行った比較演算の結果ボローが生じたらセット , それ以外はクリアされます。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 299 第 8 章 命令細則 8.119 SCWEQD (Scan String Word until equal with Decrement) F2MC-16FX ファミリ ● バイト数 , サイクル数 バイト数 :2 サイクル数 : RW0 がゼロのときに 1 サイクル , RW0 が 1 のときに 3 サイクル , それ以外は 2 + 2 ×比較回数サイクル 奇数アドレス補正 : 比較回数 300 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.120 SETB (Set Bit) F2MC-16FX ファミリ 8.120 SETB (Set Bit) オペランドで示されるビットアドレスの内容を "1" にします。 ● アセンブラ形式 SETB addr16:bp SETB dir:bp SETB io:bp ● オペレーション ( オペランド )b ← 1 【ビット転送】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 オペランド addr16:bp dir:bp io:bp バイト数 4 3 3 サイクル数 3 3 3 ● 実行例 SETB 0AA55H:4 この例では , AA55H 番地のデータ (FFH) の bit4 を "1" にします。 CCR 0 0 0 0 0 0 0 0 0 0 T N Z V C T N Z V C メモリ メモリ × × × × 6 F CM44-00203-3 CCR AA55 7 F × × × × 実行前 実行後 FUJITSU MICROELECTRONICS LIMITED AA55 301 第 8 章 命令細則 8.121 SUB (Subtract Byte Data of Source from Destination to Destination) 8.121 F2MC-16FX ファミリ SUB (Subtract Byte Data of Source from Destination to Destination) 第 1 オペランドのバイトデータから第 2 オペランドのバイトデータを減算して , 結 果を第 1 オペランドに戻します。第 1 オペランドが A のときは , AL の上位バイトに は 00H が転送されます。 ● アセンブラ形式 SUB A,#imm8 SUB A,dir SUB A,ear SUB A,eam SUB ear,A SUB eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド ) − ( 第 2 オペランド ) 【バイト減算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 302 第 1 オペランド A A A A ear eam 第 2 オペランド #imm8 dir ear eam A A バイト数 2 2 2 2+ 2 2+ サイクル数 1 2 1 2 1 3 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.121 SUB (Subtract Byte Data of Source from Destination to Destination) F2MC-16FX ファミリ ● 実行例 SUB A,#22H この例では, ALの下位バイトデータ(01H)から, 8ビット即値データ(22H)を減算します。 AH A AL ×× ×× 4 9 0 1 A AL ×× ×× 0 0 D F CCR ××××× CCR × 1 0 0 1 T N Z V C T N Z V C 実行前 CM44-00203-3 AH 実行後 FUJITSU MICROELECTRONICS LIMITED 303 第 8 章 命令細則 8.122 SUBC (Subtract Byte Data of AL from AH with Carry to AL) 8.122 F2MC-16FX ファミリ SUBC (Subtract Byte Data of AL from AH with Carry to AL) AH の下位バイトデータから AL の下位バイトデータおよびキャリフラグ (C) を減算 し , 結果を AL に戻します。AL の上位バイトには 00H が転送されます。 ● アセンブラ形式 SUBC A ● オペレーション (AL) ← (AH) − (AL) − (C) 【キャリ付きバイト減算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 SUBC A この例では , AH の下位バイトデータ (05H) から , AL の下位バイトデータ (D4H) と C フ ラグ ("1") を減算します。減算結果 (30H) は AL の下位バイトに設定されます。 AH A 0 5 AL 0 5 0 0 D 4 A 0 5 AL 0 5 0 0 3 0 CCR ×××× 1 CCR × 0 0 0 1 T N Z V C T N Z V C 実行前 304 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.123 SUBC (Subtract Byte Data of Effective Address from Accumulator with Carry to Accumulator) F2MC-16FX ファミリ 8.123 SUBC (Subtract Byte Data of Effective Address from Accumulator with Carry to Accumulator) アキュムレータ (A) のバイトデータから第 2 オペランドで示されるバイトデータお よびキャリフラグ (C) を減算し , 結果を A に戻します。AL の上位バイトには 00H が 転送されます。 ● アセンブラ形式 SUBC A,ear SUBC A,eam ● オペレーション (A) ← (A) − ( 第 2 オペランド ) − (C) 【キャリ付きバイト減算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 1 2 FUJITSU MICROELECTRONICS LIMITED 305 第 8 章 命令細則 8.123 SUBC (Subtract Byte Data of Effective Address from Accumulator with Carry to Accumulator) ● 実行例 F2MC-16FX ファミリ SUBC A,R1 この例では , AL の下位バイトデータ (35H) から , R1 のバイトデータ (54H) と C フラグ ("0") を減算します。 AH A AL ×× ×× 0 0 R1 3 5 A AL ×× ×× 0 0 R1 54 E 1 54 CCR ×××× 0 CCR × 1 0 0 1 T N Z V C T N Z V C 実行前 306 AH 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.124 SUBCW (Subtract Word Data of Effective Address from Accumulator with Carry to Accumulator) F2MC-16FX ファミリ 8.124 SUBCW (Subtract Word Data of Effective Address from Accumulator with Carry to Accumulator) アキュムレータ (A) の下位ワードデータから第 2 オペランドのワードデータおよび キャリフラグ (C) を減算し , 結果を A に戻します。 ● アセンブラ形式 SUBCW A,ear SUBCW A,eam ● オペレーション (A) ← (A) − ( 第 2 オペランド ) − (C) 【キャリ付きワード減算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 1 2 奇数アドレス補正 0 1 FUJITSU MICROELECTRONICS LIMITED 307 第 8 章 命令細則 8.124 SUBCW (Subtract Word Data of Effective Address from Accumulator with Carry to Accumulator) ● 実行例 F2MC-16FX ファミリ SUBCW A,0E024H この例では , AL のワードデータ (7558H) から , E024H 番地のワードデータ (A95BH) と C フラグ ("1") を減算します。 AH A AL 7 5 ×× ×× AH 5 8 A F C CCR × 1 0 0 1 T N Z V C T N Z V C メモリ A 9 E025 A 9 E025 5 B E024 5 B E024 実行前 308 C B ×× ×× CCR ×××× 1 メモリ AL FUJITSU MICROELECTRONICS LIMITED 実行後 CM44-00203-3 第 8 章 命令細則 8.125 SUBDC (Subtract Decimal Data of AL from AH with Carry to AL) F2MC-16FX ファミリ 8.125 SUBDC (Subtract Decimal Data of AL from AH with Carry to AL) AH の下位バイトデータから AL の下位バイトデータおよびキャリフラグ (C) を減算 し , 結果を AL に戻します。AL の上位バイトには 00H が転送されます。 ● アセンブラ形式 SUBDC A ● オペレーション (AL) ← (AH) − (AL) − (C) 【キャリ付き 10 進減算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −不定 C − 10 進演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :2 ● 実行例 SUBDC A この例では , AH のバイトデータ (86H) から , AL のバイトデータ (86H) と C フラグ ("0") を 10 進減算します。 AH A ×× AL 8 6 ×× AH 8 6 A ×× AL 8 6 CCR ×××× 0 0 0 CCR × 0 1 × 0 T N Z V C 実行前 CM44-00203-3 0 0 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 309 第 8 章 命令細則 8.126 SUBL (Subtract Long Word Data of Source from Destination to Destination) 8.126 F2MC-16FX ファミリ SUBL (Subtract Long Word Data of Source from Destination to Destination) アキュムレータ (A) のロングワードデータから第 2 オペランドのロングワードデー タを減算して結果を A に戻します。 ● アセンブラ形式 SUBL A,#imm32 SUBL A,ear SUBL A,eam ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド ) − ( 第 2 オペランド ) 【ロングワード減算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 310 第 1 オペランド A A A 第 2 オペランド #imm32 ear eam バイト数 5 2 2+ サイクル数 2 2 3 奇数アドレス補正 0 0 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.126 SUBL (Subtract Long Word Data of Source from Destination to Destination) F2MC-16FX ファミリ ● 実行例 SUBL A,0FD12H この例では , アキュムレータ (A) のロングワードデータ (34B3F201H) から , FD12H 番地 のロングワードデータ (525F31BDH) を減算します。 AH A 3 4 AL F 2 B 3 AH 0 1 A E 2 AL C 0 5 4 CCR ××××× CCR × 1 0 0 1 T N Z V C メモリ T N Z V C メモリ FD16 FD16 5 2 FD15 5 2 FD15 5 F FD14 5 F FD14 3 1 FD13 3 1 FD13 B D FD12 B D FD12 実行前 CM44-00203-3 4 4 FUJITSU MICROELECTRONICS LIMITED 実行後 311 第 8 章 命令細則 8.127 SUBW (Subtract Word Data of Source from Destination to Destination) 8.127 F2MC-16FX ファミリ SUBW (Subtract Word Data of Source from Destination to Destination) 第 1 オペランドのワードデータから第 2 オペランドのワードデータを減算して , 結 果を第 1 オペランドに戻します。 ● アセンブラ形式 SUBW A,#imm16 SUBW A,ear SUBW A,eam SUBW ear,A SUBW eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド ) − ( 第 2 オペランド ) 【ワード減算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 312 第 1 オペランド A A A ear eam 第 2 オペランド #imm16 ear eam A A バイト数 3 2 2+ 2 2+ サイクル数 1 1 2 1 3 奇数アドレス補正 0 0 1 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.127 SUBW (Subtract Word Data of Source from Destination to Destination) F2MC-16FX ファミリ ● 実行例 SUBW @RW0+,A この例では , 第 1 オペランド (@RW0+) で示されるアドレス (E2A4H) のワードデータ (5DABH) に , AL のワードデータ (3104H) を減算します。 AH A AL ×× ×× RW0 AH 3 1 0 4 E 2 A 4 A AL ×× ×× RW0 CCR ××××× E 2 A 6 T N Z V C メモリ 5 D E2A5 2 C E2A5 A B E2A4 A 7 E2A4 実行前 CM44-00203-3 0 4 CCR × 0 0 0 0 T N Z V C メモリ 3 1 実行後 FUJITSU MICROELECTRONICS LIMITED 313 第 8 章 命令細則 8.128 SUBW (Subtract Word Data of AL from AH to AL) F2MC-16FX ファミリ SUBW (Subtract Word Data of AL from AH to AL) 8.128 AH のワードデータから AL のワードデータを減算して , 結果を AL に戻します。 ● アセンブラ形式 SUBW A ● オペレーション (AL) ← (AH) − (AL) 【ワード減算】 ● CCR I S T N Z V C − − − * * * * I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −演算の結果オーバフローが発生したときセット , それ以外はクリアされます。 C −演算の結果ボローが発生したときセット , それ以外はクリアされます。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 SUBW A この例では , AH のワードデータ (83A2H) から , AL のワードデータ (1019H) を減算しま す。減算結果 (7389H) は AL に設定されます。 AH A 8 3 AL 1 0 A 2 AH 1 9 A 8 3 AL 7 3 A 2 CCR ××××× CCR × 0 0 1 0 T N Z V C 実行前 314 8 9 T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.129 SWAP (Swap Byte Data of Accumulator) F2MC-16FX ファミリ 8.129 SWAP (Swap Byte Data of Accumulator) アキュムレータ (A) のワードデータの上位バイトと下位バイトを交換します。 ● アセンブラ形式 SWAP ● オペレーション temp ← AL[7:0] AL[7:0] ← AL[15:8] AL[15:8] ← temp 【バイト交換】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 SWAP この例では , AL の上位バイトデータ (06H) と , AL の下位バイトデータ (90H) を交換し ます。 AH A AL 0 6 ×× ×× AH 9 0 A AL 9 0 ×× ×× CCR ××××× CCR T N Z V C 実行前 CM44-00203-3 0 6 ××××× T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 315 第 8 章 命令細則 8.130 SWAPW (Swap Word Data of Accumulator) F2MC-16FX ファミリ SWAPW (Swap Word Data of Accumulator) 8.130 アキュムレータ (A) のロングワードデータの下位ワードと上位ワードを交換します。 ● アセンブラ形式 SWAPW ● オペレーション temp ← (AH) (AH) ← (AL) (AL) ← temp 【ワード交換】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 SWAPW この例では , AH のワードデータ (1986H) と , AL のワードデータ (9861H) を交換します。 AH A 1 9 AL 8 6 9 8 AH 6 1 A 9 8 AL 6 1 CCR ××××× CCR T N Z V C 実行前 316 1 9 8 6 ××××× T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.131 UNLINK (Unlink and create new stack frame) F2MC-16FX ファミリ 8.131 UNLINK (Unlink and create new stack frame) 保存されている旧フレームポインタをスタックから復帰します。 ● アセンブラ形式 UNLINK ● オペレーション (SP) ← (RW3), (RW3) ← ((SP)), (SP) ← (SP) + 2 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 奇数アドレス補正 :1 ● 実行例 UNLINK この例では , RW3 のワードデータ (E020H) を SP に転送してから , SP で示されるスタッ クから RW3 をポップします。 SP E 0 0 0 SP E 0 2 2 RW3 E 0 2 0 RW3 A 0 4 6 メモリ メモリ A 0 4 6 SP → ×× 実行前 CM44-00203-3 E020 SP → ×× E022 A 0 E021 4 6 E020 E000 実行後 FUJITSU MICROELECTRONICS LIMITED 317 第 8 章 命令細則 8.132 WBTc (Wait until Bit Condition satisfied) 8.132 F2MC-16FX ファミリ WBTc (Wait until Bit Condition satisfied) オペランドで示されるビットアドレスのデータが条件を満たすまで , オペランドで 示されるビットアドレスのデータの読出し動作を続けます。ビットアドレスのデー タが条件を満たすと , WBTc 命令の次の命令に制御が移ります。 ● アセンブラ形式 WBTC io:bp WBTS io:bp ● オペレーション io:bp で示されるビットアドレスのデータが条件を満たすまで io:bp の読出し動作を続 けます。ビットアドレスのデータが条件を満たすと , 次の命令に制御が移ります。 条件が満たされず読出し動作を繰り返している最中は , 割込みが受け付けられる状態 となっています。 この状態で割込みが起動された場合 , RETI 命令による復帰先は WBTc 命令となります。復帰先は , WBTc 命令の次の命令ではありません。 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 命令 WBTC WBTS 条件 ビットデータ =0 ビットデータ =1 バイト数 3 3 サイクル数 318 不定回数 不定回数 ( 条件が成立するまで ) ( 条件が成立するまで ) FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.132 WBTc (Wait until Bit Condition satisfied) F2MC-16FX ファミリ ● 実行例 WBTS 34H:7 この例では , 34H 番地のバイトデータの bit7 が "1" になるのを待ちます。 PC E 1 0 0 メモリ bit7が(リソースの動作などにより)"1"に × × 周辺の レジスタ 7 F なるまで34H番地の読出し動作を続けます。 0034H bit7が"1"になると,次の命令を実行します。 × × 実行前 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 実行後 319 第 8 章 命令細則 8.133 XCH (Exchange Byte Data of Source to Destination) 8.133 F2MC-16FX ファミリ XCH (Exchange Byte Data of Source to Destination) 第 1 オペランドと第 2 オペランドのバイトデータを交換します。 第 1 オペランドが A のときは , AL の上位バイトは 00H になります。 ● アセンブラ形式 XCH A,ear XCH A,eam XCH Ri,ear XCH Ri,eam ● オペレーション temp ← ( 第 1 オペランド ) ( 第 1 オペランド ) ← ( 第 2 オペランド ) ( 第 2 オペランド ) ← temp 【バイト交換】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 320 第 1 オペランド A A Ri Ri 第 2 オペランド ear eam ear eam バイト数 2 2+ 2 2+ サイクル数 1 2 2 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.133 XCH (Exchange Byte Data of Source to Destination) F2MC-16FX ファミリ ● 実行例 XCH R4,@RW0+ この例では , R4 のバイトデータ (F1H) と , 第 2 オペランド (@RW0+) で示されるアドレ ス (0060H) のバイトデータ (22H) を交換します。 RWO 0 0 6 0 R4 RWO R4 F 1 CCR ××××× CCR T N Z V C 実行前 CM44-00203-3 2 2 ××××× メモリ 0061 2 2 6 1 T N Z V C メモリ RWO → 0 0 0060 0061 RWO → F 1 0060 実行後 FUJITSU MICROELECTRONICS LIMITED 321 第 8 章 命令細則 8.134 XCHW (Exchange Word Data of Source to Destination) 8.134 F2MC-16FX ファミリ XCHW (Exchange Word Data of Source to Destination) 第 1 オペランドと第 2 オペランドのワードデータを交換します。 ● アセンブラ形式 XCHW A,ear XCHW A,eam XCHW RWi,ear XCHW RWi,eam ● オペレーション temp ← ( 第 1 オペランド ) ( 第 1 オペランド ) ← ( 第 2 オペランド ) ( 第 2 オペランド ) ← temp 【ワード交換】 ● CCR I S T N Z V C − − − − − − − 全フラグ変化しません。 ● バイト数 , サイクル数 322 第 1 オペランド A A RWi RWi 第 2 オペランド ear eam ear eam バイト数 2 2+ 2 2+ サイクル数 1 2 2 2 奇数アドレス補正 0 2 0 2 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.134 XCHW (Exchange Word Data of Source to Destination) F2MC-16FX ファミリ ● 実行例 XCHW A,@RW0 この例では , AL のワードデータ (24B4H) と , 第 2 オペランド (@RW0) で示されるアド レス (E001H) のワードデータ (2D58H) を交換します。 AH A AL ×× ×× RWO AH 3 4 B 4 E 0 0 1 A AL ×× ×× RWO CCR ××××× CCR T N Z V C CM44-00203-3 E 0 0 1 ××××× メモリ 2 D E002 5 8 E001 実行前 5 8 T N Z V C メモリ RWO → 2 D RWO → 3 4 E002 B 4 E001 実行後 FUJITSU MICROELECTRONICS LIMITED 323 第 8 章 命令細則 8.135 XOR (Exclusive Or Byte Data of Destination and Source to Destination) 8.135 F2MC-16FX ファミリ XOR (Exclusive Or Byte Data of Destination and Source to Destination) 第 1 オペランドと第 2 オペランドのバイトデータで排他的論理和演算を行い , 結果 を第 1 オペランドに戻します。 ● アセンブラ形式 XOR A,#imm8 XOR A,ear XOR A,eam XOR ear,A XOR eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド ) xor ( 第 2 オペランド ) 【バイト排他的論理和】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 324 第 1 オペランド A A A ear eam 第 2 オペランド #imm8 ear eam A A バイト数 2 2 2+ 2 2+ サイクル数 1 1 2 1 3 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.135 XOR (Exclusive Or Byte Data of Destination and Source to Destination) F2MC-16FX ファミリ ● 実行例 XOR 0052H,A この例では , 0052H 番地のバイトデータ (FAH) と , AL の下位バイトデータ (55H) を排他 的論理和演算 (XOR) します。 AH A AL ×× ×× 0 0 AH 5 5 A AL ×× ×× CCR ××××× 0 0 CCR T N Z V C メモリ F A 実行前 CM44-00203-3 5 5 × 1 0 0× T N Z V C メモリ 000052 A F 000052 実行後 FUJITSU MICROELECTRONICS LIMITED 325 第 8 章 命令細則 8.136 XORL (Exclusive Or Long Word Data of Destination) 8.136 F2MC-16FX ファミリ XORL (Exclusive Or Long Word Data of Destination) アキュムレータ (A) のロングワードデータと第 2 オペランドのロングワードデータ で排他的論理和演算を行い , 結果を A に戻します。 ● アセンブラ形式 XORL A,ear XORL A,eam ● オペレーション (A) ← (A) xor ( 第 2 オペランド ) 【ロングワード排他的論理和】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 326 第 1 オペランド A A 第 2 オペランド ear eam バイト数 2 2+ サイクル数 2 3 奇数アドレス補正 0 1 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.136 XORL (Exclusive Or Long Word Data of Destination) F2MC-16FX ファミリ ● 実行例 XORL A,0FFF0H この例では , アキュムレータ (A) のロングワードデータ (8252FEACH) と , FFF0H 番地の ロングワードデータ (FF55AA00H) を排他的論理和演算 (XOR) します。 AH A 8 2 AL F E 5 2 AH A C A 7 D AL 5 4 0 7 CCR ××××× CCR T N Z V C メモリ CM44-00203-3 × 0 0 0× T N Z V C メモリ F F FFF3 F F FFF3 5 5 FFF2 5 5 FFF2 A A FFF1 A A FFF1 0 0 FFF0 0 0 FFF0 実行前 A C 実行後 FUJITSU MICROELECTRONICS LIMITED 327 第 8 章 命令細則 8.137 XORW (Exclusive Or Word Data of AH and AL to AL) 8.137 F2MC-16FX ファミリ XORW (Exclusive Or Word Data of AH and AL to AL) AH と AL のワードデータで排他的論理和演算 (XOR) を行い , 結果を AL に戻しま す。 ● アセンブラ形式 XORW A ● オペレーション (AL) ← (AH) xor (AL) 【ワード排他的論理和】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 XORW A この例では , AL のワードデータ (AB98H) と , AH のワードデータ (0426H) を排他的論理 和演算 (XOR) します。 AH A AL 0 4 2 6 A B AH 9 8 A AL 0 4 2 6 CCR ××××× 328 B E CCR × 1 0 0 × T N Z V C 実行前 A F T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.138 XORW (Exclusive Or Word Data of Destination and Source to Destination) F2MC-16FX ファミリ 8.138 XORW (Exclusive Or Word Data of Destination and Source to Destination) 第 1 オペランドと第 2 オペランドのワードデータで排他的論理和演算を行い , 結果 を第 1 オペランドに戻します。 ● アセンブラ形式 XORW A,#imm16 XORW A,ear XORW A,eam XORW ear,A XORW eam,A ● オペレーション ( 第 1 オペランド ) ← ( 第 1 オペランド ) xor ( 第 2 オペランド ) 【ワード排他的論理和】 ● CCR I S T N Z V C − − − * * R − I, S, T −変化しません。 N −演算結果の MSB が "1" ならばセット , それ以外はクリアされます。 Z −演算結果がゼロならばセット , それ以外はクリアされます。 V −クリアされます。 C −変化しません。 ● バイト数 , サイクル数 CM44-00203-3 第 1 オペランド A A A ear eam 第 2 オペランド #imm16 ear eam A A バイト数 3 2 2+ 2 2+ サイクル数 1 1 2 1 3 奇数アドレス補正 0 0 1 0 2 FUJITSU MICROELECTRONICS LIMITED 329 第 8 章 命令細則 8.138 XORW (Exclusive Or Word Data of Destination and Source to Destination) ● 実行例 F2MC-16FX ファミリ XORW 0E001H,A この例では , E001H 番地のワードデータ (8342H) と , AL のワードデータ (5963H) を排他 的論理和演算 (XOR) します。 AH A AL 5 9 ×× ×× 6 3 A AH AL ×× ×× 5 9 6 3 CCR ××××× CCR T N Z V C メモリ T N Z V C メモリ 8 3 E002 D A E002 4 2 E001 2 1 E001 実行前 330 × 1 0 0× 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 第 8 章 命令細則 8.139 ZEXT (Zero Extend from Byte Data to Word Data) F2MC-16FX ファミリ 8.139 ZEXT (Zero Extend from Byte Data to Word Data) AL の上位バイトに 00H を転送します。 ● アセンブラ形式 ZEXT ● オペレーション AL[15:8] ← 00H ● CCR I S T N Z V C − − − R * − − I, S, T −変化しません。 N −クリアされます。 Z −ゼロ拡張したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 ZEXT この例では , AL の上位バイトを 00H にします。 AH A AL ×× ×× ×× 8 0 A AH AL ×× ×× 0 0 8 0 CCR ××××× CCR T N Z V C 実行前 CM44-00203-3 × 0 0 ×× T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED 331 第 8 章 命令細則 8.140 ZEXTW (Zero Extend from Word Data to Long Word Data) F2MC-16FX ファミリ ZEXTW (Zero Extend from Word Data to Long Word Data) 8.140 AH に 0000H を転送します。 ● アセンブラ形式 ZEXTW ● オペレーション AH ← 0000H ● CCR I S T N Z V C − − − R * − − I, S, T −変化しません。 N −クリアされます。 Z −ゼロ拡張したデータがゼロならばセット , それ以外はクリアされます。 V, C −変化しません。 ● バイト数 , サイクル数 バイト数 :1 サイクル数 :1 ● 実行例 ZEXTW この例では , AH を 0000H にします。 A AH AL ×× ×× F F 8 0 A AH AL 0 0 0 0 F F 8 0 CCR ××××× CCR T N Z V C 実行前 332 × 0 0 ×× T N Z V C 実行後 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 F2MC-16FX の命令一覧および命令マップなどを掲 載します。 付録 A 命令一覧表の説明 付録 B 命令一覧表 (351 命令 ) 付録 C 命令マップ CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 333 付録 付録 A 命令一覧表の説明 付録 A F2MC-16FX ファミリ 命令一覧表の説明 ここでは , 命令一覧表 (351 命令 ) に示す各命令一覧表の項目と記号についての説明 を記載します。 A.1 命令一覧表の項目の説明 A.2 命令一覧表の記号の説明 A.3 実効アドレスフィールド 334 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 A 命令一覧表の説明 F2MC-16FX ファミリ A.1 命令一覧表の項目の説明 表 A.1-1 に命令一覧表の項目の説明を示します。 表 A.1-1 命令一覧表の項目の説明 項目 説明 ニーモニック 英大文字 , 記号 : アセンブラ上もそのまま表記します。 英小文字 : アセンブラ上では , 書き換えて記述します。 英小文字の後の数 : 命令中のビット幅を示します。 # バイト数を示します。 ∼ サイクル数を示します。 B 奇数アドレス補正のサイクル数を示します。 命令実行時の実サイクルは , ∼欄の数値に補正値を加算した値 になります。 オペレーション LH AH 命令の動作を示します。 アキュムレータの bit15 ∼ bit8 に対する特殊動作を示します。 Z: 0 を転送する。 X: 符号を拡張して転送する。 − : 転送しない。 アキュムレータの上位 16 ビットに対する特殊動作を示します。 *: AL から AH へ転送する。 − : 転送しない。 Z: AH へ 00H を転送する。 X: AL の符号拡張により AH へ 00H または FFH を転送する。 I I ( 割込み許可 ) , S ( スタック ) , T ( ステッキィビット ) , S N ( ネガティブ ) , Z ( ゼロ ) , V ( オーバフロー ) , C ( キャリ ) T の各フラグの状態を示します。 N *: 命令の実行により変化する。 Z − : 変化しない。 V S: 命令の実行によりセットされる。 C R: 命令の実行によりクリアされる。 RMW CM44-00203-3 リードモディファイライト系命令 (1 命令でメモリなどからデー タを読出し処理しその結果をメモリへ書き込む ) であるかどう か示します。 *: リードモディファイライト系命令である。 − : リードモディファイライト系命令ではない。 ( 注意事項 ) 読み書きで意味の異なる I/O レジスタ等のアドレスには使用 できません。 FUJITSU MICROELECTRONICS LIMITED 335 付録 付録 A 命令一覧表の説明 F2MC-16FX ファミリ ■ 実行サイクル数 命令の実行に要するサイクル数 ( 実行サイクル数 ) は , 各命令の " サイクル数 " の値と データのアクセス条件で決まる"奇数アドレス補正"の値を加算することで得られます。 実際の命令実行においては,命令フェッチの遅れ,データアクセスの競合等により,実 行サイクル数が計算値より増大することがあります。とくに,外部バスインタフェー スを使用して,外部バスからの命令フェッチや,データアクセスを行うときには,実 行サイクル数が増大します。 ■ 奇数アドレス補正 一部の命令においては,奇数アドレスへのデータアクセスを行うときに実行サイクル が増大します。奇数アドレスのデータアクセスで増大するサイクル数を奇数アドレス 補正として,命令一覧の項目 B に示してあります。 336 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 A 命令一覧表の説明 F2MC-16FX ファミリ A.2 命令一覧表の記号の説明 表 A.2-1 に , 命令一覧表中の記号説明の一覧を示します。 ■ 命令一覧表の記号の説明 表 A.2-1 命令一覧表中の記号説明 表記 A AH AL SP PC PCB DTB ADB SSB USB DPR brg1 brg2 Ri Rj RWi RWj RLi dir addr16 addr24 ad24 0-15 ad24 16-23 io imm4 imm8 imm16 imm32 ext(imm8) disp8 disp16 bp vct4 vct8 ( )b rel ear eam rlst CM44-00203-3 意味 32 ビットアキュムレータ 命令により , 使用されるビット長が変わります。 バイト … AL の下位 8bit ワード … AL の 16bit ロングワード … AL:AH の 32bit A の上位 16bit A の下位 16bit スタックポインタ (USP or SSP) プログラムカウンタ プログラムカウンタバンクレジスタ データバンクレジスタ アディショナルデータバンクレジスタ システムスタックバンクレジスタ ユーザスタックバンクレジスタ ダイレクトページレジスタ DTB, ADB, SSB, USB, DPR, PCB DTB, ADB, SSB, USB, DPR R0, R1, R2, R3, R4, R5, R6, R7 R0, R1, R2, R3 RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 RW0, RW1, RW2, RW3 RL0, RL1, RL2, RL3 短縮直接アドレス指定 直接アドレス指定 物理直接アドレス指定 addr24 の bit0-bit15 addr24 の bit16-bit23 I/O 領域 (000000H ∼ 0000FFH) 4bit 即値データ 8bit 即値データ 16bit 即値データ 32bit 即値データ 8bit 即値データを符号拡張した 16bit データ 8bit ディスプレースメント 16bit ディスプレースメント ビットオフセット値 ベクタ番号 (0 ∼ 15) ベクタ番号 (0 ∼ 255) ビットアドレス PC 相対分岐指定 実効アドレス指定 ( コード 00H ∼ 07H) 実効アドレス指定 ( コード 08H ∼ 1FH) レジスタリスト FUJITSU MICROELECTRONICS LIMITED 337 付録 付録 A 命令一覧表の説明 A.3 F2MC-16FX ファミリ 実効アドレスフィールド 表 A.3-1 に , 実効アドレスフィールド指定アドレス形式を示します。 表 A.3-1 実効アドレスフィールド (1 / 2) コード 338 アドレス形式 アドレス拡張部 のバイト数 * レジスタ直接 ( 注意事項 ) 左の表記欄の汎用レジスタ名は , バイト ワード ロングワード の型に対応します。 − レジスタ間接 0 ポストインクリメント付 レジスタ間接 0 8 ビットディスプレースメント付 レジスタ間接 1 16 ビットディスプレースメント付 レジスタ間接 2 表記 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 0A @RW2 0B @RW3 0C @RW0+ 0D @RW1+ 0E @RW2+ 0F @RW3+ 10 @RW0+disp8 11 @RW1+disp8 12 @RW2+disp8 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 16 @RW6+disp8 17 @RW7+disp8 18 @RW0+disp16 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 A 命令一覧表の説明 F2MC-16FX ファミリ 表 A.3-1 実効アドレスフィールド (2 / 2) コード アドレス拡張部 のバイト数 * 表記 アドレス形式 1C @RW0+RW7 インデックス付レジスタ間接 0 1D @RW1+RW7 インデックス付レジスタ間接 0 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 2 1F addr16 直接アドレス 2 *: アドレス拡張のバイト数は , 命令一覧表の "#"( バイト数 ) および命令細則のバイト数の所で "2+" のように " 数値 +" と書かれているときに,数値に加算されて,命令のバイト数を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 339 付録 付録 B 命令一覧表 (351 命令 ) 付録 B F2MC-16FX ファミリ 命令一覧表 (351 命令 ) アセンブラで使用される命令の一覧を記載します。 各命令一覧の項目と記号については「付録 A 命令一覧表の説明」を参照してくださ い。 表 B-1 転送命令 ( バイト ) :41 命令 MOV ニーモニック A, dir # 2 ∼ 1 B 0 オペレーション byte (A) ← (dir) I - S - T - N * Z * V - C - RMW - MOV A, addr16 3 1 0 byte (A) ← (addr16) Z MOV A, Ri 1 1 0 byte (A) ← (Ri) Z * - - - * * - - - * - - - * * - - MOV A, ear 2 1 0 byte (A) ← (ear) - Z * - - - * * - - MOV A, eam 2+ 1 0 - byte (A) ← (eam) Z * - - - * * - - MOV A, io 2 1 - 0 byte (A) ← (io) Z * - - - * * - - MOV A, #imm8 2 - 1 0 byte (A) ← imm8 Z * - - - * * - - MOV A, @A - 2 1 0 byte (A) ← ((A)) Z - - - - * * - - MOV - A, @RLi+disp8 3 1 0 byte (A) ← ((RLi)+disp8) Z * - - - * * - - - MOVN A, #imm4 1 1 0 byte (A) ← imm4 Z * - - - R * - - - MOVX A, dir 2 1 0 byte (A) ← (dir) X * - - - * * - - - MOVX A, addr16 3 1 0 byte (A) ← (addr16) X * - - - * * - - - MOVX A, Ri 1 1 0 byte (A) ← (Ri) X * - - - * * - - - MOVX A, ear 2 1 0 byte (A) ← (ear) X * - - - * * - - - MOVX A, eam 2+ 1 0 byte (A) ← (eam) X * - - - * * - - - MOVX A, io 2 1 0 byte (A) ← (io) X * - - - * * - - - MOVX A, #imm8 2 1 0 byte (A) ← imm8 X * - - - * * - - - MOVX A, @A 2 1 0 byte (A) ← ((A)) X - - - - * * - - - MOVX A, @RWi+disp8 2 1 0 byte (A) ← ((RWi)+disp8) X * - - - * * - - - MOVX A, @RLi+disp8 3 1 0 byte (A) ← ((RLi)+disp8) X * - - - * * - - - MOV dir, A 2 1 0 byte (dir) ← (A) - - - - - * * - - - MOV addr16, A 3 1 0 byte (addr16) ← (A) - - - - - * * - - - MOV Ri, A 1 1 0 byte (Ri) ← (A) - - - - - * * - - - MOV ear, A 2 1 0 byte (ear) ← (A) - - - - - * * - - - MOV eam, A 2+ 1 0 byte (eam) ← (A) - - - - - * * - - - MOV io, A 2 1 0 byte (io) ← (A) - - - - - * * - - - MOV @RLi+disp8, A 3 1 0 byte ((RLi)+disp8) ← (A) - - - - - * * - - - MOV Ri, ear 2 1 0 byte (Ri) ← (ear) - - - - - * * - - - MOV Ri, eam 2+ 1 0 byte (Ri) ← (eam) - - - - - * * - - - MOV ear, Ri 2 1 0 byte (ear) ← (Ri) - - - - - * * - - - MOV eam, Ri 2+ 1 0 byte (eam) ← (Ri) - - - - - * * - - - MOV Ri, #imm8 2 1 0 byte (Ri) ← imm8 - - - - - * * - - - MOV io, #imm8 3 1 0 byte (io) ← imm8 - - - - - - - - - - MOV dir, #imm8 3 1 0 byte (dir) ← imm8 - - - - - - - - - - MOV ear, #imm8 3 1 0 byte (ear) ← imm8 - - - - - * * - - - MOV eam, #imm8 3+ 1 / 2*1 0 byte (eam) ← imm8 - - - - - - - - - - MOV @AL, AH 2 1 0 byte ((A)) ← (AH) - - - - - * * - - - XCH A, ear 2 1 0 byte (A) ←→ (ear) Z - - - - - - - - - XCH A, eam 2+ 2 0 byte (A) ←→ (eam) Z - - - - - - - - - XCH Ri, ear 2 2 0 byte (Ri) ←→ (ear) - - - - - - - - - - XCH Ri, eam 2+ 2 0 - - - - - - - - - - byte (Ri) ←→ (eam) *1 : eam が Ri/@RWi/@RWi+/@RWi+RW7 の場合は 1,それ以外は 2 340 LH AH Z * FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-2 転送命令 ( ワード , ロングワード ) :38 命令 MOVW ニーモニック A, dir # 2 ∼ 1 B 1 オペレーション word (A) ← (dir) LH AH * I - S - T - N * Z * V - C - RMW - MOVW A, addr16 3 1 1 word (A) ← (addr16) - MOVW A, SP 1 1 0 word (A) ← (SP) - * - - - * * - - - * - - - * * - - MOVW A, RWi 1 1 0 word (A) ← (RWi) - - * - - - * * - - MOVW A, ear 2 1 0 - word (A) ← (ear) - * - - - * * - - MOVW A, eam 2+ 1 - 1 word (A) ← (eam) - * - - - * * - - MOVW A, io 2 - 1 1 word (A) ← (io) - * - - - * * - - MOVW A, @A - 2 1 1 word (A) ← ((A)) - - - - - * * - - MOVW - A, #imm16 3 1 0 word (A) ← imm16 - * - - - * * - - - MOVW A, @RWi+disp8 2 1 1 word (A) ← ((RWi)+disp8) - * - - - * * - - - MOVW A, @RLi+disp8 3 1 1 word (A) ← ((RLi)+disp8) - * - - - * * - - - MOVW dir, A 2 1 1 word (dir) ← (A) - - - - - * * - - - MOVW addr16, A 3 1 1 word (addr16) ← (A) - - - - - * * - - - MOVW SP, A 1 1 0 word (SP) ← (A) - - - - - * * - - - MOVW RWi, A 1 1 0 word (RWi) ← (A) - - - - - * * - - - MOVW ear, A 2 1 0 word (ear) ← (A) - - - - - * * - - - MOVW eam, A 2+ 1 1 word (eam) ← (A) - - - - - * * - - - MOVW io, A 2 1 1 word (io) ← (A) - - - - - * * - - - MOVW @RWi+disp8, A 2 1 1 word ((RWi)+disp8) ← (A) - - - - - * * - - - MOVW @RLi+disp8, A 3 1 1 word ((RLi)+disp8) ← (A) - - - - - * * - - - MOVW RWi, ear 2 1 0 word (RWi) ← (ear) - - - - - * * - - - MOVW RWi, eam 2+ 1 1 word (RWi) ← (eam) - - - - - * * - - - MOVW ear, RWi 2 1 0 word (ear) ← (RWi) - - - - - * * - - - MOVW eam, RWi 2+ 1 1 word (eam) ← (RWi) - - - - - * * - - - MOVW RWi, #imm16 3 1 0 word (RWi) ← imm16 - - - - - * * - - - MOVW io, #imm16 4 1 1 word (io) ← imm16 - - - - - - - - - - MOVW ear, #imm16 4 2 0 word (ear) ← imm16 - - - - - * * - - - MOVW eam, #imm16 4+ 2 1 word (eam) ← imm16 - - - - - - - - - - MOVW @AL, AH 2 1 1 word ((A)) ← (AH) - - - - - * * - - - XCHW A, ear 2 1 0 word (A) ←→ ear - - - - - - - - - - XCHW A, eam 2+ 2 2 word (A) ←→ eam - - - - - - - - - - XCHW RWi, ear 2 2 0 word (RWi) ←→ ear - - - - - - - - - - XCHW RWi, eam 2+ 2 2 word (RWi) ←→ eam - - - - - - - - - - MOVL A, ear 2 2 0 long (A) ← (ear) - - - - - * * - - - MOVL A, eam 2+ 2 1 long (A) ← (eam) - - - - - * * - - - MOVL A, #imm32 5 2 0 long (A) ← imm32 - - - - - * * - - - MOVL ear, A 2 2 0 long (ear) ← (A) - - - - - * * - - - MOVL eam, A 2+ 1 long (eam) ← (A) - - - - - * * - - - *1 3/2 *1 : eam が @RWi+ の場合は 3, それ以外は 2 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 341 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-3 加減算命令 ( バイト , ワード , ロングワード ) :42 命令 ADD ニーモニック A, #imm8 # 2 ∼ 1 B 0 オペレーション byte (A) ← (A) + imm8 LH AH Z - I - S - T - N * Z * V * C RMW * - ADD A, dir 2 2 0 byte (A) ← (A) + (dir) Z - - - - * * * * - ADD A, ear 2 1 0 byte (A) ← (A) + (ear) Z - - - - * * * * - ADD A, eam 2+ 2 0 byte (A) ← (A) + (eam) Z - - - - * * * * - ADD ear, A 2 1 0 byte (ear) ← (ear) + (A) - - - - - * * * * - ADD eam, A 2+ 3 0 byte (eam) ← (eam) + (A) Z - - - - * * * * * ADDC A 1 1 0 byte (A) ← (AH) + (AL) + (C) Z - - - - * * * * - ADDC A, ear 2 1 0 byte (A) ← (A) + (ear) + (C) Z - - - - * * * * - ADDC A, eam 2+ 2 0 byte (A) ← (A) + (eam) + (C) Z - - - - * * * * - ADDDC A 1 2 0 byte (A) ← (AH) + (AL) + (C) : decimal Z - - - - * * * * - SUB A, #imm8 2 1 0 byte (A) ← (A) - imm8 Z - - - - * * * * - SUB A, dir 2 2 0 byte (A) ← (A) - (dir) Z - - - - * * * * - SUB A, ear 2 1 0 byte (A) ← (A) - (ear) Z - - - - * * * * - SUB A, eam 2+ 2 0 byte (A) ← (A) - (eam) Z - - - - * * * * - SUB ear, A 2 1 0 byte (ear) ← (ear) - (A) - - - - - * * * * - SUB eam, A 2+ 3 0 byte (eam) ← (eam) - (A) - - - - - * * * * * SUBC A 1 1 0 byte (A) ← (AH) - (AL) - (C) Z - - - - * * * * - SUBC A, ear 2 1 0 byte (A) ← (A) - (ear) - (C) Z - - - - * * * * - SUBC A, eam 2+ 2 0 byte (A) ← (A) - (eam) - (C) Z - - - - * * * * - SUBDC A 1 2 0 byte (A) ← (AH) - (AL) - (C) : decimal Z - - - - * * * * - ADDW A 1 1 0 word (A) ← (AH) + (AL) - - - - - * * * * - ADDW A, ear 2 1 0 word (A) ← (A) + (ear) - - - - - * * * * - ADDW A, eam 2+ 2 1 word (A) ← (A) + (eam) - - - - - * * * * - ADDW A, #imm16 3 1 0 word (A) ← (A) + imm16 - - - - - * * * * - ADDW ear, A 2 1 0 word (ear) ← (ear) + (A) - - - - - * * * * - ADDW eam, A 2+ 3 2 word (eam) ← (eam) + (A) - - - - - * * * * * ADDCW A, ear 2 1 0 word (A) ← (A) + (ear) + (C) - - - - - * * * * - ADDCW A, eam 2+ 2 1 word (A) ← (A) + (eam) + (C) - - - - - * * * * - SUBW A 1 1 0 word (A) ← (AH) - (AL) - - - - - * * * * - SUBW A, ear 2 1 0 word (A) ← (A) - (ear) - - - - - * * * * - SUBW A, eam 2+ 2 1 word (A) ← (A) - (eam) - - - - - * * * * - SUBW A, #imm16 3 1 0 word (A) ← (A) - imm16 - - - - - * * * * - SUBW ear, A 2 1 0 word (ear) ← (ear) - (A) - - - - - * * * * - SUBW eam, A 2+ 3 2 word (eam) ← (eam) - (A) - - - - - * * * * * SUBCW A, ear 2 1 0 word (A) ← (A) - (ear) - (C) - - - - - * * * * - SUBCW A, eam 2+ 2 1 word (A) ← (A) - (eam) - (C) - - - - - * * * * - ADDL A, ear 2 2 0 long (A) ← (A) + (ear) - - - - - * * * * - ADDL A, eam 2+ 3 1 long (A) ← (A) + (eam) - - - - - * * * * - ADDL A, #imm32 5 2 0 long (A) ← (A) + imm32 - - - - - * * * * - SUBL A, ear 2 2 0 long (A) ← (A) - (ear) - - - - - * * * * - SUBL A, eam 2+ 3 1 long (A) ← (A) - (eam) - - - - - * * * * - SUBL A, #imm32 5 2 0 long (A) ← (A) - imm32 - - - - - * * * * - 342 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-4 増減算命令 ( バイト , ワード , ロングワード ) :12 命令 INC ニーモニック ear # 2 ∼ 1 B 0 オペレーション byte (ear) ← (ear) + 1 LH AH - I - S - T - N * Z * V * C - RMW - INC eam 2+ 3 0 byte (eam) ← (eam) + 1 - DEC ear 2 1 0 byte (ear) ← (ear) - 1 - - - - - * * * - * - - - - * * * - DEC eam 2+ 3 0 byte (eam) ← (eam) - 1 - - - - - - * * * - * INCW ear 2 1 0 word (ear) ← (ear) + 1 - - - - - * * * - - INCW eam 2+ 3 2 word (eam) ← (eam) + 1 - - - - - * * * - * DECW ear 2 1 0 word (ear) ← (ear) - 1 - - - - - * * * - - DECW eam 2+ 3 2 word (eam) ← (eam) - 1 - - - - - * * * - * INCL ear 2 2 0 long (ear) ← (ear) + 1 - - - - - * * * - - INCL eam 2+ 4 2 long (eam) ← (eam) + 1 - - - - - * * * - * DECL ear 2 2 0 long (ear) ← (ear) - 1 - - - - - * * * - - DECL eam 2+ 4 2 long (eam) ← (eam) - 1 - - - - - * * * - * CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 343 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-5 比較命令 ( バイト , ワード , ロングワード ) :11 命令 CMP CMP CMP CMP CMPW CMPW CMPW CMPW CMPL CMPL CMPL 344 ニーモニック A A, ear A, eam A, #imm8 A A, ear A, eam A, #imm16 A, ear A, eam A, #imm32 # 1 2 2+ 2 1 2 2+ 3 2 2+ 5 ∼ 1 1 2 1 1 1 2 1 2 3 2 B 0 0 0 0 0 0 1 0 0 1 0 オペレーション byte (AH) - (AL) byte (A) - (ear) byte (A) - (eam) byte (A) - imm8 word (AH) - (AL) word (A) - (ear) word (A) - (eam) word (A) - imm16 long (A) - (ear) long (A) - (eam) long (A) - imm32 LH AH - FUJITSU MICROELECTRONICS LIMITED I - S - T - N * * * * * * * * * * * Z * * * * * * * * * * * V * * * * * * * * * * * C * * * * * * * * * * * RMW - CM44-00203-3 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-6 符合なし乗除算命令 ( ワード , ロングワード ) :11 命令 ニーモニック DIVU A # 1 4 / 9*1 B 0 DIVU A, ear 2 4 / 9*1 0 DIVU A, eam 2+ 5 / 11*2 0 DIVUW A, ear 2 4 / 17*3 0 DIVUW A, eam 2+ 5 / 19*4 2 ∼ オペレーション word (AH) / byte (AL) quotient → byte (AL), remainder → byte (AH) word (A) / byte (ear) quotient → byte (A), remainder → byte (ear) word (A) / byte (eam) quotient → byte (A), remainder → byte (eam) long (A) / word (ear) quotient → word (A), remainder → word (ear) long (A) / word (eam) quotient → word (A), remainder → word (eam) LH AH - I - S - T - N - Z - V * C RMW * - - - - - - - - * * - - - - - - - - * * - - - - - - - - * * - - - - - - - - * * - MULU A 1 2 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - MULU A, ear 2 2 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MULU A, eam 2+ 3 0 byte (A) * byte (eam) → word (A) - - - - - - - - - - MULUW A 1 4 0 word (AH) * word (AL) → long (A) - - - - - - - - - - MULUW A, ear 2 4 0 word (A) * word (ear) → long (A) - - - - - - - - - - MULUW A, eam 2+ 5 1 word (A) * word (eam) → long (A) - - - - - - - - - - *1 : オーバフローの場合は 4, それ以外は 9 *2 : オーバフローの場合は 5, それ以外は 11 *3 : オーバフローの場合は 4, それ以外は 17 *4 : オーバフローの場合は 5, それ以外は 19 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 345 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-7 符合付き乗除算命令 ( ワード , ロングワード ) :11 命令 ニーモニック DIV A # 2 5 / 11*1 B 0 DIV A, ear 2 5 / 11*1 0 DIV A, eam 2+ 6 / 13*2 0 DIVW A, ear 2 5 / 19*3 0 DIVW A, eam 2+ 6 / 21*4 2 ∼ オペレーション word (AH) / byte (AL) quotient → byte (AL), remainder → byte (AH) word (A) / byte (ear) quotient → byte (A), remainder → byte (ear) word (A) / byte (eam) quotient → byte (A), remainder → byte (eam) long (A) / word (ear) quotient → word (A), remainder → word (ear) long (A) / word (eam) quotient → word (A), remainder → word (eam) LH AH Z - I - S - T - N - Z - V * C RMW * - Z - - - - - - * * - Z - - - - - - * * - - - - - - - - * * - - - - - - - - * * - MUL A 2 4 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - MUL A, ear 2 4 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MUL A, eam 2+ 5 0 byte (A) * byte (eam) → word (A) - - - - - - - - - - MULW A 2 6 0 word (AH) * word (AL) → long (A) - - - - - - - - - - MULW A, ear 2 6 0 word (A) * word (ear) → long (A) - - - - - - - - - - MULW A, eam 2+ 7 1 word (A) * word (eam) → long (A) - - - - - - - - - - *1 : オーバフローの場合は 5, それ以外は 11 *2 : オーバフローの場合は 6, それ以外は 13 *3 : オーバフローの場合は 5, それ以外は 19 *4 : オーバフローの場合は 6, それ以外は 21 346 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-8 論理演算命令 ( バイト , ワード , ロングワード ) :45 命令 AND ニーモニック A, #imm8 # 2 ∼ 1 B 0 オペレーション byte (A) ← (A) and imm8 LH AH - I - S - T - N * Z * V R C - RMW - AND A, ear 2 1 0 byte (A) ← (A) and (ear) - - - - - * * R - - AND A, eam 2+ 2 0 byte (A) ← (A) and (eam) - - - - - * * R - - AND ear, A 2 1 0 byte (ear) ← (ear) and (A) - - - - - * * R - - AND eam, A 2+ 3 0 byte (eam) ← (eam) and (A) - - - - - * * R - * OR A, #imm8 2 1 0 byte (A) ← (A) or imm8 - - - - - * * R - - OR A, ear 2 1 0 byte (A) ← (A) or (ear) - - - - - * * R - - OR A, eam 2+ 2 0 byte (A) ← (A) or (eam) - - - - - * * R - - OR ear, A 2 1 0 byte (ear) ← (ear) or (A) - - - - - * * R - - OR eam, A 2+ 3 0 byte (eam) ← (eam) or (A) - - - - - * * R - * XOR A, #imm8 2 1 0 byte (A) ← (A) xor imm8 - - - - - * * R - - XOR A, ear 2 1 0 byte (A) ← (A) xor (ear) - - - - - * * R - - XOR A, eam 2+ 2 0 byte (A) ← (A) xor (eam) - - - - - * * R - - XOR ear, A 2 1 0 byte (ear) ← (ear) xor (A) - - - - - * * R - - XOR eam, A 2+ 3 0 byte (eam) ← (eam) xor (A) - - - - - * * R - * NOT A 1 1 0 byte (A) ← not (A) - - - - - * * R - - NOT ear 2 1 0 byte (ear) ← not (ear) - - - - - * * R - - NOT eam 2+ 3 0 byte (eam) ← not (eam) - - - - - * * R - * ANDW A 1 1 0 word (A) ← (AH) and (A) - - - - - * * R - - ANDW A, #imm16 3 1 0 word (A) ← (A) and imm16 - - - - - * * R - - ANDW A, ear 2 1 0 word (A) ← (A) and (ear) - - - - - * * R - ANDW A, eam 2+ 2 1 word (A) ← (A) and (eam) - - - - - * * R - - ANDW ear, A 2 1 0 word (ear) ← (ear) and (A) - - - - - * * R - - ANDW eam, A 2+ 3 2 word (eam) ← (eam) and (A) - - - - - * * R - * ORW A 1 1 0 word (A) ← (AH) or (A) - - - - - * * R - - ORW A, #imm16 3 1 0 word (A) ← (A) or imm16 - - - - - * * R - - ORW A, ear 2 1 0 word (A) ← (A) or (ear) - - - - - * * R - - ORW A, eam 2+ 2 1 word (A) ← (A) or (eam) - - - - - * * R - - ORW ear, A 2 1 0 word (ear) ← (ear) or (A) - - - - - * * R - - ORW eam, A 2+ 3 2 word (eam) ← (eam) or (A) - - - - - * * R - * XORW A 1 1 0 word (A) ← (AH) xor (A) - - - - - * * R - - XORW A, #imm16 3 1 0 word (A) ← (A) xor imm16 - - - - - * * R - - XORW A, ear 2 1 0 word (A) ← (A) xor (ear) - - - - - * * R - - XORW A, eam 2+ 2 1 word (A) ← (A) xor (eam) - - - - - * * R - - XORW ear, A 2 1 0 word (ear) ← (ear) xor (A) - - - - - * * R - - XORW eam, A 2+ 3 2 word (eam) ← (eam) xor (A) - - - - - * * R - * NOTW A 1 1 0 word (A) ← not (A) - - - - - * * R - - NOTW ear 2 1 0 word (ear) ← not (ear) - - - - - * * R - - NOTW eam 2+ 3 2 word (eam) ← not (eam) - - - - - * * R - * ANDL A, ear 2 2 0 long (A) ← (A) and (ear) - - - - - * * R - - ANDL A, eam 2+ 3 1 long (A) ← (A) and (eam) - - - - - * * R - - ORL A, ear 2 2 0 long (A) ← (A) or (ear) - - - - - * * R - - ORL A, eam 2+ 3 1 long (A) ← (A) or (eam) - - - - - * * R - - XORL A, ear 2 2 0 long (A) ← (A) xor (ear) - - - - - * * R - - XORL A, eam 2+ 3 1 long (A) ← (A) xor (eam) - - - - - * * R - - CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 347 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-9 符合反転命令 ( バイト , ワード ) :6 命令 NEG ニーモニック A # 1 ∼ 1 B 0 オペレーション byte (A) ← 0 - (A) LH AH X - I - S - T - N * Z * V * C * RMW - NEG ear 2 1 0 byte (ear) ← 0 - (ear) - - - - - * * * * - NEG eam 2+ 3 0 byte (eam) ← 0 - (eam) - - - - - * * * * * NEGW A 1 1 0 word (A) ← 0 - (A) - - - - - * * * * - NEGW ear 2 1 0 word (ear) ← 0 - (ear) - - - - - * * * * - NEGW eam 2+ 3 2 word (eam) ← 0 - (eam) - - - - - * * * * * 348 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-10 シフト / ノーマライズ命令 ( バイト , ワード , ロングワード ) :19 命令 ニーモニック RORC A # 2 ∼ 1 B 0 オペレーション byte (A) ← Right rotation of (A) with carry LH AH I - - - S - T - N * Z * V - C RMW * - RORC ear 2 1 0 byte (ear) ← Right rotation of (ear) with carry - - - - - * * - * - RORC eam 2+ 3 0 byte (eam) ← Right rotation of (eam) with carry - - - - - * * - * * ROLC A 2 1 0 byte (A) ← Left rotation of (A) with carry - - - - - * * - * - ROLC ear 2 1 0 byte (ear) ← Right rotation of (ear) with carry - - - - - * * - * - ROLC eam 2+ 3 0 byte (eam) ← Right rotation of (eam) with carry - - - - - * * - * * ASR A, R0 2 1 0 byte (A) ← Arithmetic right barrel shift of (A) , (R0) bits - - - - * * * - * - LSR A, R0 2 1 0 byte (A) ← Logical right barrel shift of (A) , (R0) bits - - - - * * * - * - LSL A, R0 2 1 0 byte (A) ← Logical left barrel shift of (A) , (R0) bits - - - - - * * - * - ASRW A 1 1 0 word (A) ← Arithmetic right shift of (A) , 1 bit - - - - * * * - * - LSRW/SHRW A 1 1 0 word (A) ← Logical right shift of (A) , 1 bits - - - - * R * - * - LSLW/SHLW A 1 1 0 word (A) ← Logical left shift of (A) , 1 bits - - - - - * * - * - ASRW A, R0 2 1 0 word (A) ← Arithmetic right barrel shift of (A) , (R0) bits - - - - * * * - * - LSRW A, R0 2 1 0 word (A) ← Logical right barrel shift of (A) , (R0) bits - - - - * * * - * - LSLW A, R0 2 1 0 word (A) ← Logical left barrel shift of (A) , (R0) bits - - - - - * * - * - ASRL A, R0 2 1 0 long (A) ← Arithmetic right barrel shift of (A) , (R0) bits - - - - * * * - * - LSRL A, R0 2 1 0 long (A) ← Logical right barrel shift of (A) , (R0) bits - - - - * * * - * - LSLL A, R0 2 1 0 long (A) ← Logical left barrel shift of (A) , (R0) bits NRML A, R0 2 1 0 long (A) ← Shift left (A) until the MSB is "1" byte (R0) ← Shift count (the first "1" bit position) - - - - - * - * * - * - - CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 349 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-11 分岐命令 1:31 命令 ニーモニック BZ/BEQ rel BNZ/BNE rel BC/BLO rel BNC/BHS rel BN rel BP rel BV rel BNV rel BT rel BNT rel BLT rel BGE rel BLE rel BGT rel BLS rel BHI rel BRA rel JMP @A # 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 ∼ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 オペレーション Branch on (Z) = 1 Branch on (Z) = 0 Branch on (C) = 1 Branch on (C) = 0 Branch on (N) = 1 Branch on (N) = 0 Branch on (V) = 1 Branch on (V) = 0 Branch on (T) = 1 Branch on (T) = 0 Branch on (V) xor (N) = 1 Branch on (V) xor (N) = 0 Branch on ((V) xor (N)) or (Z) = 1 Branch on ((V) xor (N)) or (Z) = 0 Branch on (C) or (Z) = 1 Branch on (C) or (Z) = 0 Branch always (Unconditional branch) I - S - T - N - Z - V - C RMW - JMP addr16 3 2 0 word (PC) ← addr16 - JMP @ear 2 2 0 word (PC) ← (ear) - - - - - - - - - - - - - - - - - - JMP @eam 2+ 4 1 word (PC) ← (eam) - - - - - - - - - - JMPP @ear 2 3 0 - word (PC) ← (ear), (PCB) ← (ear+2) - - - - - - - - - - word (PC) ← (A) LH AH - JMPP @eam 2+ 5 1 word (PC) ← (eam), (PCB) ← (eam+2) - - - - - - - - - - JMPP CALL addr24 @ear 4 2 2 3 0 1 word (PC) ← ad24 0-15, (PCB) ← ad24 16-23 - - - - - - - - - - CALL @eam 2+ 5 1+1*a word (SP) ← (SP)-2, ((SP)) ← (PC)+ 2+ word (PC) ← (eam) - - - - - - - - - - CALL addr16 3 3 1 word (SP) ← (SP)-2, ((SP)) ← (PC)+3 word (PC) ← addr16 - - - - - - - - - - CALLV #vct4 1 5 1 word (SP) ← (SP)-2, ((SP)) ← (PC)+1 word (PC) ← (vecter_address) - - - - - - - - - - CALLP @ear 2 5 2 word (SP) ← (SP)-2, ((SP)) ← (PCB) word (SP) ← (SP)-2, ((SP)) ← (PC)+2 word (PC) ← (ear), (PCB) ← (ear+2) - - - - - - - - - - CALLP @eam 2+ 7 2+1*b word (SP) ← (SP)-2, ((SP)) ← (PCB) word (SP) ← (SP)-2, ((SP)) ← (PC)+ 2+ word (PC) ← (eam), (PCB) ← (eam+2) - - - - - - - - - - CALLP addr24 4 4 2 word (SP) ← (SP)-2, ((SP)) ← (PCB) word (SP) ← (SP)-2, ((SP)) ← (PC)+4 word (PC) ← ad24 0-15, (PCB) ← ad24 16-23 - - - - - - - - - - word (SP) ← (SP)-2, ((SP)) ← (PC)+2 word (PC) ← (ear) *a : 補正値:奇数スタックには +1, 奇数オペランドアドレスには +1 *b : 補正値:奇数スタックには +2, 奇数オペランドアドレスには +1 350 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-12 分岐命令 2:19 命令 ニーモニック CBNE A, #imm8, rel CWBNE A, #imm16, rel CBNE ear, #imm8, rel CBNE eam, #imm8, rel CWBNE ear, #imm16, rel CWBNE eam, #imm16, rel # 3 4 4 4+ 5 5+ ∼ 5 5 4 5 5 6 B 0 0 0 0 0 1 オペレーション Branch on byte (A) not equal to imm8 Branch on word (A) not equal to imm16 Branch on byte (ear) not equal to imm8 Branch on byte (eam) not equal to imm8 Branch on word (ear) not equal to imm16 Branch on word (eam) not equal to imm16 LH - AH - I - S T N - - * - - * - - * - - * - - * - - * Z * * * * * * V * * * * * * C RMW * * * * * * - DBNZ ear, rel 3 5 0 byte (ear) ← (ear) - 1, Branch on (ear) not equal to 0 - - - - - * * * - - DBNZ eam, rel 3+ 6 0 byte (eam) ← (eam) - 1, Branch on (eam) not equal to 0 - - - - - * * * - * DWBNZ ear, rel 3 5 0 word (ear) ← (ear) - 1, Branch on (ear) not equal to 0 - - - - - * * * - - DWBNZ eam, rel 3+ 6 2 - - - - - * * * - * INT INT INTP INT9 INTE #vct8 addr16 addr24 2 3 4 1 1 11 8 8 11 12 6 6 6 6 6 word (eam) ← (eam) - 1, Branch on (eam) not equal to 0 Software interrupt Software interrupt Software interrupt Software interrupt Software interrupt for break point (reserved for emulator) - - R R R R R S S S S S - - - - - - 1 1 Return from interrupt - - * * * * * * * - 2 22 / 6*1 2 1 word (SP) ← (SP) - 2, ((SP)) ← (RW3), word (RW3) ← (SP), (SP) ← (SP) - imm8 - - - - - - - - - - UNLINK 1 1 1 word (SP) ← (RW3), (RW3) ← ((SP)), word (SP) ← (SP) + 2 - - - - - - - - - - RET 1 4 1 word (PC) ← ((SP)), (SP) ← (SP) + 2 - - - - - - - - - - RETP 1 5 1 word (PC) ← ((SP)), (SP) ← (SP) + 2, byte (PCB) ← ((SP)), (SP) ← (SP) + 2 - - - - - - - - - - RETI LINK #imm8 *1 : RP が変化しない場合は 6, それ以外は 22 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 351 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-13 その他の制御命令 ( バイト , ワード , ロングワード ) :28 命令 ニーモニック PUSHW A # 1 ∼ 1 B 1 オペレーション word (SP) ← (SP) - 2, ((SP)) ← (A) LH AH I - - - S - T - N - Z - V - C RMW - PUSHW AH 1 1 1 word (SP) ← (SP) - 2, ((SP)) ← (AH) - - PUSHW PS 1 1 1 word (SP) ← (SP) - 2, ((SP)) ← (PS) - - - - - - - - - - - - - - - - PUSHW rlst 2 N*a multi word (SP) ← (SP) - 2n, ((SP)) ← (rlst) - - - - - - - - - - - - POPW A 1 N*1 1 1 word (A) ← ((SP)), (SP) ← (SP) + 2 - * - - - - - - - POPW AH 1 1 1 word (AH) ← ((SP)), (SP) ← (SP) + 2 - - - - - - - - - - POPW PS 1 18 / 4*2 1 word (PS) ← ((SP)), (SP) ← (SP) + 2 - - * * * * * * * - POPW rlst 2 N*1 N*a multi word (rlst) ← ((SP)), (SP) ← (SP) + 2n - - - - - - - - - - 1 Context switch - - * * * * * * * - 0 byte (CCR) ← (CCR) and imm8 - - * * * * * * * - 0 byte (CCR) ← (CCR) or imm8 - - * * * * * * * - 0 byte (RP) ← imm8 - - - - - - - - - - 2 19 / 4*2 1 0 byte (ILM) ← imm8 - - - - - - - - - - RWi, ear 2 1 0 word (RWi) ← ear - - - - - - - - - - MOVEA RWi, eam 2+ 1 0 word (RWi) ← eam - - - - - - - - - - MOVEA A, ear 2 1 0 word (A) ← ear - * - - - - - - - - MOVEA A, eam 2+ 1 0 word (A) ← eam - * - - - - - - - - ADDSP #imm8 2 1 0 word (SP) ← (SP) + ext(imm8) - - - - - - - - - - ADDSP #imm16 3 1 0 word (SP) ← (SP) + imm16 - - - - - - - - - - MOV A, brg1 2 1 0 byte (A) ← (brg1) Z * - - - * * - - - MOV NOP ADB DTB PCB SPB NCC CMR brg2, A 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 byte (brg2) ← (A) No operation Prefix code for AD space access Prefix code for DT space access Prefix code for PC space access Prefix code for SP space access Prefix code for flags no change Prefix code for common register bank - - - - - * - * - - - - JCTX @A 1 AND CCR, #imm8 2 OR CCR, #imm8 2 1 MOV RP, #imm8 2 MOV ILM, #imm8 MOVEA 22 / 6 1 *3 *1 : N は保存 / 復帰するレジスタの数による。最小は 1 *2 : RP が変化しない場合は 4, それ以外は 18 *3 : RP が変化しない場合は 6, それ以外は 22 *a : N は保存するレジスタの数による 352 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-14 ビット操作命令:21 命令 ニーモニック MOVB A, dir:bp # 3 ∼ 1 B 0 オペレーション byte (A) ← (dir:bp) b LH AH I Z * - S T N Z - - * * V C RMW - - MOVB A, addr16:bp 4 1 0 byte (A) ← (addr16:bp) b Z * MOVB A, io:bp 3 1 0 byte (A) ← (io:bp) b Z * - - - * * - - - - - * * - - MOVB dir:bp, A 3 3 0 bit (dir:bp) b ← (A) - - - - - - * * - - * MOVB addr16:bp, A 4 3 0 bit (addr16:bp) b ← (A) MOVB io:bp, A 3 3 0 bit (io:bp) b ← (A) - - - - - * * - - * - - - - - * * - - SETB dir:bp 3 3 0 * bit (dir:bp) b ← 1 - - - - - - - - - SETB addr16:bp 4 3 * 0 bit (addr16:bp) b ← 1 - - - - - - - - - SETB io:bp 3 * 3 0 bit (io:bp) b ← 1 - - - - - - - - - CLRB dir:bp * 3 3 0 bit (dir:bp) b ← 0 - - - - - - - - - CLRB * addr16:bp 4 3 0 bit (addr16:bp) b ← 0 - - - - - - - - - * CLRB BBC BBC BBC BBS BBS BBS SBBS io:bp dir:bp, rel addr16:bp, rel io:bp, rel dir:bp, rel addr16:bp, rel io:bp, rel addr16:bp, rel 3 4 5 4 4 5 4 5 3 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 bit (io:bp) b ← 0 Branch on (dir:bp) b = 0 Branch on (addr16:bp) b = 0 Branch on (io:bp) b = 0 Branch on (dir:bp) b = 1 Branch on (addr16:bp) b = 1 Branch on (io:bp) b = 1 Branch on (addr16:bp) b = 1, bit (addr16:bp) b ← 1 - - - - - - * * * * * * * - - * * WBTS io:bp 3 undefined*1 0 Wait until (io:bp) b = 1 - - - - - - - - - - WBTC io:bp 3 undefined*2 0 Wait until (io:bp) b = 0 - - - - - - - - - - - *1 : ビットが既にセットされていれば 4, それ以外は不定 *2 : ビットが既にクリアされていれば 4, それ以外は不定 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 353 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-15 アキュムレータ操作命令 ( バイト , ワード ) :6 命令 ニーモニック SWAP # 1 ∼ 1 B 0 オペレーション byte (A) 0-7 ←→ (A) 8-15 LH AH - word (AH) ←→ (AL) Byte sign extension Word sign extension Byte zero extension Word zero extension - * - - - - - - - - X Z - X Z - - - * * R R * * * * - - - SWAPW 1 1 0 EXT EXTW ZEXT ZEXTW 1 1 1 1 1 1 1 1 0 0 0 0 354 FUJITSU MICROELECTRONICS LIMITED I - S - T - N - Z - V - C - RMW - CM44-00203-3 付録 付録 B 命令一覧表 (351 命令 ) F2MC-16FX ファミリ 表 B-16 ストリング命令:10 命令 # ∼ B S T N Z V C MOVS/MOVSI brg3, brg3 2 RW0*2 1 byte transfer @AH+ ← @AL+, (RW0) times - - - - - - - - - MOVSD brg3, brg3 2 2*RW0 0 byte transfer @AH- ← @AL-, (RW0) times - - - - - - - - - - SCEQ/SCEQI brg3 2 2+2*N*3 0 byte search @AH+ = AL, (RW0) times or till match - - - - - * * * * - ニーモニック オペレーション LH AH I RMW - SCEQD brg3 2 2+2*N*3 0 byte search @AH- = AL, (RW0) times or till match - - - - - * * * * - FILS/FILSI brg3 2 RW0/2*4 1 byte fill @AH+ ← AL, (RW0) times - - - - - * * - - - MOVSW/MOVSWI brg3, brg3 2 2*RW0 1 word transfer @AH+ ← @AL+, (RW0) times - - - - - - - - - MOVSWD brg3, brg3 2 2*RW0 (1+1)*RW0*a word transfer @AH- ← @AL-, (RW0) times - - - - - - - - - - SCWEQ/SCWEQI brg3 2 2+2*N*3 N*b word search @AH+ = AL, (RW0) times or till match - - - - - * * * * - SCWEQD brg3 2 2+2*N*3 N*b word search @AH- = AL, (RW0) times or till match - - - - - * * * * - FILSW/FILSWI brg3 2 RW0 1 word fill @AH+ ← AL, (RW0) times - - - - - * * - - - *1 : RW0=0 であれば , 全文字列操作には 1 サイクルが必要 *2 : 範囲が重複していれば 2*RW0, 最適化は行えない *3 : RW0=0 であれば 1, RW0=1 であれば 3, N は一致するまで比較された項目の数 *4 : バイト数が奇数の場合 , サイクル数は端数切り上げ *a : src と dest アドレスの両方が奇数であれば , 補正は 2*RW0。src または dest のみが奇数であれば , 1*RW0 *b : N は一致するまで比較された項目の数 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 355 付録 付録 C 命令マップ 付録 C F2MC-16FX ファミリ 命令マップ ここでは , F2MC-16FX CPU の 命令マップの一覧を記載します。 C.1 命令マップの構造 C.2 基本ページマップ C.3 ビット操作系命令マップ C.4 文字列操作系命令マップ C.5 2 バイト系統マップ C.6 ea 系命令 C.7 MOVEA RWi,ea 命令 C.8 MOV Ri,ea 命令 C.9 MOVW RWi,ea 命令 C.10 MOV ea,Ri 命令 C.11 MOVW ea,RWi 命令 C.12 XCH Ri,ea 命令 C.13 XCHW RWi,ea 命令 356 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 付録 付録 C 命令マップ F2MC-16FX ファミリ C.1 命令マップの構造 F2MC-16FX CPU の命令コードは 1 ∼ 2 バイトで構成されています。命令マップも 1 ∼ 2 バイト用の複数ページで構成されています。 ■ 命令マップの構造 図 C.1-1 に , 命令マップの構造を示します。 図 C.1-1 F2MC-16FX CPU 命令マップの構造 :第 1 バイト 基本ページマップ ビット操作系命令 文字列操作系命令 2 バイト系命令 ea 系命令× 9 :第 2 バイト 命令コードが 1 バイト命令 (NOP 命令など ) の場合は , 基本ページに命令コードが記述 されています。命令コードが 2 バイト命令 (MOVS 命令など ) の場合は , 基本ページ マップを参照して, 次に参照する命令コードの第2 バイト目が記述されているマップの 名称を調べてください。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 357 付録 付録 C 命令マップ F2MC-16FX ファミリ 図 C.1-2 に , 実際の命令コードと命令マップの対応を示します。 図 C.1-2 実際の命令とマップの対応図 命令によっては, ない場合もある 命令によって 長さが異なる 命令コード 第 1 バイト 第 2 バイト オペランド オペランド ・・・ [ 基本ページマップ ] XY +Z [ 拡張ページマップ ]* UV +W *:拡張ページマップとはビット操作系命令・文字列操作系命令・2 バイト系命令・ea 系命令 の総称で , 実際は各系列の命令ごとに複数存在します。 358 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 F2MC-16FX ファミリ C.2 付録 付録 C 命令マップ 基本ページマップ 表 C.2-1 に , 基本ページマップの一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 359 360 JCTX @A NEG LINK SPB ADB DTB PCB FUJITSU MICROELECTRONICS LIMITED SWAPW ADDSP #imm16 ASRW +E A LSRW +F A +D EXTW LSLW +C A ZEXTW CMPL A, #imm32 NEGW +B A INTE MOV ILM, #imm8 MULUW A XORW A ORW A ANDW A CMPW A CBNE A, #imm8, rel SUBW A ADDW A ADDL A, #imm32 SUBL A, #imm32 MULU A DIVU A OR CCR, #imm8 AND CCR, #imm8 CMP A ADDC A SUB A, dir ADD A, dir 20 ADDSP #imm8 SWAP ZEXT MOV +A RP, #imm8 +9 UNLINK +8 #imm8 +7 +6 +5 +4 +3 A EXT SUBDC A NCC CMR 10 ADDDC INT9 NOP +2 A +1 +0 00 MOVW dir, A MOVW A, dir MOVW SP, A MOVW A, SP MOVX A, dir MOV dir, #imm8 MOVX A, #imm8 MOV A, #imm8 MOV dir, A MOV A, dir 40 NOTW A XORW A, #imm16 ORW A, #imm16 ANDW A, #imm16 CMPW A, #imm16 PUSHW rlst PUSHW PS PUSHW AH PUSHW A MOVL A, #imm32 CWBNE MOVW A, A, #imm16, rel #imm16 SUBW A, #imm16 ADDW A, #imm16 NOT A XOR A, #imm8 OR A, #imm8 AND A, #imm8 CMP A, #imm8 SUBC A SUB A, #imm8 ADD A, #imm8 30 POPW rlst POPW PS POPW AH POPW A MOVW addr16, A MOVW A, addr16 MOVW io, A MOVW A, io MOVX A, addr16 MOVW io, #imm16 MOVX A, io MOV io, #imm8 MOV addr16, A MOV A, addr16 MOV io, A MOV A, io 50 ea MOVW RW2, A MOVW RW3, A MOVW RW4, A MOVW RW5, A MOVW RW6, A MOVW RW7, A MOVW A, RW2 MOVW A, RW3 MOVW A, RW4 MOVW A, RW5 MOVW A, RW6 MOVW A, RW7 instruction instruction instruction XCHW RWi, ea instruction instruction 2-byte instruction XCH Ri, ea String operation instruction MOVW ea, RWi MOV ea, Ri instruction MOVW RWi, ea instruction MOV Ri, ea instruction A, RW1 MOVW RW1, A MOVEA RWi, ea MOVW MOV R7, A MOV R6, A MOV R5, A MOV R4, A MOV R3, A MOV R2, A MOV R1, A MOV R0, A 90 MOVW RW0, A MOV A, R7 MOV A, R6 MOV A, R5 MOV A, R4 MOV A, R3 MOV A, R2 MOV A, R1 MOV A, R0 80 MOVW A, RW0 instruction 9 ea instruction 8 ea instruction 7 ea instruction 6 ea instruction 5 ea instruction 4 ea instruction 3 ea instruction 2 ea instruction 1 70 Bit operation RETI INTP addr24 INT addr16 INT #vct8 RET RETP CALLP addr24 CALL addr16 JMPP addr24 JMP addr16 JMP @A BRA rel 60 MOVW RW7, #imm16 MOVW RW6, #imm16 MOVW RW5, #imm16 MOVW RW4, #imm16 MOVW RW3, #imm16 MOVW RW2, #imm16 MOVW RW1, #imm16 MOVW RW0, #imm16 MOV R7, #imm8 MOV R6, #imm8 MOV R5, #imm8 MOV R4, #imm8 MOV R3, #imm8 MOV R2, #imm8 MOV R1, #imm8 MOV R0, #imm8 A0 MOVN A @RW7+disp8 #imm4 @RW7+disp8, A, MOVW A, MOVN #imm4 A @RW6+disp8 MOVW @RW6+disp8, A, MOVW A, MOVN #imm4 A @RW5+disp8 MOVW @RW5+disp8, A, MOVN #imm4 MOVW A, MOVW @RW4+disp8 A @RW4+disp8, A, MOVN #imm4 A @RW3+disp8 MOVW @RW3+disp8, A, MOVW A, MOVN #imm4 A @RW2+disp8 MOVW @RW2+disp8, A, MOVN #imm4 MOVW A, MOVW A @RW1+disp8 MOVN @RW1+disp8, A, MOVW #imm4 @RW0+disp8, A, MOVW MOVN A, @RW7+disp8 #imm4 MOVX A MOVN A, @RW6+disp8 #imm4 MOVX A MOVN A, @RW5+disp8 #imm4 MOVX A MOVN A, @RW4+disp8 #imm4 MOVX A MOVN A, @RW3+disp8 #imm4 MOVX A MOVN A, @RW2+disp8 #imm4 MOVX A MOVN A, @RW1+disp8 #imm4 MOVX A MOVW A, MOVW A, D0 MOVN A, @RW0+disp8 #imm4 C0 MOVX A @RW0+disp8 A MOVW A, MOVX A, R7 MOVX A, R6 MOVX A, R5 MOVX A, R4 MOVX A, R3 MOVX A, R2 MOVX A, R1 MOVX A, R0 B0 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 CALLV #vct4 E0 BHI rel BLS rel BGT rel BLE rel BGE rel BLT rel BNT rel BT rel BNV rel BV rel BP rel BN rel BNC/BHS rel BC/BLO rel BNZ/BNE rel BZ/BEQ rel F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.2-1 基本ページマップ CM44-00203-3 F2MC-16FX ファミリ C.3 付録 付録 C 命令マップ ビット操作系命令マップ 表 C.3-1 に , ビット操作系命令マップの一覧を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 361 362 MOVB ip:bp, A MOVB ip:bp, A MOVB ip:bp, A MOVB MOVB MOVB ip:bp, A MOVB ip:bp, A MOVB ip:bp, A MOVB dir:bp, A MOVB A, addr16:bp MOVB A, addr16:bp MOVB A, addr16:bp MOVB A, addr16:bp MOVB A, addr16:bp MOVB A, addr16:bp MOVB A, addr16:bp MOVB A, addr16:bp MOVB MOVB MOVB MOVB MOVB MOVB FUJITSU MICROELECTRONICS LIMITED MOVB MOVB MOVB MOVB MOVB dir:bp +F A, dir:bp +E A, dir:bp +D A, dir:bp +C A, dir:bp +B A, dir:bp +A A, dir:bp +9 A, dir:bp +8 A, io:bp +7 A, io:bp +6 A, io:bp +5 A, io:bp MOVB dir:bp, A MOVB dir:bp, A MOVB dir:bp, A MOVB dir:bp, A MOVB dir:bp, A MOVB dir:bp, A MOVB dir:bp, A MOVB ip:bp, A +4 A, MOVB io:bp +3 A, io:bp +2 A, io:bp +1 A, io:bp +0 A, MOVB 20 MOVB ip:bp, A 10 MOVB 00 MOVB addr16:bp MOVB addr16:bp MOVB addr16:bp MOVB addr16:bp MOVB addr16:bp MOVB addr16:bp MOVB addr16:bp MOVB addr16:bp 30 CLRB dir:bp CLRB dir:bp CLRB dir:bp CLRB dir:bp CLRB dir:bp CLRB dir:bp CLRB dir:bp CLRB dir:bp CLRB io:bp CLRB io:bp CLRB io:bp CLRB io:bp CLRB io:bp CLRB io:bp CLRB io:bp CLRB io:bp 40 CLRB addr16:bp CLRB addr16:bp CLRB addr16:bp CLRB addr16:bp CLRB addr16:bp CLRB addr16:bp CLRB addr16:bp CLRB addr16:bp 50 SETB dir:bp SETB dir:bp SETB dir:bp SETB dir:bp SETB dir:bp SETB dir:bp SETB dir:bp SETB dir:bp SETB io:bp SETB io:bp SETB io:bp SETB io:bp SETB io:bp SETB io:bp SETB io:bp SETB io:bp 60 SETB addr16:bp SETB addr16:bp SETB addr16:bp SETB addr16:bp SETB addr16:bp SETB addr16:bp SETB addr16:bp SETB addr16:bp 70 BBC dir:bp, rel BBC dir:bp, rel BBC dir:bp, rel BBC dir:bp, rel BBC dir:bp, rel BBC dir:bp, rel BBC dir:bp, rel BBC dir:bp, rel BBC ip:bp, rel BBC ip:bp, rel BBC ip:bp, rel BBC ip:bp, rel BBC ip:bp, rel BBC ip:bp, rel BBC ip:bp, rel BBC ip:bp, rel 80 BBS io:bp, rel BBS io:bp, rel BBS io:bp, rel BBS io:bp, rel BBS io:bp, rel BBS io:bp, rel BBS io:bp, rel BBS io:bp, rel A0 BBC BBS addr16:bp, dir:bp, rel rel BBC BBS addr16:bp, dir:bp, rel rel BBC BBS addr16:bp, dir:bp, rel rel BBC BBS addr16:bp, dir:bp, rel rel BBC BBS addr16:bp, dir:bp, rel rel BBC BBS addr16:bp, dir:bp, rel rel BBC BBS addr16:bp, dir:bp, rel rel BBC BBS addr16:bp, dir:bp, rel rel 90 BBS addr16:bp, rel BBS addr16:bp, rel BBS addr16:bp, rel BBS addr16:bp, rel BBS addr16:bp, rel BBS addr16:bp, rel BBS addr16:bp, rel BBS addr16:bp, rel B0 WBTS io:bp WBTS io:bp WBTS io:bp WBTS io:bp WBTS io:bp WBTS io:bp WBTS io:bp WBTS io:bp C0 D0 WBTC io:bp WBTC io:bp WBTC io:bp WBTC io:bp WBTC io:bp WBTC io:bp WBTC io:bp WBTC io:bp E0 SBBS addr16:bp, rel SBBS addr16:bp, rel SBBS addr16:bp, rel SBBS addr16:bp, rel SBBS addr16:bp, rel SBBS addr16:bp, rel SBBS addr16:bp, rel SBBS addr16:bp, rel F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.3-1 ビット操作系命令マップ ( 第 1 バイト =6CH) CM44-00203-3 F2MC-16FX ファミリ C.4 付録 付録 C 命令マップ 文字列操作系命令マップ 表 C.4-1 に , 文字列操作系命令マップの一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 363 364 MOVSD PCB, PCB MOVSD PCB, DTB MOVSD PCB, ADB MOVSD PCB, SPB MOVSI MOVSI MOVSI MOVSI MOVSD DTB, PCB MOVSD DTB, DTB MOVSD DTB, ADB MOVSD DTB, SPB MOVSD ADB, PCB MOVSD ADB, DTB MOVSD ADB, ADB MOVSD ADB, SPB MOVSD SPB, PCB MOVSD SPB, DTB MOVSD SPB, ADB MOVSD SPB, SPB MOVSI MOVSI MOVSI MOVSI MOVSI MOVSI FUJITSU MICROELECTRONICS LIMITED MOVSI MOVSI MOVSI MOVSI MOVSI SPB +F SPB, ADB +E SPB, DTB +D SPB, PCB +C SPB, SPB +B ADB, ADB +A ADB, DTB +9 ADB, PCB +8 ADB, SPB +7 DTB, ADB +6 DTB, DTB +5 DTB, PCB +4 DTB, MOVSI SPB +3 PCB, ADB +2 PCB, DTB +1 PCB, PCB +0 PCB, 10 00 MOVSWI SPB, SPB MOVSWI SPB, ADB MOVSWI SPB, DTB MOVSWI SPB, PCB MOVSWI ADB, SPB MOVSWI ADB, ADB MOVSWI ADB, DTB MOVSWI ADB, PCB MOVSWI DTB, SPB MOVSWI DTB, ADB MOVSWI DTB, DTB MOVSWI DTB, PCB MOVSWI PCB, SPB MOVSWI PCB, ADB MOVSWI PCB, DTB MOVSWI PCB, PCB 20 MOVSWD SPB, SPB MOVSWD SPB, ADB MOVSWD SPB, DTB MOVSWD SPB, PCB MOVSWD ADB, SPB MOVSWD ADB, ADB MOVSWD ADB, DTB MOVSWD ADB, PCB MOVSWD DTB, SPB MOVSWD DTB, ADB MOVSWD DTB, DTB MOVSWD DTB, PCB MOVSWD PCB, SPB MOVSWD PCB, ADB MOVSWD PCB, DTB MOVSWD PCB, PCB 30 40 50 60 70 SCEQI SPB SCEQI ADB SCEQI DTB SCEQI PCB 80 SCEQD SPB SCEQD ADB SCEQD DTB SCEQD PCB 90 SCWEQI SPB SCWEQI ADB SCWEQI DTB SCWEQI PCB A0 SCWEQD SPB SCWEQD ADB SCWEQD DTB SCWEQD PCB B0 FILSI SPB FILSI ADB FILSI DTB FILSI PCB C0 D0 FILSWI SPB FILSWI ADB FILSWI DTB FILSWI PCB E0 F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.4-1 文字列操作系命令マップ ( 第 1 バイト =6EH) CM44-00203-3 F2MC-16FX ファミリ C.5 付録 付録 C 命令マップ 2 バイト系統マップ 表 C.5-1 に , 2 バイト系統マップの一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 365 366 MOV ADB, A MOV SSB, A MOV USB, A MOV MOV MOV MOV DPR, A MOV @AL, AH MOVX A, @A RORC A MOV MOV ROLC FUJITSU MICROELECTRONICS LIMITED LSLL A, R0 MOVW @AL, AH ASRL A, R0 LSRL A, R0 LSLW MOVW ASRW LSRW R0 +F A, R0 +E A, @A +D A, R0 +C A, +B +A +9 +8 +7 A PCB +6 A, @A +5 A, DPR +4 A, MOV USB +3 A, SSB +2 A, ADB +1 A, DTB +0 A, MOV DTB, A 10 MOV 00 MOV 30 MOV 40 MOV MOV MOV MOV MOV MOV LSR A, R0 ASR A, R0 NRML A, R0 LSL A, R0 MOVW MOVW MOVW MOVW @RL3+disp8, A, @RL3+disp8 A MOVW @RL2+disp8, A, @RL2+disp8 A MOVW @RL1+disp8, A, @RL1+disp8 A MOVW @RL0+disp8, A, @RL0+disp8 A MOVW @RL3+disp8, A, @RL3+disp8 A @RL3+disp8 MOVX A, @RL2+disp8, A, @RL2+disp8 A @RL2+disp8 MOVX A, @RL1+disp8, A, @RL1+disp8 A @RL1+disp8 MOVX A, @RL0+disp8, A, @RL0+disp8 A @RL0+disp8 MOVX A, 20 50 60 DIV A MULW A MUL A 70 80 90 A0 B0 C0 D0 E0 F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.5-1 2 バイト系命令マップ ( 第 1 バイト =6FH) CM44-00203-3 F2MC-16FX ファミリ C.6 付録 付録 C 命令マップ ea 系命令 ea 系命令 ( 第 1 バイト =70H ∼第 1 バイト =78H) を次の 9 つに分けて示します。 • ea 系命令その 1 ( 第 1 バイト =70H)( 表 C.6-1 参照 ) • ea 系命令その 2 ( 第 1 バイト =71H)( 表 C.6-2 参照 ) • ea 系命令その 3 ( 第 1 バイト =72H)( 表 C.6-3 参照 ) • ea 系命令その 4 ( 第 1 バイト =73H)( 表 C.6-4 参照 ) • ea 系命令その 5 ( 第 1 バイト =74H)( 表 C.6-5 参照 ) • ea 系命令その 6 ( 第 1 バイト =75H)( 表 C.6-6 参照 ) • ea 系命令その 7 ( 第 1 バイト =76H)( 表 C.6-7 参照 ) • ea 系命令その 8 ( 第 1 バイト =77H)( 表 C.6-8 参照 ) • ea 系命令その 9 ( 第 1 バイト =78H)( 表 C.6-9 参照 ) CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 367 368 20 SUBL A, @RW1+disp8 RL0 ADDL A, SUBL A, @RW2+disp8 RL1 ADDL A, ADDL +2 A, RL1 ADDL +3 A, RL1 FUJITSU MICROELECTRONICS LIMITED SUBL A, @RW4+disp8 RL2 ADDL A, SUBL A, @RW5+disp8 RL2 ADDL A, SUBL A, @RW6+disp8 RL3 ADDL A, SUBL A, @RW7+disp8 RL3 ADDL A, SUBL A, @RW0+disp16 @RW0 ADDL A, SUBL A, @RW1+disp16 @RW1 ADDL A, SUBL A, @RW2+disp16 @RW2 ADDL A, SUBL A, @RW3+disp16 @RW3 ADDL A, SUBL A, @RW0+RW7 @RW0+ ADDL A, SUBL A, @RW1+RW7 @RW1+ ADDL A, SUBL A, @PC+disp16 @RW2+ ADDL A, addr16 ADDL +5 A, RL2 ADDL +6 A, RL3 ADDL +7 A, RL3 ADDL +8 A, @RW0 ADDL +9 A, @RW1 ADDL +A A, @RW2 ADDL +B A, @RW3 ADDL +C A, @RW0+ ADDL +D A, @RW1+ ADDL +E A, @RW2+ ADDL +F A, @RW3+ SUBL A, @RW3+ ADDL A, ADDL +4 A, RL2 SUBL A, @RW3+disp8 RL1 ADDL A, SUBL A, @RW0+disp8 RL0 ADDL A, 10 ADDL +1 A, RL0 RL0 +0 A, ADDL 00 CWBNE RW0, 40 CWBNE RW1, CWBNE RW2, CWBNE RW3, CWBNE RW4, CWBNE RW5, CWBNE RW6, CWBNE RW7, CWBNE @RW0, CWBNE @RW1, CWBNE @RW2, CWBNE @RW3, CWBNE @RW0+, CWBNE @RW1+, CWBNE @RW2+, SUBL A, addr16 CWBNE addr16, #imm16, rel #imm16, rel CMPL A, @RW3+ CMPL @PC+disp16, A, #imm16, rel @RW2+ CWBNE CMPL @RW1+RW7, A, #imm16, rel @RW1+ CWBNE CMPL @RW0+RW7, A, #imm16, rel @RW0+ CWBNE CMPL @RW3+disp16, A, #imm16, rel @RW3 CWBNE CMPL @RW2+disp16, A, #imm16, rel @RW2 CWBNE CMPL @RW1+disp16, A, #imm16, rel @RW1 CWBNE CMPL @RW0+disp16, A, #imm16, rel @RW0 CWBNE CMPL @RW7+disp8, A, #imm16, rel RL3 CWBNE CMPL @RW6+disp8, A, #imm16, rel RL3 CWBNE CMPL @RW5+disp8, A, #imm16, rel RL2 CWBNE CMPL @RW4+disp8, A, #imm16, rel RL2 CWBNE CMPL @RW3+disp8, A, #imm16, rel RL1 CWBNE CMPL @RW2+disp8, A, #imm16, rel RL1 CWBNE CMPL @RW1+disp8, A, #imm16, rel RL0 CWBNE 60 CMPL @RW0+disp8, A, #imm16, rel RL0 CWBNE 50 CWBNE @RW3+, @PC+disp16 #imm16, rel SUBL A, @RW1+RW7 #imm16, rel SUBL A, @RW0+RW7 #imm16, rel SUBL A, @RW3+disp16 #imm16, rel SUBL A, @RW2+disp16 #imm16, rel SUBL A, @RW1+disp16 #imm16, rel SUBL A, @RW0+disp16 #imm16, rel SUBL A, @RW7+disp8 #imm16, rel SUBL A, @RW6+disp8 #imm16, rel SUBL A, @RW5+disp8 #imm16, rel SUBL A, @RW4+disp8 #imm16, rel SUBL A, @RW3+disp8 #imm16, rel SUBL A, @RW2+disp8 #imm16, rel SUBL A, @RW1+disp8 #imm16, rel SUBL A, @RW0+disp8 #imm16, rel SUBL A, 30 80 CMPL A, addr16 ANDL A, @RW3+ ANDL A, @PC+disp16 @RW2+ CMPL A, ANDL A, @RW1+RW7 @RW1+ CMPL A, ANDL A, @RW0+RW7 @RW0+ CMPL A, ANDL A, @RW3+disp16 @RW3 CMPL A, ANDL A, @RW2+disp16 @RW2 CMPL A, ANDL A, @RW1+disp16 @RW1 CMPL A, ANDL A, @RW0+disp16 @RW0 CMPL A, ANDL A, @RW7+disp8 RL3 CMPL A, ANDL A, @RW6+disp8 RL3 CMPL A, ANDL A, @RW5+disp8 RL2 CMPL A, ANDL A, @RW4+disp8 RL2 CMPL A, ANDL A, @RW3+disp8 RL1 CMPL A, ANDL A, @RW2+disp8 RL1 CMPL A, ANDL A, @RW1+disp8 RL0 CMPL A, ANDL A, @RW0+disp8 RL0 CMPL A, 70 A0 ANDL A, addr16 ORL A, @RW3+ ORL A, @PC+disp16 @RW2+ ANDL A, ORL A, @RW1+RW7 @RW1+ ANDL A, ORL A, @RW0+RW7 @RW0+ ANDL A, ORL A, @RW3+disp16 @RW3 ANDL A, ORL A, @RW2+disp16 @RW2 ANDL A, ORL A, @RW1+disp16 @RW1 ANDL A, ORL A, @RW0+disp16 @RW0 ANDL A, ORL A, @RW7+disp8 RL3 ANDL A, ORL A, @RW6+disp8 RL3 ANDL A, ORL A, @RW5+disp8 RL2 ANDL A, ORL A, @RW4+disp8 RL2 ANDL A, ORL A, @RW3+disp8 RL1 ANDL A, ORL A, @RW2+disp8 RL1 ANDL A, ORL A, @RW1+disp8 RL0 ANDL A, ORL A, @RW0+disp8 RL0 ANDL A, 90 C0 ORL A, addr16 XORL A, @RW3+ XORL A, @PC+disp16 @RW2+ ORL A, XORL A, @RW1+RW7 @RW1+ ORL A, XORL A, @RW0+RW7 @RW0+ ORL A, XORL A, @RW3+disp16 @RW3 ORL A, XORL A, @RW2+disp16 @RW2 ORL A, XORL A, @RW1+disp16 @RW1 ORL A, XORL A, @RW0+disp16 @RW0 ORL A, XORL A, @RW7+disp8 RL3 ORL A, XORL A, @RW6+disp8 RL3 ORL A, XORL A, @RW5+disp8 RL2 ORL A, XORL A, @RW4+disp8 RL2 ORL A, XORL A, @RW3+disp8 RL1 ORL A, XORL A, @RW2+disp8 RL1 ORL A, XORL A, @RW1+disp8 RL0 ORL A, XORL A, @RW0+disp8 RL0 ORL A, B0 E0 XORL A, addr16 CBNE @RW3+, #imm8, rel CBNE @RW2+, @PC+disp16 #imm8, rel XORL A, CBNE @RW1+, @RW1+RW7 #imm8, rel XORL A, CBNE @RW0+, @RW0+RW7 #imm8, rel XORL A, CBNE @RW3, @RW3+disp16 #imm8, rel XORL A, CBNE @RW2, @RW2+disp16 #imm8, rel XORL A, CBNE @RW1, @RW1+disp16 #imm8, rel XORL A, CBNE @RW0, @RW0+disp16 #imm8, rel XORL A, CBNE R7, @RW7+disp8 #imm8, rel XORL A, CBNE R6, @RW6+disp8 #imm8, rel XORL A, CBNE R5, @RW5+disp8 #imm8, rel XORL A, CBNE R4, @RW4+disp8 #imm8, rel XORL A, CBNE R3, @RW3+disp8 #imm8, rel XORL A, CBNE R2, @RW2+disp8 #imm8, rel XORL A, CBNE R1, @RW1+disp8 #imm8, rel XORL A, CBNE R0, @RW0+disp8 #imm8, rel XORL A, D0 CBNE addr16, #imm8, rel #imm8, rel @PC+disp16, CBNE #imm8, rel @RW1+RW7, CBNE #imm8, rel @RW0+RW7, CBNE #imm8, rel @RW3+disp16, CBNE #imm8, rel @RW2+disp16, CBNE #imm8, rel @RW1+disp16, CBNE #imm8, rel @RW0+disp16, CBNE #imm8, rel @RW7+disp8, CBNE #imm8, rel @RW6+disp8, CBNE #imm8, rel @RW5+disp8, CBNE #imm8, rel @RW4+disp8, CBNE #imm8, rel @RW3+disp8, CBNE #imm8, rel @RW2+disp8, CBNE #imm8, rel @RW1+disp8, CBNE #imm8, rel @RW0+disp8, CBNE F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.6-1 ea 系命令 その 1 ( 第 1 バイト =70H) CM44-00203-3 CM44-00203-3 CALLP @@RW1+disp8 @RL0 JMPP CALLP @@RW2+disp8 @RL1 JMPP JMPP +2 @RL1 JMPP +3 @RL1 FUJITSU MICROELECTRONICS LIMITED CALLP @@RW4+disp8 @RL2 JMPP CALLP @@RW5+disp8 @RL2 JMPP CALLP @@RW6+disp8 @RL3 JMPP CALLP @@RW7+disp8 @RL3 JMPP CALLP @@RW0+disp16 @@RW0 JMPP CALLP @@RW1+disp16 @@RW1 JMPP CALLP @@RW2+disp16 @@RW2 JMPP JMPP +5 @RL2 JMPP +6 @RL3 JMPP +7 @RL3 JMPP +8 @@RW0 JMPP +9 @@RW1 JMPP +A @@RW2 JMPP +B @@RW3 INCL DECL @PC+disp16 @RW2+ INCL addr16 JMPP JMPP CALLP CALLP INCL +E @@RW2+ @@PC+disp16 @@RW2+ @@PC+disp16 @RW2+ JMPP JMPP +F @@RW3+ @addr16 DECL @RW3+ DECL @RW1+RW7 @RW1+ INCL @RW3+ INCL JMPP JMPP CALLP CALLP INCL +D @@RW1+ @@RW1+RW7 @@RW1+ @@RW1+RW7 @RW1+ CALLP CALLP @@RW3+ @addr16 DECL @RW0+RW7 @RW0+ DECL @RW3+disp16 @RW3 INCL DECL @RW2+disp16 @RW2 INCL DECL @RW1+disp16 @RW1 INCL DECL @RW0+disp16 @RW0 INCL DECL @RW7+disp8 RL3 INCL DECL @RW6+disp8 RL3 INCL DECL @RW5+disp8 RL2 INCL DECL @RW4+disp8 RL2 INCL DECL @RW3+disp8 RL1 INCL DECL @RW2+disp8 RL1 INCL DECL @RW1+disp8 RL0 INCL 60 DECL @RW0+disp8 RL0 INCL 50 INCL INCL @@RW3+disp16 @RW3 CALLP INCL @@RW2+disp16 @RW2 CALLP INCL @@RW1+disp16 @RW1 CALLP INCL @@RW0+disp16 @RW0 CALLP INCL @@RW7+disp8 RL3 CALLP INCL @@RW6+disp8 RL3 CALLP INCL @@RW5+disp8 RL2 CALLP INCL @@RW4+disp8 RL2 CALLP INCL @@RW3+disp8 RL1 CALLP INCL @@RW2+disp8 RL1 CALLP INCL @@RW1+disp8 RL0 CALLP 40 INCL @@RW0+disp8 RL0 CALLP 30 JMPP JMPP CALLP CALLP INCL +C @@RW0+ @@RW0+RW7 @@RW0+ @@RW0+RW7 @RW0+ CALLP @@RW3+disp16 @@RW3 JMPP JMPP +4 @RL2 CALLP @@RW3+disp8 @RL1 JMPP JMPP +1 @RL0 CALLP 20 @@RW0+disp8 @RL0 JMPP 10 +0 @RL0 JMPP 00 RL0 DECL addr16 MOVL A, @RW3+ MOVL @PC+disp16 A, @RW2+ DECL MOVL @RW1+RW7 A, @RW1+ DECL MOVL @RW0+RW7 A, @RW0+ DECL MOVL @RW3+disp16 A, @RW3 DECL MOVL @RW2+disp16 A, @RW2 DECL MOVL @RW1+disp16 A, @RW1 DECL MOVL @RW0+disp16 A, @RW0 DECL MOVL @RW7+disp8 A, RL3 DECL MOVL @RW6+disp8 A, RL3 DECL MOVL @RW5+disp8 A, RL2 DECL MOVL @RW4+disp8 A, RL2 DECL MOVL @RW3+disp8 A, RL1 DECL MOVL @RW2+disp8 A, RL1 DECL MOVL @RW1+disp8 A, RL0 DECL 80 MOVL @RW0+disp8 A, DECL 70 A0 MOVL A, addr16 MOVL @RW3+, A MOVL @RW2+, @PC+disp16 A MOVL A, MOVL @RW1+, @RW1+RW7 A MOVL A, MOVL @RW0+, @RW0+RW7 A MOVL A, MOVL A, @RW3, @RW3+disp16 A MOVL MOVL @RW2, @RW2+disp16 A MOVL A, MOVL @RW1, @RW1+disp16 A MOVL A, MOVL @RW0, @RW0+disp16 A MOVL A, MOVL RL3, @RW7+disp8 A MOVL A, MOVL RL3, @RW6+disp8 A MOVL A, MOVL RL2, @RW5+disp8 A MOVL A, MOVL RL2, @RW4+disp8 A MOVL A, MOVL RL1, @RW3+disp8 A MOVL A, MOVL RL1, @RW2+disp8 A MOVL A, MOVL RL0, @RW1+disp8 A MOVL A, MOVL RL0, @RW0+disp8 A MOVL A, 90 MOVL addr16, A MOV @RW3+, #imm8 MOV @PC+disp16, @RW2+, A #imm8 MOVL MOV @RW1+RW7, @RW1+, A #imm8 MOVL MOV @RW0+RW7, @RW0+, A #imm8 MOVL MOV @RW3+disp16, @RW3, A #imm8 MOVL MOV @RW2+disp16, @RW2, A #imm8 MOVL MOV @RW1+disp16, @RW1, A #imm8 MOVL MOV @RW0+disp16, @RW0, A #imm8 MOVL MOV @RW7+disp8, R7, A #imm8 MOVL MOV @RW6+disp8, R6, A #imm8 MOVL MOV @RW5+disp8, R5, A #imm8 MOVL MOV @RW4+disp8, R4, A #imm8 MOVL MOV @RW3+disp8, R3, A #imm8 MOVL MOV @RW2+disp8, R2, A #imm8 MOVL A @RW1+disp8, MOV R1, #imm8 #imm8 RW0 MOV addr16, #imm8 MOVEA A, @RW3+ MOVEA @PC+disp16, A, #imm8 @RW2+ MOV MOVEA @RW1+RW7, A, #imm8 @RW1+ MOV MOVEA @RW0+RW7, A, #imm8 @RW0+ MOV MOVEA @RW3+disp16, A, #imm8 @RW3 MOV MOVEA @RW2+disp16, A, #imm8 @RW2 MOV MOVEA @RW1+disp16, A, #imm8 @RW1 MOV MOVEA @RW0+disp16, A, #imm8 @RW0 MOV MOVEA @RW7+disp8, A, #imm8 RW7 MOV MOVEA @RW6+disp8, A, #imm8 RW6 MOV MOVEA @RW5+disp8, A, #imm8 RW5 MOV MOVEA @RW4+disp8, A, #imm8 RW4 MOV MOVEA @RW3+disp8, A, #imm8 RW3 MOV MOVEA @RW2+disp8, A, #imm8 RW2 MOV MOVEA @RW1+disp8, A, #imm8 RW1 MOV #imm8 MOVL E0 MOVEA A MOV D0 @RW0+disp8, A, MOV C0 @RW0+disp8, R0, MOVL B0 MOVEA A, addr16 @PC+disp16 MOVEA A, @RW1+RW7 MOVEA A, @RW0+RW7 MOVEA A, @RW3+disp16 MOVEA A, @RW2+disp16 MOVEA A, @RW1+disp16 MOVEA A, @RW0+disp16 MOVEA A, @RW7+disp8 MOVEA A, @RW6+disp8 MOVEA A, @RW5+disp8 MOVEA A, @RW4+disp8 MOVEA A, @RW3+disp8 MOVEA A, @RW2+disp8 MOVEA A, @RW1+disp8 MOVEA A, @RW0+disp8 MOVEA A, F0 F2MC-16FX ファミリ 付録 付録 C 命令マップ 表 C.6-2 ea 系命令 その 2 ( 第 1 バイト =71H) 369 370 RORC @RW1+disp8 R1 ROLC RORC @RW2+disp8 R2 ROLC ROLC +2 R2 ROLC +3 R3 ROLC RORC @RW5+disp8 R5 ROLC ROLC +5 R5 ROLC +6 R6 FUJITSU MICROELECTRONICS LIMITED RORC @RW7+disp8 R7 ROLC RORC @RW0+disp16 @RW0 ROLC RORC @RW1+disp16 @RW1 ROLC RORC @RW2+disp16 @RW2 ROLC RORC @RW3+disp16 @RW3 ROLC RORC @RW0+RW7 @RW0+ ROLC RORC @RW1+RW7 @RW1+ ROLC RORC @PC+disp16 @RW2+ ROLC addr16 ROLC +8 @RW0 ROLC +9 @RW1 ROLC +A @RW2 ROLC +B @RW3 ROLC +C @RW0+ ROLC +D @RW1+ ROLC +E @RW2+ ROLC +F @RW3+ RORC @RW3+ ROLC ROLC +7 R7 @RW6+disp8 RORC @RW4+disp8 R4 RORC R6 ROLC ROLC +4 R4 RORC @RW3+disp8 R3 ROLC ROLC +1 R1 RORC @RW0+disp8 R0 ROLC ROLC 20 +0 R0 10 00 INC INC R6 40 RORC addr16 INC @RW3+ INC @PC+disp16 @RW2+ RORC INC @RW1+RW7 @RW1+ RORC INC @RW0+RW7 @RW0+ RORC INC @RW3+disp16 @RW3 RORC INC @RW2+disp16 @RW2 RORC INC @RW1+disp16 @RW1 RORC INC @RW0+disp16 @RW0 RORC INC @RW7+disp8 R7 RORC @RW6+disp8 RORC INC @RW5+disp8 R5 RORC INC @RW4+disp8 R4 RORC INC @RW3+disp8 R3 RORC INC @RW2+disp8 R2 RORC INC @RW1+disp8 R1 RORC @RW0+disp8 R0 RORC 30 INC addr16 DEC @RW3+ DEC @PC+disp16 @RW2+ INC DEC @RW1+RW7 @RW1+ INC DEC @RW0+RW7 @RW0+ INC DEC @RW3+disp16 @RW3 INC DEC @RW2+disp16 @RW2 INC DEC @RW1+disp16 @RW1 INC DEC @RW0+disp16 @RW0 INC DEC @RW7+disp8 R7 INC DEC @RW6+disp8 R6 INC DEC @RW5+disp8 R5 INC DEC @RW4+disp8 R4 INC DEC @RW3+disp8 R3 INC DEC @RW2+disp8 R2 INC DEC @RW1+disp8 R1 INC 60 DEC @RW0+disp8 R0 INC 50 R0 DEC addr16 MOV A, @RW3+ MOV @PC+disp16 A, @RW2+ DEC MOV @RW1+RW7 A, @RW1+ DEC MOV @RW0+RW7 A, @RW0+ DEC MOV @RW3+disp16 A, @RW3 DEC MOV @RW2+disp16 A, @RW2 DEC MOV @RW1+disp16 A, @RW1 DEC MOV @RW0+disp16 A, @RW0 DEC MOV @RW7+disp8 A, R7 DEC MOV @RW6+disp8 A, R6 DEC MOV @RW5+disp8 A, R5 DEC MOV @RW4+disp8 A, R4 DEC MOV @RW3+disp8 A, R3 DEC MOV @RW2+disp8 A, R2 DEC MOV @RW1+disp8 A, R1 DEC 80 MOV @RW0+disp8 A, DEC 70 A0 MOV A, addr16 MOV @RW3+, A MOV @RW2+, @PC+disp16 A MOV A, MOV @RW1+, @RW1+RW7 A MOV A, MOV @RW0+, @RW0+RW7 A MOV A, MOV @RW3, @RW3+disp16 A MOV A, MOV @RW2, @RW2+disp16 A MOV A, MOV @RW1, @RW1+disp16 A MOV A, MOV @RW0, @RW0+disp16 A MOV A, MOV R7, @RW7+disp8 A MOV A, MOV R6, @RW6+disp8 A MOV A, MOV R5, @RW5+disp8 A MOV A, MOV R4, @RW4+disp8 A MOV A, MOV R3, @RW3+disp8 A MOV A, MOV R2, @RW2+disp8 A MOV A, MOV R1, @RW1+disp8 A MOV A, MOV R0, @RW0+disp8 A MOV A, 90 MOVX A, MOVX R0 MOV addr16, A MOVX A, @RW3+ MOVX @PC+disp16, A, A @RW2+ MOV MOVX @RW1+RW7, A, A @RW1+ MOV MOVX @RW0+RW7, A, A @RW0+ MOV MOVX @RW3+disp16, A, A @RW3 MOV MOVX @RW2+disp16, A, A @RW2 MOV MOVX @RW1+disp16, A, A @RW1 MOV MOVX @RW0+disp16, A, A @RW0 MOV MOVX @RW7+disp8, A, A R7 MOV MOVX @RW6+disp8, A, A R6 MOV MOVX @RW5+disp8, A, A R5 MOV MOVX @RW4+disp8, A, A R4 MOV MOVX @RW3+disp8, A, A R3 MOV MOVX @RW2+disp8, A, A R2 MOV MOVX @RW1+disp8, A, A R1 MOV A E0 MOVX A, addr16 XCH A, @RW3+ XCH A, @PC+disp16 @RW2+ MOVX A, XCH A, @RW1+RW7 @RW1+ MOVX A, XCH A, @RW0+RW7 @RW0+ MOVX A, XCH A, @RW3+disp16 @RW3 MOVX A, XCH A, @RW2+disp16 @RW2 MOVX A, XCH A, @RW1+disp16 @RW1 MOVX A, XCH A, @RW0+disp16 @RW0 MOVX A, XCH A, @RW7+disp8 R7 MOVX A, XCH A, @RW6+disp8 R6 MOVX A, XCH A, @RW5+disp8 R5 MOVX A, XCH A, @RW4+disp8 R4 MOVX A, XCH A, @RW3+disp8 R3 MOVX A, XCH A, @RW2+disp8 R2 MOVX A, XCH A, @RW1+disp8 R1 MOVX A, XCH A, @RW0+disp8 R0 D0 C0 @RW0+disp8, A, MOV B0 XCH A, addr16 @PC+disp16 XCH A, @RW1+RW7 XCH A, @RW0+RW7 XCH A, @RW3+disp16 XCH A, @RW2+disp16 XCH A, @RW1+disp16 XCH A, @RW0+disp16 XCH A, @RW7+disp8 XCH A, @RW6+disp8 XCH A, @RW5+disp8 XCH A, @RW4+disp8 XCH A, @RW3+disp8 XCH A, @RW2+disp8 XCH A, @RW1+disp8 XCH A, @RW0+disp8 XCH A, F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.6-3 ea 系命令 その 3 ( 第 1 バイト =72H) CM44-00203-3 CM44-00203-3 CALL @@RW1+disp8 @RW1 JMP CALL @@RW2+disp8 @RW2 JMP JMP +2 @RW2 JMP +3 @RW3 FUJITSU MICROELECTRONICS LIMITED CALL @@RW4+disp8 @RW4 JMP CALL @@RW5+disp8 @RW5 JMP CALL @@RW6+disp8 @RW6 JMP CALL @@RW7+disp8 @RW7 JMP CALL @@RW0+disp16 @@RW0 JMP CALL @@RW1+disp16 @@RW1 JMP CALL @@RW2+disp16 @@RW2 JMP JMP +5 @RW5 JMP +6 @RW6 JMP +7 @RW7 JMP +8 @@RW0 JMP +9 @@RW1 JMP +A @@RW2 JMP +B @@RW3 INCW 40 DECW 60 INCW DECW @PC+disp16 @RW2+ INCW addr16 JMP JMP CALL CALL INCW +E @@RW2+ @@PC+disp16 @@RW2+ @@PC+disp16 @RW2+ JMP JMP +F @@RW3+ @addr16 DECW @RW3+ DECW @RW1+RW7 @RW1+ INCW @RW3+ INCW JMP JMP CALL CALL INCW +D @@RW1+ @@RW1+RW7 @@RW1+ @@RW1+RW7 @RW1+ CALL CALL @@RW3+ @addr16 DECW @RW0+RW7 @RW0+ DECW @RW3+disp16 @RW3 INCW DECW @RW2+disp16 @RW2 INCW DECW @RW1+disp16 @RW1 INCW DECW @RW0+disp16 @RW0 INCW DECW @RW7+disp8 RW7 INCW DECW @RW6+disp8 RW6 INCW DECW @RW5+disp8 RW5 INCW DECW @RW4+disp8 RW4 INCW DECW @RW3+disp8 RW3 INCW DECW @RW2+disp8 RW2 INCW DECW @RW1+disp8 RW1 INCW @RW0+disp8 RW0 INCW 50 INCW INCW @@RW3+disp16 @RW3 CALL INCW @@RW2+disp16 @RW2 CALL INCW @@RW1+disp16 @RW1 CALL INCW @@RW0+disp16 @RW0 CALL INCW @@RW7+disp8 RW7 CALL INCW @@RW6+disp8 RW6 CALL INCW @@RW5+disp8 RW5 CALL INCW @@RW4+disp8 RW4 CALL INCW @@RW3+disp8 RW3 CALL INCW @@RW2+disp8 RW2 CALL INCW @@RW1+disp8 RW1 CALL @@RW0+disp8 RW0 CALL 30 JMP JMP CALL CALL INCW +C @@RW0+ @@RW0+RW7 @@RW0+ @@RW0+RW7 @RW0+ CALL @@RW3+disp16 @@RW3 JMP JMP +4 @RW4 CALL @@RW3+disp8 @RW3 JMP JMP +1 @RW1 CALL 20 @@RW0+disp8 @RW0 JMP 10 +0 @RW0 JMP 00 RW0 @RW0+ @RW1+ DECW addr16 @RW3+ MOVW A, @RW2+ MOVW @PC+disp16 A, DECW MOVW @RW1+RW7 A, DECW MOVW @RW0+RW7 A, DECW MOVW @RW3+disp16 A, @RW3 DECW MOVW @RW2+disp16 A, @RW2 DECW MOVW @RW1+disp16 A, @RW1 DECW MOVW @RW0+disp16 A, @RW0 DECW MOVW @RW7+disp8 A, RW7 DECW MOVW @RW6+disp8 A, RW6 DECW MOVW @RW5+disp8 A, RW5 DECW MOVW @RW4+disp8 A, RW4 DECW MOVW @RW3+disp8 A, RW3 DECW MOVW @RW2+disp8 A, RW2 DECW MOVW @RW1+disp8 A, RW1 DECW 80 MOVW @RW0+disp8 A, DECW 70 A0 MOVW @RW0, A MOVW A, addr16 MOVW @RW3+, A MOVW @RW2+, @PC+disp16 A MOVW A, MOVW @RW1+, @RW1+RW7 A MOVW A, MOVW @RW0+, @RW0+RW7 A MOVW A, MOVW @RW3, @RW3+disp16 A MOVW A, MOVW @RW2, @RW2+disp16 A MOVW A, MOVW @RW1, @RW1+disp16 A MOVW A, @RW0+disp16 MOVW A, MOVW RW7, @RW7+disp8 A MOVW A, MOVW RW6, @RW6+disp8 A MOVW A, MOVW RW5, @RW5+disp8 A MOVW A, MOVW RW4, @RW4+disp8 A MOVW A, MOVW RW3, @RW3+disp8 A MOVW A, MOVW RW2, @RW2+disp8 A MOVW A, MOVW RW1, @RW1+disp8 A MOVW A, MOVW RW0, @RW0+disp8 A MOVW A, 90 MOVW RW5, #imm16 MOVW RW4, #imm16 MOVW RW3, #imm16 MOVW RW2, #imm16 MOVW RW1, #imm16 MOVW MOVW RW0, #imm16 MOVW addr16, A MOVW @RW3+, #imm16 MOVW @PC+disp16, @RW2+, A #imm16 MOVW MOVW @RW1+RW7, @RW1+, A #imm16 MOVW MOVW @RW0+RW7, @RW0+, A #imm16 MOVW MOVW @RW3+disp16, @RW3, A #imm16 MOVW MOVW @RW2+disp16, @RW2, A #imm16 MOVW MOVW @RW1+disp16, @RW1, A #imm16 MOVW MOVW @RW0+disp16, @RW0, A #imm16 MOVW MOVW @RW7+disp8, RW7, A #imm16 MOVW XCHW A, RW5 XCHW A, RW4 XCHW A, RW3 XCHW A, RW2 XCHW A, RW1 XCHW A, RW0 E0 MOVW addr16, #imm16 XCHW A, @RW3+ XCHW @PC+disp16, A, #imm16 @RW2+ MOVW XCHW @RW1+RW7, A, #imm16 @RW1+ MOVW XCHW @RW0+RW7, A, #imm16 @RW0+ MOVW XCHW @RW3+disp16, A, #imm16 @RW3 MOVW XCHW @RW2+disp16, A, #imm16 @RW2 MOVW XCHW @RW1+disp16, A, #imm16 @RW1 MOVW XCHW @RW0+disp16, A, #imm16 @RW0 MOVW XCHW @RW7+disp8, A, #imm16 RW7 MOVW XCHW @RW6+disp8, A, #imm16 RW6 MOVW #imm16 @RW5+disp8, MOVW #imm16 @RW4+disp8, MOVW #imm16 @RW3+disp8, MOVW #imm16 @RW2+disp8, MOVW #imm16 @RW1+disp8, MOVW #imm16 @RW0+disp8, D0 C0 MOVW @RW6+disp8, RW6, A #imm16 MOVW A @RW5+disp8, MOVW A @RW4+disp8, MOVW A @RW3+disp8, MOVW A @RW2+disp8, MOVW A @RW1+disp8, MOVW A @RW0+disp8, MOVW B0 XCHW A, addr16 @PC+disp16 XCHW A, @RW1+RW7 XCHW A, @RW0+RW7 XCHW A, @RW3+disp16 XCHW A, @RW2+disp16 XCHW A, @RW1+disp16 XCHW A, @RW0+disp16 XCHW A, @RW7+disp8 XCHW A, @RW6+disp8 XCHW A, @RW5+disp8 XCHW A, @RW4+disp8 XCHW A, @RW3+disp8 XCHW A, @RW2+disp8 XCHW A, @RW1+disp8 XCHW A, @RW0+disp8 XCHW A, F0 F2MC-16FX ファミリ 付録 付録 C 命令マップ 表 C.6-4 ea 系命令 その 4 ( 第 1 バイト =73H) 371 372 SUB A, @RW1+disp8 R1 ADD A, SUB A, @RW2+disp8 R2 SUB A, @RW3+disp8 R3 ADD +2 A, R2 ADD +3 A, R3 FUJITSU MICROELECTRONICS LIMITED SUB A, @RW4+disp8 R4 ADD A, SUB A, @RW5+disp8 R5 ADD A, SUB A, @RW6+disp8 R6 ADD A, SUB A, @RW7+disp8 R7 ADD A, SUB A, @RW0+disp16 @RW0 ADD A, SUB A, @RW1+disp16 @RW1 ADD A, SUB A, @RW2+disp16 @RW2 ADD A, SUB A, @RW3+disp16 @RW3 ADD A, SUB A, @RW0+RW7 @RW0+ ADD A, SUB A, @RW1+RW7 @RW1+ ADD A, SUB A, @PC+disp16 @RW2+ ADD A, addr16 ADD +5 A, R5 ADD +6 A, R6 ADD +7 A, R7 ADD +8 A, @RW0 ADD +9 A, @RW1 ADD +A A, @RW2 ADD +B A, @RW3 ADD +C A, @RW0+ ADD +D A, @RW1+ ADD +E A, @RW2+ ADD +F A, @RW3+ SUB A, @RW3+ ADD A, ADD +4 A, R4 R0 ADD A, ADD A, ADD +1 A, R1 20 SUB A, @RW0+disp8 R0 +0 A, ADD A, 10 ADD 00 40 SUB A, addr16 ADDC A, @RW3+ ADDC A, @PC+disp16 @RW2+ SUB A, ADDC A, @RW1+RW7 @RW1+ SUB A, ADDC A, @RW0+RW7 @RW0+ SUB A, ADDC A, @RW3+disp16 @RW3 SUB A, ADDC A, @RW2+disp16 @RW2 SUB A, ADDC A, @RW1+disp16 @RW1 SUB A, ADDC A, @RW0+disp16 @RW0 SUB A, ADDC A, @RW7+disp8 R7 SUB A, ADDC A, @RW6+disp8 R6 SUB A, ADDC A, @RW5+disp8 R5 SUB A, ADDC A, @RW4+disp8 R4 SUB A, ADDC A, @RW3+disp8 R3 SUB A, ADDC A, @RW2+disp8 R2 SUB A, ADDC A, @RW1+disp8 R1 SUB A, ADDC A, @RW0+disp8 R0 SUB A, 30 60 ADDC A, addr16 CMP A, @RW3+ CMP A, @PC+disp16 @RW2+ ADDC A, CMP A, @RW1+RW7 @RW1+ ADDC A, CMP A, @RW0+RW7 @RW0+ ADDC A, CMP A, @RW3+disp16 @RW3 ADDC A, CMP A, @RW2+disp16 @RW2 ADDC A, CMP A, @RW1+disp16 @RW1 ADDC A, CMP A, @RW0+disp16 @RW0 ADDC A, CMP A, @RW7+disp8 R7 ADDC A, CMP A, @RW6+disp8 R6 ADDC A, CMP A, @RW5+disp8 R5 ADDC A, CMP A, @RW4+disp8 R4 ADDC A, CMP A, @RW3+disp8 R3 ADDC A, CMP A, @RW2+disp8 R2 ADDC A, CMP A, @RW1+disp8 R1 ADDC A, CMP A, @RW0+disp8 R0 ADDC A, 50 80 CMP A, addr16 AND A, @RW3+ AND A, @PC+disp16 @RW2+ CMP A, AND A, @RW1+RW7 @RW1+ CMP A, AND A, @RW0+RW7 @RW0+ CMP A, AND A, @RW3+disp16 @RW3 CMP A, AND A, @RW2+disp16 @RW2 CMP A, AND A, @RW1+disp16 @RW1 CMP A, AND A, @RW0+disp16 @RW0 CMP A, AND A, @RW7+disp8 R7 CMP A, AND A, @RW6+disp8 R6 CMP A, AND A, @RW5+disp8 R5 CMP A, AND A, @RW4+disp8 R4 CMP A, AND A, @RW3+disp8 R3 CMP A, AND A, @RW2+disp8 R2 CMP A, AND A, @RW1+disp8 R1 CMP A, AND A, @RW0+disp8 R0 CMP A, 70 A0 AND A, addr16 OR A, @RW3+ OR A, @PC+disp16 @RW2+ AND A, OR A, @RW1+RW7 @RW1+ AND A, OR A, @RW0+RW7 @RW0+ AND A, OR A, @RW3+disp16 @RW3 AND A, OR A, @RW2+disp16 @RW2 AND A, OR A, @RW1+disp16 @RW1 AND A, OR A, @RW0+disp16 @RW0 AND A, OR A, @RW7+disp8 R7 AND A, OR A, @RW6+disp8 R6 AND A, OR A, @RW5+disp8 R5 AND A, OR A, @RW4+disp8 R4 AND A, OR A, @RW3+disp8 R3 AND A, OR A, @RW2+disp8 R2 AND A, OR A, @RW1+disp8 R1 AND A, OR A, @RW0+disp8 R0 AND A, 90 C0 OR A, addr16 XOR A, @RW3+ XOR A, @PC+disp16 @RW2+ OR A, XOR A, @RW1+RW7 @RW1+ OR A, XOR A, @RW0+RW7 @RW0+ OR A, XOR A, @RW3+disp16 @RW3 OR A, XOR A, @RW2+disp16 @RW2 OR A, XOR A, @RW1+disp16 @RW1 OR A, XOR A, @RW0+disp16 @RW0 OR A, XOR A, @RW7+disp8 R7 OR A, XOR A, @RW6+disp8 R6 OR A, XOR A, @RW5+disp8 R5 OR A, XOR A, @RW4+disp8 R4 OR A, XOR A, @RW3+disp8 R3 OR A, XOR A, @RW2+disp8 R2 OR A, XOR A, @RW1+disp8 R1 OR A, XOR A, @RW0+disp8 R0 OR A, B0 E0 DBNZ R1, rel XOR A, addr16 DBNZ @RW3+, rel DBNZ @RW2+, @PC+disp16 rel XOR A, DBNZ @RW1+, @RW1+RW7 rel XOR A, DBNZ @RW0+, @RW0+RW7 rel XOR A, DBNZ @RW3, @RW3+disp16 rel XOR A, DBNZ @RW2, @RW2+disp16 rel XOR A, DBNZ @RW1, @RW1+disp16 rel XOR A, DBNZ @RW0, @RW0+disp16 rel XOR A, DBNZ R7, @RW7+disp8 rel XOR A, DBNZ R6, @RW6+disp8 rel XOR A, DBNZ R5, @RW5+disp8 rel XOR A, DBNZ R4, @RW4+disp8 rel XOR A, DBNZ R3, @RW3+disp8 rel XOR A, DBNZ R2, @RW2+disp8 rel XOR A, @RW1+disp8 XOR A, DBNZ R0, @RW0+disp8 rel XOR A, D0 DBNZ addr16, rel rel @PC+disp16, DBNZ rel @RW1+RW7, DBNZ rel @RW0+RW7, DBNZ rel @RW3+disp16, DBNZ rel @RW2+disp16, DBNZ rel @RW1+disp16, DBNZ rel @RW0+disp16, DBNZ rel @RW7+disp8, DBNZ rel @RW6+disp8, DBNZ rel @RW5+disp8, DBNZ rel @RW4+disp8, DBNZ rel @RW3+disp8, DBNZ rel @RW2+disp8, DBNZ rel @RW1+disp8, DBNZ rel @RW0+disp8, DBNZ F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.6-5 ea 系命令 その 5 ( 第 1 バイト =74H) CM44-00203-3 CM44-00203-3 SUB SUBC @RW2+disp8, A, A R2 SUB ADD SUB @RW2+disp8, R2, A A SUB @RW3+disp8, R3, A A ADD +2 R2, A ADD +3 R3, A FUJITSU MICROELECTRONICS LIMITED SUB SUBC @RW5+disp8, A, A R5 SUB SUBC @RW6+disp8, A, A R6 SUB SUBC @RW7+disp8, A, A R7 SUB SUBC @RW0+disp16, A, A @RW0 SUB SUBC @RW1+disp16, A, A @RW1 SUB SUBC @RW2+disp16, A, A @RW2 SUB SUBC @RW3+disp16, A, A @RW3 SUB SUBC @RW0+RW7, A, A @RW0+ SUB SUBC @RW1+RW7, A, A @RW1+ SUB ADD SUB @RW5+disp8, R5, A A ADD SUB @RW6+disp8, R6, A A ADD SUB @RW7+disp8, R7, A A ADD SUB @RW0+disp16, @RW0, A A ADD SUB @RW1+disp16, @RW1, A A ADD SUB @RW2+disp16, @RW2, A A ADD SUB @RW3+disp16, @RW3, A A ADD SUB @RW0+RW7, @RW0+, A A ADD SUB @RW1+RW7, @RW1+, A A ADD SUB @PC+disp16, @RW2+, A A ADD addr16, A ADD +5 R5, A ADD +6 R6, A ADD +7 R7, A ADD +8 @RW0, A ADD +9 @RW1, A ADD +A @RW2, A ADD +B @RW3, A ADD +C @RW0+, A ADD +D @RW1+, A ADD +E @RW2+, A ADD +F @RW3+, A SUB @RW3+, A SUBC @RW4+disp8, A, A R4 SUB @RW4+disp8, R4, A A SUB addr16, A SUBC A, @RW3+ SUBC @PC+disp16, A, A @RW2+ SUB ADD ADD +4 R4, A SUBC @RW3+disp8, A, A R3 SUBC @RW1+disp8, A, A R1 ADD SUB SUB @RW1+disp8, R1, A A R0 A ADD A 40 SUBC A SUB 30 @RW0+disp8, A, SUB 20 @RW0+disp8, R0, ADD 10 ADD +1 R1, A A +0 R0, ADD 00 SUBC A, addr16 @PC+disp16 SUBC A, @RW1+RW7 SUBC A, @RW0+RW7 SUBC A, @RW3+disp16 SUBC A, @RW2+disp16 SUBC A, @RW1+disp16 SUBC A, @RW0+disp16 SUBC A, @RW7+disp8 SUBC A, @RW6+disp8 SUBC A, @RW5+disp8 SUBC A, @RW4+disp8 SUBC A, @RW3+disp8 SUBC A, @RW2+disp8 SUBC A, @RW1+disp8 SUBC A, @RW0+disp8 SUBC A, 50 NEG @RW3+ NEG @RW2+ NEG @RW1+ NEG @RW0+ NEG @RW3 NEG @RW2 NEG @RW1 NEG @RW0 NEG R7 NEG R6 NEG R5 NEG R4 NEG R3 NEG R2 NEG R1 NEG R0 60 AND R0, A 80 NEG addr16 AND @RW3+, A AND @PC+disp16 @RW2+, A NEG AND @RW1+RW7 @RW1+, A NEG AND @RW0+RW7 @RW0+, A NEG AND @RW3+disp16 @RW3, A NEG AND @RW2+disp16 @RW2, A NEG AND @RW1+disp16 @RW1, A NEG AND @RW0+disp16 @RW0, A NEG AND @RW7+disp8 R7, A NEG AND @RW6+disp8 R6, A NEG AND @RW5+disp8 R5, A NEG AND @RW4+disp8 R4, A NEG AND @RW3+disp8 R3, A NEG AND @RW2+disp8 R2, A NEG AND @RW1+disp8 R1, A NEG @RW0+disp8 NEG 70 OR A A0 AND addr16, A OR @RW3+, A OR @PC+disp16, @RW2+, A A AND OR @RW1+RW7, @RW1+, A A AND OR @RW0+RW7, @RW0+, A A AND OR @RW3+disp16, @RW3, A A AND OR @RW2+disp16, @RW2, A A AND OR @RW1+disp16, @RW1, A A AND OR @RW0+disp16, @RW0, A A AND OR @RW7+disp8, R7, A A AND OR @RW6+disp8, R6, A A AND OR @RW5+disp8, R5, A A AND OR @RW4+disp8, R4, A A AND OR @RW3+disp8, R3, A A AND OR @RW2+disp8, R2, A A AND OR @RW1+disp8, R1, A A AND A @RW0+disp8, R0, AND 90 OR A OR addr16, A XOR @RW3+, A XOR @PC+disp16, @RW2+, A A OR XOR @RW1+RW7, @RW1+, A A OR XOR @RW0+RW7, @RW0+, A A OR XOR @RW3+disp16, @RW3, A A OR XOR @RW2+disp16, @RW2, A A OR XOR @RW1+disp16, @RW1, A A OR XOR @RW0+disp16, @RW0, A A OR XOR @RW7+disp8, R7, A A OR XOR @RW6+disp8, R6, A A OR XOR @RW5+disp8, R5, A A OR XOR @RW4+disp8, R4, A A OR XOR @RW3+disp8, R3, A A OR XOR @RW2+disp8, R2, A A OR XOR @RW1+disp8, R1, A A OR A C0 XOR @RW0+disp8, R0, B0 A NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT NOT XOR addr16, A A NOT @RW3+ @PC+disp16, @RW2+ XOR A @RW1+RW7, @RW1+ XOR A @RW0+RW7, @RW0+ XOR A @RW3+disp16, @RW3 XOR A @RW2+disp16, @RW2 XOR A @RW1+disp16, @RW1 XOR A @RW0+disp16, @RW0 XOR A @RW7+disp8, R7 XOR A @RW6+disp8, R6 XOR A @RW5+disp8, R5 XOR A @RW4+disp8, R4 XOR A @RW3+disp8, R3 XOR A @RW2+disp8, R2 XOR A @RW1+disp8, R1 XOR E0 NOT @RW0+disp8, R0 XOR D0 NOT addr16 @PC+disp16 NOT @RW1+RW7 NOT @RW0+RW7 NOT @RW3+disp16 NOT @RW2+disp16 NOT @RW1+disp16 NOT @RW0+disp16 NOT @RW7+disp8 NOT @RW6+disp8 NOT @RW5+disp8 NOT @RW4+disp8 NOT @RW3+disp8 NOT @RW2+disp8 NOT @RW1+disp8 NOT @RW0+disp8 NOT F0 F2MC-16FX ファミリ 付録 付録 C 命令マップ 表 C.6-6 ea 系命令 その 6 ( 第 1 バイト =75H) 373 374 @RW0+disp8 RW0 RW0 SUBW A, @RW1+disp8 RW1 ADDW A, SUBW A, @RW2+disp8 RW2 SUBW A, @RW3+disp8 RW3 ADDW +2 A, RW2 ADDW +3 A, RW3 FUJITSU MICROELECTRONICS LIMITED SUBW A, @RW5+disp8 RW5 ADDW A, SUBW A, @RW6+disp8 RW6 ADDW A, SUBW A, @RW7+disp8 RW7 SUBW A, @RW0+disp16 @RW0 SUBW A, @RW1+disp16 @RW1 ADDW A, SUBW A, @RW2+disp16 @RW2 ADDW A, SUBW A, @RW3+disp16 @RW3 ADDW A, SUBW A, @RW0+RW7 @RW0+ ADDW A, SUBW A, @RW1+RW7 @RW1+ ADDW A, SUBW A, @PC+disp16 @RW2+ ADDW A, addr16 ADDW +6 A, RW6 ADDW +7 A, RW7 ADDW +8 A, @RW0 ADDW @RW1 ADDW +A A, @RW2 ADDW +B A, @RW3 ADDW +C A, @RW0+ ADDW +D A, @RW1+ ADDW +E A, @RW2+ ADDW +F A, @RW3+ ADDW A, SUBW A, @RW3+ ADDW A, ADDW +5 A, RW5 +9 A, SUBW A, @RW4+disp8 RW4 ADDW A, ADDW A, ADDW +4 A, RW4 ADDW A, ADDW A, ADDW +1 A, RW1 SUBW A, ADDW A, +0 A, ADDW 20 10 00 ADDCW A, 40 SUBW A, addr16 ADDCW A, @RW3+ ADDCW A, @PC+disp16 @RW2+ SUBW A, ADDCW A, @RW1+RW7 @RW1+ SUBW A, ADDCW A, @RW0+RW7 @RW0+ SUBW A, ADDCW A, @RW3+disp16 @RW3 SUBW A, ADDCW A, @RW2+disp16 @RW2 SUBW A, ADDCW A, @RW1+disp16 @RW1 SUBW A, ADDCW A, @RW0+disp16 @RW0 SUBW A, ADDCW A, @RW7+disp8 RW7 SUBW A, ADDCW A, @RW6+disp8 RW6 SUBW A, ADDCW A, @RW5+disp8 RW5 SUBW A, ADDCW A, @RW4+disp8 RW4 SUBW A, ADDCW A, @RW3+disp8 RW3 SUBW A, ADDCW A, @RW2+disp8 RW2 SUBW A, ADDCW A, @RW1+disp8 RW1 SUBW A, @RW0+disp8 RW0 SUBW A, 30 CMPW A, 60 ADDCW A, addr16 CMPW A, @RW3+ CMPW A, @PC+disp16 @RW2+ ADDCW A, CMPW A, @RW1+RW7 @RW1+ ADDCW A, CMPW A, @RW0+RW7 @RW0+ ADDCW A, CMPW A, @RW3+disp16 @RW3 ADDCW A, CMPW A, @RW2+disp16 @RW2 ADDCW A, CMPW A, @RW1+disp16 @RW1 ADDCW A, CMPW A, @RW0+disp16 @RW0 ADDCW A, CMPW A, @RW7+disp8 RW7 ADDCW A, CMPW A, @RW6+disp8 RW6 ADDCW A, CMPW A, @RW5+disp8 RW5 ADDCW A, CMPW A, @RW4+disp8 RW4 ADDCW A, CMPW A, @RW3+disp8 RW3 ADDCW A, CMPW A, @RW2+disp8 RW2 ADDCW A, CMPW A, @RW1+disp8 RW1 ADDCW A, @RW0+disp8 RW0 ADDCW A, 50 ANDW A, 80 CMPW A, addr16 ANDW A, @RW3+ ANDW A, @PC+disp16 @RW2+ CMPW A, ANDW A, @RW1+RW7 @RW1+ CMPW A, ANDW A, @RW0+RW7 @RW0+ CMPW A, ANDW A, @RW3+disp16 @RW3 CMPW A, ANDW A, @RW2+disp16 @RW2 CMPW A, ANDW A, @RW1+disp16 @RW1 CMPW A, ANDW A, @RW0+disp16 @RW0 CMPW A, ANDW A, @RW7+disp8 RW7 CMPW A, ANDW A, @RW6+disp8 RW6 CMPW A, ANDW A, @RW5+disp8 RW5 CMPW A, ANDW A, @RW4+disp8 RW4 CMPW A, ANDW A, @RW3+disp8 RW3 CMPW A, ANDW A, @RW2+disp8 RW2 CMPW A, ANDW A, @RW1+disp8 RW1 CMPW A, @RW0+disp8 RW0 CMPW A, 70 ORW A, A0 ANDW A, addr16 ORW A, @RW3+ ORW A, @PC+disp16 @RW2+ ANDW A, ORW A, @RW1+RW7 @RW1+ ANDW A, ORW A, @RW0+RW7 @RW0+ ANDW A, ORW A, @RW3+disp16 @RW3 ANDW A, ORW A, @RW2+disp16 @RW2 ANDW A, ORW A, @RW1+disp16 @RW1 ANDW A, ORW A, @RW0+disp16 @RW0 ANDW A, ORW A, @RW7+disp8 RW7 ANDW A, ORW A, @RW6+disp8 RW6 ANDW A, ORW A, @RW5+disp8 RW5 ANDW A, ORW A, @RW4+disp8 RW4 ANDW A, ORW A, @RW3+disp8 RW3 ANDW A, ORW A, @RW2+disp8 RW2 ANDW A, ORW A, @RW1+disp8 RW1 ANDW A, @RW0+disp8 RW0 ANDW A, 90 XORW A, C0 ORW A, addr16 XORW A, @RW3+ XORW A, @PC+disp16 @RW2+ ORW A, XORW A, @RW1+RW7 @RW1+ ORW A, XORW A, @RW0+RW7 @RW0+ ORW A, XORW A, @RW3+disp16 @RW3 ORW A, XORW A, @RW2+disp16 @RW2 ORW A, XORW A, @RW1+disp16 @RW1 ORW A, XORW A, @RW0+disp16 @RW0 ORW A, XORW A, @RW7+disp8 RW7 ORW A, XORW A, @RW6+disp8 RW6 ORW A, XORW A, @RW5+disp8 RW5 ORW A, XORW A, @RW4+disp8 RW4 ORW A, XORW A, @RW3+disp8 RW3 ORW A, XORW A, @RW2+disp8 RW2 ORW A, XORW A, @RW1+disp8 RW1 ORW A, @RW0+disp8 RW0 ORW A, B0 XORW A, addr16 DWBNZ @RW3+, rel DWBNZ @RW2+, @PC+disp16 rel XORW A, DWBNZ @RW1+, @RW1+RW7 rel XORW A, DWBNZ @RW0+, @RW0+RW7 rel XORW A, DWBNZ @RW3, @RW3+disp16 rel XORW A, DWBNZ @RW2, @RW2+disp16 rel XORW A, DWBNZ @RW1, @RW1+disp16 rel XORW A, DWBNZ @RW0, @RW0+disp16 rel XORW A, DWBNZ RW7, @RW7+disp8 rel XORW A, DWBNZ RW6, @RW6+disp8 rel XORW A, DWBNZ RW5, @RW5+disp8 rel XORW A, DWBNZ RW4, @RW4+disp8 rel XORW A, DWBNZ RW3, @RW3+disp8 rel XORW A, DWBNZ RW2, @RW2+disp8 rel XORW A, DWBNZ RW1, @RW1+disp8 rel XORW A, E0 DWBNZ RW0, @RW0+disp8 rel XORW A, D0 DWBNZ addr16, rel rel @PC+disp16, DWBNZ rel @RW1+RW7, DWBNZ rel @RW0+RW7, DWBNZ rel @RW3+disp16, DWBNZ rel @RW2+disp16, DWBNZ rel @RW1+disp16, DWBNZ @RW0+disp16, rel DWBNZ rel @RW7+disp8, DWBNZ rel @RW6+disp8, DWBNZ rel @RW5+disp8, DWBNZ rel @RW4+disp8, DWBNZ rel @RW3+disp8, DWBNZ rel @RW2+disp8, DWBNZ rel @RW1+disp8, DWBNZ rel @RW0+disp8, DWBNZ F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.6-7 ea 系命令 その 7 ( 第 1 バイト =76H) CM44-00203-3 CM44-00203-3 ADDW ADDW ADDW +5 RW5, A ADDW FUJITSU MICROELECTRONICS LIMITED ADDW +F @RW3+, A A +E @RW2+, ADDW A ADDW addr16, A SUBW @RW3+, A SUBW @RW2+, A SUBW addr16, A A @PC+disp16, SUBCW A, @RW3+ SUBCW A, @RW2+ SUBW @PC+disp16, ADDW ADDW ADDW +D @RW1+, A SUBCW @RW0+RW7, A, A @RW0+ SUBW SUBCW @RW1+RW7, A, A @RW1+ SUBW @RW0+RW7, @RW0+, A A SUBW ADDW ADDW +C @RW0+, A SUBCW @RW3+disp16, A, A @RW3 @RW2 SUBW @RW1+RW7, @RW1+, A A SUBW @RW3+disp16, @RW3, A A SUBW A ADDW A A SUBCW SUBW @RW2+disp16, A, SUBW @RW2+disp16, @RW2, ADDW +B @RW3, A A +A @RW2, SUBCW @RW0+disp16, A, A @RW0 SUBW ADDW ADDW ADDW +9 @RW1, A ADDW SUBW @RW0+disp16, @RW0, A A SUBCW @RW1+disp16, A, A @RW1 ADDW ADDW +8 @RW0, A RW6 SUBCW @RW7+disp8, A, A RW7 SUBW SUBW SUBW @RW7+disp8, RW7, A A SUBW @RW1+disp16, @RW1, A A ADDW A A SUBCW A SUBW SUBCW @RW5+disp8, A, A RW5 SUBW SUBCW @RW4+disp8, A, A RW4 SUBW @RW6+disp8, A, SUBW RW2 SUBCW @RW3+disp8, A, A RW3 SUBW @RW6+disp8, RW6, ADDW +7 RW7, A A +6 RW6, SUBW @RW4+disp8, RW4, A A SUBW @RW5+disp8, RW5, A A ADDW SUBW @RW3+disp8, RW3, A A A A SUBCW A ADDW ADDW +4 RW4, A ADDW +3 RW3, A A SUBW @RW2+disp8, A, SUBW @RW2+disp8, RW2, ADDW ADDW +2 RW2, RW0 SUBCW @RW1+disp8, A, A RW1 SUBW A SUBW @RW1+disp8, RW1, A A A 40 SUBCW A ADDW ADDW +1 RW1, A A SUBW 30 @RW0+disp8, A, SUBW 20 @RW0+disp8, RW0, ADDW ADDW +0 RW0, 10 00 SUBCW A, addr16 @PC+disp16 SUBCW A, @RW1+RW7 SUBCW A, @RW0+RW7 SUBCW A, @RW3+disp16 SUBCW A, @RW2+disp16 SUBCW A, @RW1+disp16 SUBCW A, @RW0+disp16 SUBCW A, @RW7+disp8 SUBCW A, @RW6+disp8 SUBCW A, @RW5+disp8 SUBCW A, @RW4+disp8 SUBCW A, @RW3+disp8 SUBCW A, @RW2+disp8 SUBCW A, @RW1+disp8 SUBCW A, @RW0+disp8 SUBCW A, 50 NEGW @RW3+ NEGW @RW2+ NEGW @RW1+ NEGW @RW0+ NEGW @RW3 NEGW @RW2 NEGW @RW1 NEGW @RW0 NEGW RW7 NEGW RW6 NEGW RW5 NEGW RW4 NEGW RW3 NEGW RW2 NEGW RW1 NEGW RW0 60 ANDW RW0, A 80 ANDW RW2, A ANDW RW6, A ANDW A NEGW addr16 @PC+disp16 NEGW @RW1+RW7 NEGW @RW0+RW7 NEGW ANDW @RW3+, A ANDW @RW2+, A ANDW @RW1+, A ANDW @RW0+, A ANDW @RW3+disp16 @RW3, A NEGW @RW2+disp16 @RW2, NEGW ANDW @RW1+disp16 @RW1, A NEGW ANDW @RW0+disp16 @RW0, A NEGW ANDW @RW7+disp8 RW7, A NEGW @RW6+disp8 NEGW ANDW @RW5+disp8 RW5, A NEGW ANDW @RW4+disp8 RW4, A NEGW ANDW @RW3+disp8 RW3, A NEGW @RW2+disp8 NEGW ANDW @RW1+disp8 RW1, A NEGW @RW0+disp8 NEGW 70 ORW A0 A ORW A ORW A ORW A ANDW addr16, A A @PC+disp16, ANDW ORW @RW3+, A ORW @RW2+, A ORW @RW1+RW7, @RW1+, A A ANDW ORW @RW0+RW7, @RW0+, A A ANDW ORW @RW3+disp16, @RW3, A A ANDW A @RW2+disp16, @RW2, ANDW ORW @RW1+disp16, @RW1, A A ANDW ORW @RW0+disp16, @RW0, A A ANDW ORW @RW7+disp8, RW7, A A ANDW A @RW6+disp8, RW6, ANDW ORW @RW5+disp8, RW5, A A ANDW ORW @RW4+disp8, RW4, A A ANDW ORW @RW3+disp8, RW3, A A ANDW A @RW2+disp8, RW2, ANDW ORW @RW1+disp8, RW1, A A ANDW A @RW0+disp8, RW0, ANDW 90 XORW C0 A XORW A XORW A XORW A ORW addr16, A A @PC+disp16, ORW XORW @RW3+, A XORW @RW2+, A XORW @RW1+RW7, @RW1+, A A ORW XORW @RW0+RW7, @RW0+, A A ORW XORW @RW3+disp16, @RW3, A A ORW A @RW2+disp16, @RW2, ORW XORW @RW1+disp16, @RW1, A A ORW XORW @RW0+disp16, @RW0, A A ORW XORW @RW7+disp8, RW7, A A ORW A @RW6+disp8, RW6, ORW XORW @RW5+disp8, RW5, A A ORW XORW @RW4+disp8, RW4, A A ORW XORW @RW3+disp8, RW3, A A ORW A @RW2+disp8, RW2, ORW XORW @RW1+disp8, RW1, A A ORW A @RW0+disp8, RW0, ORW B0 NOTW E0 NOTW NOTW NOTW NOTW NOTW NOTW NOTW NOTW NOTW NOTW NOTW XORW addr16, A A @PC+disp16, XORW A @RW1+RW7, XORW A @RW0+RW7, XORW A NOTW @RW3+ NOTW @RW2+ NOTW @RW1+ NOTW @RW0+ @RW3+disp16, @RW3 XORW A @RW2+disp16, @RW2 XORW A @RW1+disp16, @RW1 XORW A @RW0+disp16, @RW0 XORW A @RW7+disp8, RW7 XORW A @RW6+disp8, RW6 XORW A @RW5+disp8, RW5 XORW A @RW4+disp8, RW4 XORW A @RW3+disp8, RW3 XORW A @RW2+disp8, RW2 XORW A @RW1+disp8, RW1 XORW A @RW0+disp8, RW0 XORW D0 NOTW addr16 @PC+disp16 NOTW @RW1+RW7 NOTW @RW0+RW7 NOTW @RW3+disp16 NOTW @RW2+disp16 NOTW @RW1+disp16 NOTW @RW0+disp16 NOTW @RW7+disp8 NOTW @RW6+disp8 NOTW @RW5+disp8 NOTW @RW4+disp8 NOTW @RW3+disp8 NOTW @RW2+disp8 NOTW @RW1+disp8 NOTW @RW0+disp8 NOTW F0 F2MC-16FX ファミリ 付録 付録 C 命令マップ 表 C.6-8 ea 系命令 その 8 ( 第 1 バイト =77H) 375 376 MULUW A, @RW1+disp8 RW1 MULU A, MULUW A, @RW2+disp8 RW2 MULU A, MULU +2 A, R2 MULU +3 A, R3 FUJITSU MICROELECTRONICS LIMITED MULUW A, @RW5+disp8 RW5 MULU A, MULUW A, @RW6+disp8 RW6 MULU A, MULUW A, @RW7+disp8 RW7 MULU A, MULUW A, @RW0+disp16 @RW0 MULU A, MULUW A, @RW1+disp16 @RW1 MULU A, MULUW A, @RW2+disp16 @RW2 MULU A, MULUW A, @RW3+disp16 @RW3 MULU A, MULU +6 A, R6 MULU +7 A, R7 MULU +8 A, @RW0 MULU +9 A, @RW1 MULU +A A, @RW2 MULU +B A, @RW3 MULU +C A, @RW0+ @PC+disp16 MULU A, addr16 MULU +F A, @RW3+ MULU A, MULU +E A, @RW2+ @RW1+RW7 MULU A, @RW0+RW7 MULU A, MULU +5 A, R5 MULU +D A, @RW1+ MULUW A, @RW4+disp8 RW4 MULUW A, @RW3+ MULUW A, @RW2+ MULUW A, @RW1+ MULUW A, @RW0+ MULU A, MULU +4 A, R4 MULUW A, @RW3+disp8 RW3 MULU A, MULU +1 A, R1 R0 20 MULUW A, @RW0+disp8 RW0 MULU A, MULU +0 A, 10 00 40 MULUW A, addr16 @PC+disp16 MULUW A, @RW1+RW7 MULUW A, @RW0+RW7 MULUW A, MUL A, @RW3+ MUL A, @RW2+ MUL A, @RW1+ MUL A, @RW0+ MUL A, @RW3+disp16 @RW3 MULUW A, MUL A, @RW2+disp16 @RW2 MULUW A, MUL A, @RW1+disp16 @RW1 MULUW A, MUL A, @RW0+disp16 @RW0 MULUW A, MUL A, @RW7+disp8 R7 MULUW A, MUL A, @RW6+disp8 R6 MULUW A, MUL A, @RW5+disp8 R5 MULUW A, MUL A, @RW4+disp8 R4 MULUW A, MUL A, @RW3+disp8 R3 MULUW A, MUL A, @RW2+disp8 R2 MULUW A, MUL A, @RW1+disp8 R1 MULUW A, MUL A, @RW0+disp8 R0 MULUW A, 30 60 MUL A, addr16 @PC+disp16 MUL A, @RW1+RW7 MUL A, @RW0+RW7 MUL A, MULW A, @RW3+ MULW A, @RW2+ MULW A, @RW1+ MULW A, @RW0+ MULW A, @RW3+disp16 @RW3 MUL A, MULW A, @RW2+disp16 @RW2 MUL A, MULW A, @RW1+disp16 @RW1 MUL A, MULW A, @RW0+disp16 @RW0 MUL A, MULW A, @RW7+disp8 RW7 MUL A, MULW A, @RW6+disp8 RW6 MUL A, MULW A, @RW5+disp8 RW5 MUL A, MULW A, @RW4+disp8 RW4 MUL A, MULW A, @RW3+disp8 RW3 MUL A, MULW A, @RW2+disp8 RW2 MUL A, MULW A, @RW1+disp8 RW1 MUL A, MULW A, @RW0+disp8 RW0 MUL A, 50 80 MULW A, addr16 @PC+disp16 MULW A, @RW1+RW7 MULW A, @RW0+RW7 MULW A, DIVU A, @RW3+ DIVU A, @RW2+ DIVU A, @RW1+ DIVU A, @RW0+ DIVU A, @RW3+disp16 @RW3 MULW A, DIVU A, @RW2+disp16 @RW2 MULW A, DIVU A, @RW1+disp16 @RW1 MULW A, DIVU A, @RW0+disp16 @RW0 MULW A, DIVU A, @RW7+disp8 R7 MULW A, DIVU A, @RW6+disp8 R6 MULW A, DIVU A, @RW5+disp8 R5 MULW A, DIVU A, @RW4+disp8 R4 MULW A, DIVU A, @RW3+disp8 R3 MULW A, DIVU A, @RW2+disp8 R2 MULW A, DIVU A, @RW1+disp8 R1 MULW A, DIVU A, @RW0+disp8 R0 MULW A, 70 A0 DIVU A, addr16 @PC+disp16 DIVU A, @RW1+RW7 DIVU A, @RW0+RW7 DIVU A, DIVUW A, @RW3+ DIVUW A, @RW2+ DIVUW A, @RW1+ DIVUW A, @RW0+ DIVUW A, @RW3+disp16 @RW3 DIVU A, DIVUW A, @RW2+disp16 @RW2 DIVU A, DIVUW A, @RW1+disp16 @RW1 DIVU A, DIVUW A, @RW0+disp16 @RW0 DIVU A, DIVUW A, @RW7+disp8 RW7 DIVU A, DIVUW A, @RW6+disp8 RW6 DIVU A, DIVUW A, @RW5+disp8 RW5 DIVU A, DIVUW A, @RW4+disp8 RW4 DIVU A, DIVUW A, @RW3+disp8 RW3 DIVU A, DIVUW A, @RW2+disp8 RW2 DIVU A, DIVUW A, @RW1+disp8 RW1 DIVU A, DIVUW A, @RW0+disp8 RW0 DIVU A, 90 C0 DIVUW A, addr16 @PC+disp16 DIVUW A, @RW1+RW7 DIVUW A, @RW0+RW7 DIVUW A, DIV A, @RW3+ DIV A, @RW2+ DIV A, @RW1+ DIV A, @RW0+ DIV A, @RW3+disp16 @RW3 DIVUW A, DIV A, @RW2+disp16 @RW2 DIVUW A, DIV A, @RW1+disp16 @RW1 DIVUW A, DIV A, @RW0+disp16 @RW0 DIVUW A, DIV A, @RW7+disp8 R7 DIVUW A, DIV A, @RW6+disp8 R6 DIVUW A, DIV A, @RW5+disp8 R5 DIVUW A, DIV A, @RW4+disp8 R4 DIVUW A, DIV A, @RW3+disp8 R3 DIVUW A, DIV A, @RW2+disp8 R2 DIVUW A, DIV A, @RW1+disp8 R1 DIVUW A, DIV A, @RW0+disp8 R0 DIVUW A, B0 E0 DIV A, addr16 @PC+disp16 DIV A, @RW1+RW7 DIV A, @RW0+RW7 DIV A, DIVW A, @RW3+ DIVW A, @RW2+ DIVW A, @RW1+ DIVW A, @RW0+ DIVW A, @RW3+disp16 @RW3 DIV A, DIVW A, @RW2+disp16 @RW2 DIV A, DIVW A, @RW1+disp16 @RW1 DIV A, DIVW A, @RW0+disp16 @RW0 DIV A, DIVW A, @RW7+disp8 RW7 DIV A, DIVW A, @RW6+disp8 RW6 DIV A, DIVW A, @RW5+disp8 RW5 DIV A, DIVW A, @RW4+disp8 RW4 DIV A, DIVW A, @RW3+disp8 RW3 DIV A, DIVW A, @RW2+disp8 RW2 DIV A, DIVW A, @RW1+disp8 RW1 DIV A, DIVW A, @RW0+disp8 RW0 DIV A, D0 DIVW A, addr16 @PC+disp16 DIVW A, @RW1+RW7 DIVW A, @RW0+RW7 DIVW A, @RW3+disp16 DIVW A, @RW2+disp16 DIVW A, @RW1+disp16 DIVW A, @RW0+disp16 DIVW A, @RW7+disp8 DIVW A, @RW6+disp8 DIVW A, @RW5+disp8 DIVW A, @RW4+disp8 DIVW A, @RW3+disp8 DIVW A, @RW2+disp8 DIVW A, @RW1+disp8 DIVW A, @RW0+disp8 DIVW A, F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.6-9 ea 系命令 その 9 ( 第 1 バイト =78H) CM44-00203-3 F2MC-16FX ファミリ C.7 付録 付録 C 命令マップ MOVEA RWi,ea 命令 表 C.7-1 に , MOVEA RWi,ea 命令の一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 377 378 MOVEA RW0, MOVEA RW0, MOVEA +5 RW0, RW5 MOVEA MOVEA RW0, MOVEA RW1, @RW0+disp16 @RW0 MOVEA RW0, MOVEA RW0, MOVEA +8 RW0, @RW0 MOVEA +9 RW0, @RW1 MOVEA FUJITSU MICROELECTRONICS LIMITED @PC+disp16 @RW2+ MOVEA +F RW0, @RW3+ MOVEA RW0, addr16 MOVEA RW0, +E RW0, MOVEA @RW1+RW7 MOVEA RW0, @RW0+RW7 MOVEA RW0, MOVEA +C RW0, @RW0+ MOVEA +D RW0, @RW1+ MOVEA RW1, @RW3+disp16 @RW3 MOVEA RW1, @RW3+ MOVEA RW1, @RW2+ MOVEA RW1, @RW1+ MOVEA RW1, @RW0+ MOVEA RW0, MOVEA RW1, @RW2+disp16 @RW2 MOVEA +B RW0, @RW3 @RW2 +A RW0, MOVEA RW1, @RW7+disp8 RW7 MOVEA RW1, @RW1+disp16 @RW1 MOVEA RW0, MOVEA RW1, @RW6+disp8 RW6 MOVEA +7 RW0, RW7 RW6 +6 RW0, MOVEA RW1, @RW4+disp8 RW4 MOVEA RW1, @RW5+disp8 RW5 MOVEA RW0, MOVEA RW1, @RW3+disp8 RW3 MOVEA RW0, MOVEA +4 RW0, RW4 MOVEA +3 RW0, RW3 RW2 MOVEA RW1, @RW2+disp8 RW2 MOVEA RW0, MOVEA +2 RW0, MOVEA RW1, @RW1+disp8 RW1 MOVEA RW0, MOVEA +1 RW0, RW1 RW0 20 MOVEA RW1, @RW0+disp8 RW0 MOVEA RW0, MOVEA +0 RW0, 10 00 40 MOVEA RW1, addr16 @PC+disp16 MOVEA RW1, @RW1+RW7 MOVEA RW1, @RW0+RW7 MOVEA RW1, MOVEA RW2, @RW3+ MOVEA RW2, @RW2+ MOVEA RW2, @RW1+ MOVEA RW2, @RW0+ MOVEA RW2, @RW3+disp16 @RW3 MOVEA RW1, MOVEA RW2, @RW2+disp16 @RW2 MOVEA RW1, MOVEA RW2, @RW1+disp16 @RW1 MOVEA RW1, MOVEA RW2, @RW0+disp16 @RW0 MOVEA RW1, MOVEA RW2, @RW7+disp8 RW7 MOVEA RW1, MOVEA RW2, @RW6+disp8 RW6 MOVEA RW1, MOVEA RW2, @RW5+disp8 RW5 MOVEA RW1, MOVEA RW2, @RW4+disp8 RW4 MOVEA RW1, MOVEA RW2, @RW3+disp8 RW3 MOVEA RW1, MOVEA RW2, @RW2+disp8 RW2 MOVEA RW1, MOVEA RW2, @RW1+disp8 RW1 MOVEA RW1, MOVEA RW2, @RW0+disp8 RW0 MOVEA RW1, 30 60 MOVEA RW2, addr16 @PC+disp16 MOVEA RW2, @RW1+RW7 MOVEA RW2, @RW0+RW7 MOVEA RW2, MOVEA RW3, @RW3+ MOVEA RW3, @RW2+ MOVEA RW3, @RW1+ MOVEA RW3, @RW0+ MOVEA RW3, @RW3+disp16 @RW3 MOVEA RW2, MOVEA RW3, @RW2+disp16 @RW2 MOVEA RW2, MOVEA RW3, @RW1+disp16 @RW1 MOVEA RW2, MOVEA RW3, @RW0+disp16 @RW0 MOVEA RW2, MOVEA RW3, @RW7+disp8 RW7 MOVEA RW2, MOVEA RW3, @RW6+disp8 RW6 MOVEA RW2, MOVEA RW3, @RW5+disp8 RW5 MOVEA RW2, MOVEA RW3, @RW4+disp8 RW4 MOVEA RW2, MOVEA RW3, @RW3+disp8 RW3 MOVEA RW2, MOVEA RW3, @RW2+disp8 RW2 MOVEA RW2, MOVEA RW3, @RW1+disp8 RW1 MOVEA RW2, MOVEA RW3, @RW0+disp8 RW0 MOVEA RW2, 50 80 MOVEA RW3, addr16 @PC+disp16 MOVEA RW3, @RW1+RW7 MOVEA RW3, @RW0+RW7 MOVEA RW3, MOVEA RW4, @RW3+ MOVEA RW4, @RW2+ MOVEA RW4, @RW1+ MOVEA RW4, @RW0+ MOVEA RW4, @RW3+disp16 @RW3 MOVEA RW3, MOVEA RW4, @RW2+disp16 @RW2 MOVEA RW3, MOVEA RW4, @RW1+disp16 @RW1 MOVEA RW3, MOVEA RW4, @RW0+disp16 @RW0 MOVEA RW3, MOVEA RW4, @RW7+disp8 RW7 MOVEA RW3, MOVEA RW4, @RW6+disp8 RW6 MOVEA RW3, MOVEA RW4, @RW5+disp8 RW5 MOVEA RW3, MOVEA RW4, @RW4+disp8 RW4 MOVEA RW3, MOVEA RW4, @RW3+disp8 RW3 MOVEA RW3, MOVEA RW4, @RW2+disp8 RW2 MOVEA RW3, MOVEA RW4, @RW1+disp8 RW1 MOVEA RW3, MOVEA RW4, @RW0+disp8 RW0 MOVEA RW3, 70 A0 MOVEA RW4, addr16 @PC+disp16 MOVEA RW4, @RW1+RW7 MOVEA RW4, @RW0+RW7 MOVEA RW4, MOVEA RW5, @RW3+ MOVEA RW5, @RW2+ MOVEA RW5, @RW1+ MOVEA RW5, @RW0+ MOVEA RW5, @RW3+disp16 @RW3 MOVEA RW4, MOVEA RW5, @RW2+disp16 @RW2 MOVEA RW4, MOVEA RW5, @RW1+disp16 @RW1 MOVEA RW4, MOVEA RW5, @RW0+disp16 @RW0 MOVEA RW4, MOVEA RW5, @RW7+disp8 RW7 MOVEA RW4, MOVEA RW5, @RW6+disp8 RW6 MOVEA RW4, MOVEA RW5, @RW5+disp8 RW5 MOVEA RW4, MOVEA RW5, @RW4+disp8 RW4 MOVEA RW4, MOVEA RW5, @RW3+disp8 RW3 MOVEA RW4, MOVEA RW5, @RW2+disp8 RW2 MOVEA RW4, MOVEA RW5, @RW1+disp8 RW1 MOVEA RW4, MOVEA RW5, @RW0+disp8 RW0 MOVEA RW4, 90 C0 MOVEA RW5, addr16 @PC+disp16 MOVEA RW5, @RW1+RW7 MOVEA RW5, @RW0+RW7 MOVEA RW5, MOVEA RW6, @RW3+ MOVEA RW6, @RW2+ MOVEA RW6, @RW1+ MOVEA RW6, @RW0+ MOVEA RW6, @RW3+disp16 @RW3 MOVEA RW5, MOVEA RW6, @RW2+disp16 @RW2 MOVEA RW5, MOVEA RW6, @RW1+disp16 @RW1 MOVEA RW5, MOVEA RW6, @RW0+disp16 @RW0 MOVEA RW5, MOVEA RW6, @RW7+disp8 RW7 MOVEA RW5, MOVEA RW6, @RW6+disp8 RW6 MOVEA RW5, MOVEA RW6, @RW5+disp8 RW5 MOVEA RW5, MOVEA RW6, @RW4+disp8 RW4 MOVEA RW5, MOVEA RW6, @RW3+disp8 RW3 MOVEA RW5, MOVEA RW6, @RW2+disp8 RW2 MOVEA RW5, MOVEA RW6, @RW1+disp8 RW1 MOVEA RW5, MOVEA RW6, @RW0+disp8 RW0 MOVEA RW5, B0 E0 MOVEA RW6, addr16 @PC+disp16 MOVEA RW6, @RW1+RW7 MOVEA RW6, @RW0+RW7 MOVEA RW6, MOVEA RW7, @RW3+ MOVEA RW7, @RW2+ MOVEA RW7, @RW1+ MOVEA RW7, @RW0+ MOVEA RW7, @RW3+disp16 @RW3 MOVEA RW6, MOVEA RW7, @RW2+disp16 @RW2 MOVEA RW6, MOVEA RW7, @RW1+disp16 @RW1 MOVEA RW6, MOVEA RW7, @RW0+disp16 @RW0 MOVEA RW6, MOVEA RW7, @RW7+disp8 RW7 MOVEA RW6, MOVEA RW7, @RW6+disp8 RW6 MOVEA RW6, MOVEA RW7, @RW5+disp8 RW5 MOVEA RW6, MOVEA RW7, @RW4+disp8 RW4 MOVEA RW6, MOVEA RW7, @RW3+disp8 RW3 MOVEA RW6, MOVEA RW7, @RW2+disp8 RW2 MOVEA RW6, MOVEA RW7, @RW1+disp8 RW1 MOVEA RW6, MOVEA RW7, @RW0+disp8 RW0 MOVEA RW6, D0 MOVEA RW7, addr16 @PC+disp16 MOVEA RW7, @RW1+RW7 MOVEA RW7, @RW0+RW7 MOVEA RW7, @RW3+disp16 MOVEA RW7, @RW2+disp16 MOVEA RW7, @RW1+disp16 MOVEA RW7, @RW0+disp16 MOVEA RW7, @RW7+disp8 MOVEA RW7, @RW6+disp8 MOVEA RW7, @RW5+disp8 MOVEA RW7, @RW4+disp8 MOVEA RW7, @RW3+disp8 MOVEA RW7, @RW2+disp8 MOVEA RW7, @RW1+disp8 MOVEA RW7, @RW0+disp8 MOVEA RW7, F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.7-1 MOVEA RWi, ea 命令 ( 第 1 バイト =79H) CM44-00203-3 F2MC-16FX ファミリ C.8 付録 付録 C 命令マップ MOV Ri,ea 命令 表 C.8-1 に , MOV Ri,ea 命令の一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 379 380 MOV R1, @RW1+disp8 R1 MOV R0, MOV R1, @RW2+disp8 R2 MOV R1, @RW3+disp8 R3 MOV +2 R0, R2 MOV +3 R0, R3 FUJITSU MICROELECTRONICS LIMITED MOV R1, @RW5+disp8 R5 MOV R0, MOV R1, @RW6+disp8 R6 MOV R0, MOV R1, @RW7+disp8 R7 MOV R0, MOV R1, @RW0+disp16 @RW0 MOV R0, MOV R1, @RW1+disp16 @RW1 MOV R0, MOV R1, @RW2+disp16 @RW2 MOV R0, MOV R1, @RW3+disp16 @RW3 MOV R0, MOV +6 R0, R6 MOV +7 R0, R7 MOV +8 R0, @RW0 MOV +9 R0, @RW1 MOV +A R0, @RW2 MOV +B R0, @RW3 MOV +C R0, @RW0+ @PC+disp16 MOV R0, addr16 MOV +F R0, @RW3+ MOV R0, MOV +E R0, @RW2+ @RW1+RW7 MOV R0, @RW0+RW7 MOV R0, MOV +5 R0, R5 MOV +D R0, @RW1+ MOV R1, @RW4+disp8 R4 MOV R1, @RW3+ MOV R1, @RW2+ MOV R1, @RW1+ MOV R1, @RW0+ MOV R0, MOV +4 R0, R4 R0 MOV R0, MOV R0, MOV +1 R0, R1 20 MOV R1, @RW0+disp8 R0 +0 R0, MOV R0, 10 MOV 00 40 MOV R1, addr16 @PC+disp16 MOV R1, @RW1+RW7 MOV R1, @RW0+RW7 MOV R1, MOV R2, @RW3+ MOV R2, @RW2+ MOV R2, @RW1+ MOV R2, @RW0+ MOV R2, @RW3+disp16 @RW3 MOV R1, MOV R2, @RW2+disp16 @RW2 MOV R1, MOV R2, @RW1+disp16 @RW1 MOV R1, MOV R2, @RW0+disp16 @RW0 MOV R1, MOV R2, @RW7+disp8 R7 MOV R1, MOV R2, @RW6+disp8 R6 MOV R1, MOV R2, @RW5+disp8 R5 MOV R1, MOV R2, @RW4+disp8 R4 MOV R1, MOV R2, @RW3+disp8 R3 MOV R1, MOV R2, @RW2+disp8 R2 MOV R1, MOV R2, @RW1+disp8 R1 MOV R1, MOV R2, @RW0+disp8 R0 MOV R1, 30 60 MOV R2, addr16 @PC+disp16 MOV R2, @RW1+RW7 MOV R2, @RW0+RW7 MOV R2, MOV R3, @RW3+ MOV R3, @RW2+ MOV R3, @RW1+ MOV R3, @RW0+ MOV R3, @RW3+disp16 @RW3 MOV R2, MOV R3, @RW2+disp16 @RW2 MOV R2, MOV R3, @RW1+disp16 @RW1 MOV R2, MOV R3, @RW0+disp16 @RW0 MOV R2, MOV R3, @RW7+disp8 R7 MOV R2, MOV R3, @RW6+disp8 R6 MOV R2, MOV R3, @RW5+disp8 R5 MOV R2, MOV R3, @RW4+disp8 R4 MOV R2, MOV R3, @RW3+disp8 R3 MOV R2, MOV R3, @RW2+disp8 R2 MOV R2, MOV R3, @RW1+disp8 R1 MOV R2, MOV R3, @RW0+disp8 R0 MOV R2, 50 80 MOV R3, addr16 @PC+disp16 MOV R3, @RW1+RW7 MOV R3, @RW0+RW7 MOV R3, MOV R4, @RW3+ MOV R4, @RW2+ MOV R4, @RW1+ MOV R4, @RW0+ MOV R4, @RW3+disp16 @RW3 MOV R3, MOV R4, @RW2+disp16 @RW2 MOV R3, MOV R4, @RW1+disp16 @RW1 MOV R3, MOV R4, @RW0+disp16 @RW0 MOV R3, MOV R4, @RW7+disp8 R7 MOV R3, MOV R4, @RW6+disp8 R6 MOV R3, MOV R4, @RW5+disp8 R5 MOV R3, MOV R4, @RW4+disp8 R4 MOV R3, MOV R4, @RW3+disp8 R3 MOV R3, MOV R4, @RW2+disp8 R2 MOV R3, MOV R4, @RW1+disp8 R1 MOV R3, MOV R4, @RW0+disp8 R0 MOV R3, 70 A0 MOV R4, addr16 @PC+disp16 MOV R4, @RW1+RW7 MOV R4, @RW0+RW7 MOV R4, MOV R5, @RW3+ MOV R5, @RW2+ MOV R5, @RW1+ MOV R5, @RW0+ MOV R5, @RW3+disp16 @RW3 MOV R4, MOV R5, @RW2+disp16 @RW2 MOV R4, MOV R5, @RW1+disp16 @RW1 MOV R4, MOV R5, @RW0+disp16 @RW0 MOV R4, MOV R5, @RW7+disp8 R7 MOV R4, MOV R5, @RW6+disp8 R6 MOV R4, MOV R5, @RW5+disp8 R5 MOV R4, MOV R5, @RW4+disp8 R4 MOV R4, MOV R5, @RW3+disp8 R3 MOV R4, MOV R5, @RW2+disp8 R2 MOV R4, MOV R5, @RW1+disp8 R1 MOV R4, MOV R5, @RW0+disp8 R0 MOV R4, 90 C0 MOV R5, addr16 @PC+disp16 MOV R5, @RW1+RW7 MOV R5, @RW0+RW7 MOV R5, MOV R6, @RW3+ MOV R6, @RW2+ MOV R6, @RW1+ MOV R6, @RW0+ MOV R6, @RW3+disp16 @RW3 MOV R5, MOV R6, @RW2+disp16 @RW2 MOV R5, MOV R6, @RW1+disp16 @RW1 MOV R5, MOV R6, @RW0+disp16 @RW0 MOV R5, MOV R6, @RW7+disp8 R7 MOV R5, MOV R6, @RW6+disp8 R6 MOV R5, MOV R6, @RW5+disp8 R5 MOV R5, MOV R6, @RW4+disp8 R4 MOV R5, MOV R6, @RW3+disp8 R3 MOV R5, MOV R6, @RW2+disp8 R2 MOV R5, MOV R6, @RW1+disp8 R1 MOV R5, MOV R6, @RW0+disp8 R0 MOV R5, B0 E0 MOV R6, addr16 @PC+disp16 MOV R6, @RW1+RW7 MOV R6, @RW0+RW7 MOV R6, MOV R7, @RW3+ MOV R7, @RW2+ MOV R7, @RW1+ MOV R7, @RW0+ MOV R7, @RW3+disp16 @RW3 MOV R6, MOV R7, @RW2+disp16 @RW2 MOV R6, MOV R7, @RW1+disp16 @RW1 MOV R6, MOV R7, @RW0+disp16 @RW0 MOV R6, MOV R7, @RW7+disp8 R7 MOV R6, MOV R7, @RW6+disp8 R6 MOV R6, MOV R7, @RW5+disp8 R5 MOV R6, MOV R7, @RW4+disp8 R4 MOV R6, MOV R7, @RW3+disp8 R3 MOV R6, MOV R7, @RW2+disp8 R2 MOV R6, MOV R7, @RW1+disp8 R1 MOV R6, MOV R7, @RW0+disp8 R0 MOV R6, D0 MOV R7, addr16 @PC+disp16 MOV R7, @RW1+RW7 MOV R7, @RW0+RW7 MOV R7, @RW3+disp16 MOV R7, @RW2+disp16 MOV R7, @RW1+disp16 MOV R7, @RW0+disp16 MOV R7, @RW7+disp8 MOV R7, @RW6+disp8 MOV R7, @RW5+disp8 MOV R7, @RW4+disp8 MOV R7, @RW3+disp8 MOV R7, @RW2+disp8 MOV R7, @RW1+disp8 MOV R7, @RW0+disp8 MOV R7, F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.8-1 MOV Ri, ea 命令 ( 第 1 バイト =7AH) CM44-00203-3 F2MC-16FX ファミリ C.9 付録 付録 C 命令マップ MOVW RWi,ea 命令 表 C.9-1 に , MOVW RWi,ea 命令の一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 381 382 MOVW RW1, @RW0+disp8 RW0 MOVW RW0, MOVW RW1, @RW1+disp8 RW1 MOVW RW0, MOVW RW1, @RW2+disp8 RW2 MOVW RW1, @RW3+disp8 RW3 MOVW +1 RW0, RW1 MOVW +2 RW0, RW2 MOVW +3 RW0, RW3 FUJITSU MICROELECTRONICS LIMITED MOVW RW1, @RW5+disp8 RW5 MOVW RW0, MOVW RW1, @RW6+disp8 RW6 MOVW RW0, MOVW RW1, @RW7+disp8 RW7 MOVW RW0, MOVW RW1, @RW0+disp16 @RW0 MOVW RW0, MOVW RW1, @RW1+disp16 @RW1 MOVW RW0, MOVW RW1, @RW2+disp16 @RW2 MOVW RW0, MOVW RW1, @RW3+disp16 @RW3 MOVW RW0, MOVW +6 RW0, RW6 MOVW +7 RW0, RW7 MOVW +8 RW0, @RW0 MOVW +9 RW0, @RW1 MOVW +A RW0, @RW2 MOVW +B RW0, @RW3 MOVW +C RW0, @RW0+ @PC+disp16 MOVW RW0, addr16 MOVW +F RW0, @RW3+ MOVW RW0, MOVW +E RW0, @RW2+ @RW1+RW7 MOVW RW0, @RW0+RW7 MOVW RW0, MOVW +5 RW0, RW5 MOVW +D RW0, @RW1+ MOVW RW1, @RW4+disp8 RW4 MOVW RW1, @RW3+ MOVW RW1, @RW2+ MOVW RW1, @RW1+ MOVW RW1, @RW0+ MOVW RW0, MOVW +4 RW0, RW4 RW0 MOVW RW0, MOVW RW0, +0 RW0, MOVW 20 10 00 40 MOVW RW1, addr16 @PC+disp16 MOVW RW1, @RW1+RW7 MOVW RW1, @RW0+RW7 MOVW RW1, MOVW RW2, @RW3+ MOVW RW2, @RW2+ MOVW RW2, @RW1+ MOVW RW2, @RW0+ MOVW RW2, @RW3+disp16 @RW3 MOVW RW1, MOVW RW2, @RW2+disp16 @RW2 MOVW RW1, MOVW RW2, @RW1+disp16 @RW1 MOVW RW1, MOVW RW2, @RW0+disp16 @RW0 MOVW RW1, MOVW RW2, @RW7+disp8 RW7 MOVW RW1, MOVW RW2, @RW6+disp8 RW6 MOVW RW1, MOVW RW2, @RW5+disp8 RW5 MOVW RW1, MOVW RW2, @RW4+disp8 RW4 MOVW RW1, MOVW RW2, @RW3+disp8 RW3 MOVW RW1, MOVW RW2, @RW2+disp8 RW2 MOVW RW1, MOVW RW2, @RW1+disp8 RW1 MOVW RW1, MOVW RW2, @RW0+disp8 RW0 MOVW RW1, 30 60 MOVW RW2, addr16 @PC+disp16 MOVW RW2, @RW1+RW7 MOVW RW2, @RW0+RW7 MOVW RW2, MOVW RW3, @RW3+ MOVW RW3, @RW2+ MOVW RW3, @RW1+ MOVW RW3, @RW0+ MOVW RW3, @RW3+disp16 @RW3 MOVW RW2, MOVW RW3, @RW2+disp16 @RW2 MOVW RW2, MOVW RW3, @RW1+disp16 @RW1 MOVW RW2, MOVW RW3, @RW0+disp16 @RW0 MOVW RW2, MOVW RW3, @RW7+disp8 RW7 MOVW RW2, MOVW RW3, @RW6+disp8 RW6 MOVW RW2, MOVW RW3, @RW5+disp8 RW5 MOVW RW2, MOVW RW3, @RW4+disp8 RW4 MOVW RW2, MOVW RW3, @RW3+disp8 RW3 MOVW RW2, MOVW RW3, @RW2+disp8 RW2 MOVW RW2, MOVW RW3, @RW1+disp8 RW1 MOVW RW2, MOVW RW3, @RW0+disp8 RW0 MOVW RW2, 50 80 MOVW RW3, addr16 @PC+disp16 MOVW RW3, @RW1+RW7 MOVW RW3, @RW0+RW7 MOVW RW3, MOVW RW4, @RW3+ MOVW RW4, @RW2+ MOVW RW4, @RW1+ MOVW RW4, @RW0+ MOVW RW4, @RW3+disp16 @RW3 MOVW RW3, MOVW RW4, @RW2+disp16 @RW2 MOVW RW3, MOVW RW4, @RW1+disp16 @RW1 MOVW RW3, MOVW RW4, @RW0+disp16 @RW0 MOVW RW3, MOVW RW4, @RW7+disp8 RW7 MOVW RW3, MOVW RW4, @RW6+disp8 RW6 MOVW RW3, MOVW RW4, @RW5+disp8 RW5 MOVW RW3, MOVW RW4, @RW4+disp8 RW4 MOVW RW3, MOVW RW4, @RW3+disp8 RW3 MOVW RW3, MOVW RW4, @RW2+disp8 RW2 MOVW RW3, MOVW RW4, @RW1+disp8 RW1 MOVW RW3, MOVW RW4, @RW0+disp8 RW0 MOVW RW3, 70 A0 MOVW RW4, addr16 @PC+disp16 MOVW RW4, @RW1+RW7 MOVW RW4, @RW0+RW7 MOVW RW4, MOVW RW5, @RW3+ MOVW RW5, @RW2+ MOVW RW5, @RW1+ MOVW RW5, @RW0+ MOVW RW5, @RW3+disp16 @RW3 MOVW RW4, MOVW RW5, @RW2+disp16 @RW2 MOVW RW4, MOVW RW5, @RW1+disp16 @RW1 MOVW RW4, MOVW RW5, @RW0+disp16 @RW0 MOVW RW4, MOVW RW5, @RW7+disp8 RW7 MOVW RW4, MOVW RW5, @RW6+disp8 RW6 MOVW RW4, MOVW RW5, @RW5+disp8 RW5 MOVW RW4, MOVW RW5, @RW4+disp8 RW4 MOVW RW4, MOVW RW5, @RW3+disp8 RW3 MOVW RW4, MOVW RW5, @RW2+disp8 RW2 MOVW RW4, MOVW RW5, @RW1+disp8 RW1 MOVW RW4, MOVW RW5, @RW0+disp8 RW0 MOVW RW4, 90 C0 MOVW RW5, addr16 @PC+disp16 MOVW RW5, @RW1+RW7 MOVW RW5, @RW0+RW7 MOVW RW5, MOVW RW6, @RW3+ MOVW RW6, @RW2+ MOVW RW6, @RW1+ MOVW RW6, @RW0+ MOVW RW6, @RW3+disp16 @RW3 MOVW RW5, MOVW RW6, @RW2+disp16 @RW2 MOVW RW5, MOVW RW6, @RW1+disp16 @RW1 MOVW RW5, MOVW RW6, @RW0+disp16 @RW0 MOVW RW5, MOVW RW6, @RW7+disp8 RW7 MOVW RW5, MOVW RW6, @RW6+disp8 RW6 MOVW RW5, MOVW RW6, @RW5+disp8 RW5 MOVW RW5, MOVW RW6, @RW4+disp8 RW4 MOVW RW5, MOVW RW6, @RW3+disp8 RW3 MOVW RW5, MOVW RW6, @RW2+disp8 RW2 MOVW RW5, MOVW RW6, @RW1+disp8 RW1 MOVW RW5, MOVW RW6, @RW0+disp8 RW0 MOVW RW5, B0 E0 MOVW RW6, addr16 @PC+disp16 MOVW RW6, @RW1+RW7 MOVW RW6, @RW0+RW7 MOVW RW6, MOVW RW7, @RW3+ MOVW RW7, @RW2+ MOVW RW7, @RW1+ MOVW RW7, @RW0+ MOVW RW7, @RW3+disp16 @RW3 MOVW RW6, MOVW RW7, @RW2+disp16 @RW2 MOVW RW6, MOVW RW7, @RW1+disp16 @RW1 MOVW RW6, MOVW RW7, @RW0+disp16 @RW0 MOVW RW6, MOVW RW7, @RW7+disp8 RW7 MOVW RW6, MOVW RW7, @RW6+disp8 RW6 MOVW RW6, MOVW RW7, @RW5+disp8 RW5 MOVW RW6, MOVW RW7, @RW4+disp8 RW4 MOVW RW6, MOVW RW7, @RW3+disp8 RW3 MOVW RW6, MOVW RW7, @RW2+disp8 RW2 MOVW RW6, MOVW RW7, @RW1+disp8 RW1 MOVW RW6, MOVW RW7, @RW0+disp8 RW0 MOVW RW6, D0 MOVW RW7, addr16 @PC+disp16 MOVW RW7, @RW1+RW7 MOVW RW7, @RW0+RW7 MOVW RW7, @RW3+disp16 MOVW RW7, @RW2+disp16 MOVW RW7, @RW1+disp16 MOVW RW7, @RW0+disp16 MOVW RW7, @RW7+disp8 MOVW RW7, @RW6+disp8 MOVW RW7, @RW5+disp8 MOVW RW7, @RW4+disp8 MOVW RW7, @RW3+disp8 MOVW RW7, @RW2+disp8 MOVW RW7, @RW1+disp8 MOVW RW7, @RW0+disp8 MOVW RW7, F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.9-1 MOVW RWi, ea 命令 ( 第 1 バイト =7BH) CM44-00203-3 F2MC-16FX ファミリ 付録 付録 C 命令マップ C.10 MOV ea,Ri 命令 表 C.10-1 に , MOV ea,Ri 命令の一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 383 384 MOV MOV MOV MOV @RW5+disp8, R5, R0 R1 MOV MOV MOV +5 R5, R0 MOV +6 R6, R0 MOV FUJITSU MICROELECTRONICS LIMITED MOV MOV addr16, R1 MOV MOV @PC+disp16, @RW2+, R0 R1 MOV addr16, R0 MOV +E @RW2+, R0 +F @RW3+, R0 MOV @RW3+, R1 MOV @PC+disp16, @RW2+, R1 R2 MOV @RW1+RW7, @RW1+, R0 R1 MOV MOV MOV MOV +D @RW1+, R0 R2 MOV @RW3+, R2 MOV @RW1+RW7, @RW1+, R1 R2 MOV MOV @RW0+RW7, @RW0+, R1 R2 MOV MOV @RW0+RW7, @RW0+, R0 R1 MOV +C @RW0+, R0 R1 R0 MOV R0 R1 MOV MOV @RW3+disp16, @RW3, @RW3+disp16, @RW3, MOV MOV MOV MOV +A @RW2, R0 MOV @RW1+disp16, @RW1, R1 R2 MOV MOV @RW2+disp16, @RW2, R1 R2 MOV @RW1+disp16, @RW1, R0 R1 MOV MOV MOV +9 @RW1, R0 R2 MOV @RW0+disp16, @RW0, R1 R2 MOV MOV @RW2+disp16, @RW2, R0 R1 MOV @RW0+disp16, @RW0, R0 R1 R1 R0 MOV MOV +8 @RW0, R0 +B @RW3, MOV R1 MOV MOV @RW6+disp8, R6, R1 R2 MOV MOV @RW5+disp8, R5, R1 R2 MOV @RW7+disp8, R7, MOV R2 MOV @RW4+disp8, R4, R1 R2 MOV @RW7+disp8, R7, R0 +7 R7, MOV @RW4+disp8, R4, R0 R1 MOV @RW6+disp8, R6, R0 R1 MOV R1 R1 MOV R0 MOV @RW3+disp8, R3, MOV MOV @RW2+disp8, R2, R1 R2 MOV @RW3+disp8, R3, MOV +4 R4, R0 R0 +3 R3, MOV @RW2+disp8, R2, R0 R1 MOV MOV +2 R2, R0 R2 MOV @RW1+disp8, R1, R1 R2 MOV R1 MOV @RW1+disp8, R1, R0 R1 R1 MOV 40 MOV R0 MOV 30 @RW0+disp8, R0, MOV 20 @RW0+disp8, R0, MOV 10 MOV +1 R1, R0 R0 +0 R0, MOV 00 R3 MOV R3 MOV R3 MOV R3 MOV addr16, R2 MOV @RW3+, R3 MOV @PC+disp16, @RW2+, R2 R3 MOV MOV @RW1+RW7, @RW1+, R2 R3 MOV MOV @RW0+RW7, @RW0+, R2 R3 MOV R2 @RW3+disp16, @RW3, MOV MOV @RW2+disp16, @RW2, R2 R3 MOV MOV @RW1+disp16, @RW1, R2 R3 MOV MOV @RW0+disp16, @RW0, R2 R3 MOV R2 @RW7+disp8, R7, MOV MOV @RW6+disp8, R6, R2 R3 MOV MOV @RW5+disp8, R5, R2 R3 MOV MOV @RW4+disp8, R4, R2 R3 MOV R2 @RW3+disp8, R3, MOV MOV @RW2+disp8, R2, R2 R3 MOV MOV @RW1+disp8, R1, R2 R3 R2 MOV 60 MOV @RW0+disp8, R0, MOV 50 R4 MOV R4 MOV R4 MOV R4 MOV addr16, R3 MOV @RW3+, R4 MOV @PC+disp16, @RW2+, R3 R4 MOV MOV @RW1+RW7, @RW1+, R3 R4 MOV MOV @RW0+RW7, @RW0+, R3 R4 MOV R3 @RW3+disp16, @RW3, MOV MOV @RW2+disp16, @RW2, R3 R4 MOV MOV @RW1+disp16, @RW1, R3 R4 MOV MOV @RW0+disp16, @RW0, R3 R4 MOV R3 @RW7+disp8, R7, MOV MOV @RW6+disp8, R6, R3 R4 MOV MOV @RW5+disp8, R5, R3 R4 MOV MOV @RW4+disp8, R4, R3 R4 MOV R3 @RW3+disp8, R3, MOV MOV @RW2+disp8, R2, R3 R4 MOV MOV @RW1+disp8, R1, R3 R4 MOV R3 80 MOV @RW0+disp8, R0, MOV 70 R5 MOV R5 MOV R5 MOV R5 MOV addr16, R4 MOV @RW3+, R5 MOV @PC+disp16, @RW2+, R4 R5 MOV MOV @RW1+RW7, @RW1+, R4 R5 MOV MOV @RW0+RW7, @RW0+, R4 R5 MOV R4 @RW3+disp16, @RW3, MOV MOV @RW2+disp16, @RW2, R4 R5 MOV MOV @RW1+disp16, @RW1, R4 R5 MOV MOV @RW0+disp16, @RW0, R4 R5 MOV R4 @RW7+disp8, R7, MOV MOV @RW6+disp8, R6, R4 R5 MOV MOV @RW5+disp8, R5, R4 R5 MOV MOV @RW4+disp8, R4, R4 R5 MOV R4 @RW3+disp8, R3, MOV MOV @RW2+disp8, R2, R4 R5 MOV MOV @RW1+disp8, R1, R4 R5 R4 MOV A0 MOV @RW0+disp8, R0, MOV 90 R6 MOV R6 MOV R6 MOV R6 MOV addr16, R5 MOV @RW3+, R6 MOV @PC+disp16, @RW2+, R5 R6 MOV MOV @RW1+RW7, @RW1+, R5 R6 MOV MOV @RW0+RW7, @RW0+, R5 R6 MOV R5 @RW3+disp16, @RW3, MOV MOV @RW2+disp16, @RW2, R5 R6 MOV MOV @RW1+disp16, @RW1, R5 R6 MOV MOV @RW0+disp16, @RW0, R5 R6 MOV R5 @RW7+disp8, R7, MOV MOV @RW6+disp8, R6, R5 R6 MOV MOV @RW5+disp8, R5, R5 R6 MOV MOV @RW4+disp8, R4, R5 R6 MOV R5 @RW3+disp8, R3, MOV MOV @RW2+disp8, R2, R5 R6 MOV MOV @RW1+disp8, R1, R5 R6 MOV R5 C0 MOV @RW0+disp8, R0, MOV B0 R7 MOV R7 MOV R7 MOV R7 MOV addr16, R6 MOV @RW3+, R7 MOV @PC+disp16, @RW2+, R6 R7 MOV MOV @RW1+RW7, @RW1+, R6 R7 MOV MOV @RW0+RW7, @RW0+, R6 R7 MOV R6 @RW3+disp16, @RW3, MOV MOV @RW2+disp16, @RW2, R6 R7 MOV MOV @RW1+disp16, @RW1, R6 R7 MOV MOV @RW0+disp16, @RW0, R6 R7 MOV R6 @RW7+disp8, R7, MOV MOV @RW6+disp8, R6, R6 R7 MOV MOV @RW5+disp8, R5, R6 R7 MOV MOV @RW4+disp8, R4, R6 R7 MOV R6 @RW3+disp8, R3, MOV MOV @RW2+disp8, R2, R6 R7 MOV MOV @RW1+disp8, R1, R6 R7 R6 MOV E0 MOV @RW0+disp8, R0, MOV D0 MOV addr16, R7 R7 @PC+disp16, MOV R7 @RW1+RW7, MOV R7 @RW0+RW7, MOV R7 @RW3+disp16, MOV R7 @RW2+disp16, MOV R7 @RW1+disp16, MOV R7 @RW0+disp16, MOV R7 @RW7+disp8, MOV R7 @RW6+disp8, MOV R7 @RW5+disp8, MOV R7 @RW4+disp8, MOV R7 @RW3+disp8, MOV R7 @RW2+disp8, MOV R7 @RW1+disp8, MOV R7 @RW0+disp8, MOV F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.10-1 MOV Ri, ea 命令 ( 第 1 バイト =7CH) CM44-00203-3 F2MC-16FX ファミリ 付録 付録 C 命令マップ C.11 MOVW ea,RWi 命令 表 C.11-1 に , MOVW ea,RWi 命令の一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 385 386 MOVW @RW1+disp16, @RW1, RW1 RW2 MOVW MOVW MOVW FUJITSU MICROELECTRONICS LIMITED MOVW +F @RW3+, RW0 RW0 MOVW addr16, RW0 RW0 @PC+disp16, MOVW MOVW @RW3+, RW1 MOVW @RW2+, RW2 MOVW @RW2+, RW1 +E @RW2+, MOVW MOVW @RW1+RW7, @RW1+, RW1 RW2 MOVW @RW1+RW7, @RW1+, RW0 RW1 MOVW MOVW +D @RW1+, RW0 MOVW addr16, RW1 RW1 @PC+disp16, MOVW MOVW MOVW @RW3+, RW2 MOVW @RW0+RW7, @RW0+, RW1 RW2 MOVW @RW0+RW7, @RW0+, RW0 RW1 MOVW MOVW MOVW +C @RW0+, RW0 MOVW @RW3+disp16, @RW3, RW1 RW2 RW2 MOVW @RW3+disp16, @RW3, RW0 RW1 MOVW RW1 RW0 MOVW RW1 @RW2+disp16, @RW2, @RW2+disp16, @RW2, MOVW MOVW +B @RW3, RW0 RW0 +A @RW2, MOVW MOVW MOVW @RW1+disp16, @RW1, RW0 RW1 MOVW MOVW +9 @RW1, RW0 MOVW @RW0+disp16, @RW0, RW1 RW2 MOVW @RW0+disp16, @RW0, RW0 RW1 MOVW MOVW MOVW +8 @RW0, RW0 MOVW @RW7+disp8, RW7, RW1 RW2 RW2 MOVW @RW7+disp8, RW7, RW0 RW1 MOVW MOVW RW1 RW1 MOVW MOVW +7 RW7, RW0 RW0 MOVW RW0 MOVW MOVW MOVW @RW5+disp8, RW5, RW1 RW2 MOVW MOVW @RW4+disp8, RW4, RW1 RW2 MOVW @RW6+disp8, RW6, MOVW @RW5+disp8, RW5, RW0 RW1 MOVW MOVW MOVW +5 RW5, RW0 RW2 MOVW @RW3+disp8, RW3, RW1 RW2 MOVW @RW6+disp8, RW6, MOVW @RW4+disp8, RW4, RW0 RW1 +6 RW6, MOVW MOVW @RW3+disp8, RW3, RW0 RW1 RW1 RW1 MOVW RW0 MOVW MOVW +4 RW4, RW0 MOVW +3 RW3, RW0 RW0 MOVW @RW2+disp8, RW2, MOVW RW2 MOVW @RW1+disp8, RW1, RW1 RW2 MOVW @RW2+disp8, RW2, MOVW MOVW +2 RW2, MOVW @RW1+disp8, RW1, RW0 RW1 RW1 RW1 MOVW 40 RW0 MOVW MOVW +1 RW1, RW0 RW0 MOVW 30 @RW0+disp8, RW0, MOVW 20 @RW0+disp8, RW0, MOVW MOVW +0 RW0, 10 00 MOVW 60 RW3 MOVW RW3 MOVW RW3 MOVW RW3 MOVW addr16, RW2 RW2 @PC+disp16, MOVW MOVW @RW3+, RW3 MOVW @RW2+, RW3 MOVW @RW1+RW7, @RW1+, RW2 RW3 MOVW MOVW @RW0+RW7, @RW0+, RW2 RW3 MOVW MOVW @RW3+disp16, @RW3, RW2 RW3 MOVW RW2 @RW2+disp16, @RW2, MOVW MOVW @RW1+disp16, @RW1, RW2 RW3 MOVW MOVW @RW0+disp16, @RW0, RW2 RW3 MOVW MOVW @RW7+disp8, RW7, RW2 RW3 MOVW RW2 @RW6+disp8, RW6, MOVW MOVW @RW5+disp8, RW5, RW2 RW3 MOVW MOVW @RW4+disp8, RW4, RW2 RW3 MOVW MOVW @RW3+disp8, RW3, RW2 RW3 MOVW RW2 @RW2+disp8, RW2, MOVW MOVW @RW1+disp8, RW1, RW2 RW3 MOVW RW2 @RW0+disp8, RW0, MOVW 50 MOVW 80 RW4 MOVW RW4 MOVW RW4 MOVW RW4 MOVW addr16, RW3 RW3 @PC+disp16, MOVW MOVW @RW3+, RW4 MOVW @RW2+, RW4 MOVW @RW1+RW7, @RW1+, RW3 RW4 MOVW MOVW @RW0+RW7, @RW0+, RW3 RW4 MOVW MOVW @RW3+disp16, @RW3, RW3 RW4 MOVW RW3 @RW2+disp16, @RW2, MOVW MOVW @RW1+disp16, @RW1, RW3 RW4 MOVW MOVW @RW0+disp16, @RW0, RW3 RW4 MOVW MOVW @RW7+disp8, RW7, RW3 RW4 MOVW RW3 @RW6+disp8, RW6, MOVW MOVW @RW5+disp8, RW5, RW3 RW4 MOVW MOVW @RW4+disp8, RW4, RW3 RW4 MOVW MOVW @RW3+disp8, RW3, RW3 RW4 MOVW RW3 @RW2+disp8, RW2, MOVW MOVW @RW1+disp8, RW1, RW3 RW4 MOVW RW3 @RW0+disp8, RW0, MOVW 70 MOVW A0 RW5 MOVW RW5 MOVW RW5 MOVW RW5 MOVW addr16, RW4 RW4 @PC+disp16, MOVW MOVW @RW3+, RW5 MOVW @RW2+, RW5 MOVW @RW1+RW7, @RW1+, RW4 RW5 MOVW MOVW @RW0+RW7, @RW0+, RW4 RW5 MOVW MOVW @RW3+disp16, @RW3, RW4 RW5 MOVW RW4 @RW2+disp16, @RW2, MOVW MOVW @RW1+disp16, @RW1, RW4 RW5 MOVW MOVW @RW0+disp16, @RW0, RW4 RW5 MOVW MOVW @RW7+disp8, RW7, RW4 RW5 MOVW RW4 @RW6+disp8, RW6, MOVW MOVW @RW5+disp8, RW5, RW4 RW5 MOVW MOVW @RW4+disp8, RW4, RW4 RW5 MOVW MOVW @RW3+disp8, RW3, RW4 RW5 MOVW RW4 @RW2+disp8, RW2, MOVW MOVW @RW1+disp8, RW1, RW4 RW5 MOVW RW4 @RW0+disp8, RW0, MOVW 90 MOVW C0 RW6 MOVW RW6 MOVW RW6 MOVW RW6 MOVW addr16, RW5 RW5 @PC+disp16, MOVW MOVW @RW3+, RW6 MOVW @RW2+, RW6 MOVW @RW1+RW7, @RW1+, RW5 RW6 MOVW MOVW @RW0+RW7, @RW0+, RW5 RW6 MOVW MOVW @RW3+disp16, @RW3, RW5 RW6 MOVW RW5 @RW2+disp16, @RW2, MOVW MOVW @RW1+disp16, @RW1, RW5 RW6 MOVW MOVW @RW0+disp16, @RW0, RW5 RW6 MOVW MOVW @RW7+disp8, RW7, RW5 RW6 MOVW RW5 @RW6+disp8, RW6, MOVW MOVW @RW5+disp8, RW5, RW5 RW6 MOVW MOVW @RW4+disp8, RW4, RW5 RW6 MOVW MOVW @RW3+disp8, RW3, RW5 RW6 MOVW RW5 @RW2+disp8, RW2, MOVW MOVW @RW1+disp8, RW1, RW5 RW6 MOVW RW5 @RW0+disp8, RW0, MOVW B0 MOVW E0 RW7 MOVW RW7 MOVW RW7 MOVW RW7 MOVW addr16, RW6 RW6 @PC+disp16, MOVW MOVW @RW3+, RW7 MOVW @RW2+, RW7 MOVW @RW1+RW7, @RW1+, RW6 RW7 MOVW MOVW @RW0+RW7, @RW0+, RW6 RW7 MOVW MOVW @RW3+disp16, @RW3, RW6 RW7 MOVW RW6 @RW2+disp16, @RW2, MOVW MOVW @RW1+disp16, @RW1, RW6 RW7 MOVW MOVW @RW0+disp16, @RW0, RW6 RW7 MOVW MOVW @RW7+disp8, RW7, RW6 RW7 MOVW RW6 @RW6+disp8, RW6, MOVW MOVW @RW5+disp8, RW5, RW6 RW7 MOVW MOVW @RW4+disp8, RW4, RW6 RW7 MOVW MOVW @RW3+disp8, RW3, RW6 RW7 MOVW RW6 @RW2+disp8, RW2, MOVW MOVW @RW1+disp8, RW1, RW6 RW7 MOVW RW6 @RW0+disp8, RW0, MOVW D0 MOVW addr16, RW7 RW7 @PC+disp16, MOVW RW7 @RW1+RW7, MOVW RW7 @RW0+RW7, MOVW RW7 @RW3+disp16, MOVW RW7 @RW2+disp16, MOVW RW7 @RW1+disp16, MOVW RW7 @RW0+disp16, MOVW RW7 @RW7+disp8, MOVW RW7 @RW6+disp8, MOVW RW7 @RW5+disp8, MOVW RW7 @RW4+disp8, MOVW RW7 @RW3+disp8, MOVW RW7 @RW2+disp8, MOVW RW7 @RW1+disp8, MOVW RW7 @RW0+disp8, MOVW F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.11-1 MOVW ea,RWi 命令 ( 第 1 バイト =7DH) CM44-00203-3 F2MC-16FX ファミリ 付録 付録 C 命令マップ C.12 XCH Ri,ea 命令 表 C.12-1 に , XCH Ri,ea 命令の一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 387 388 XCH R0, XCH R0, XCH +5 R0, R5 XCH XCH R0, XCH R1, @RW0+disp16 @RW0 XCH R0, XCH +8 R0, @RW0 XCH +9 R0, @RW1 FUJITSU MICROELECTRONICS LIMITED XCH R0, XCH R1, @RW0+RW7 @RW0+ XCH R0, XCH R0, XCH +C R0, @RW0+ XCH +D R0, @RW1+ XCH XCH +F R0, @RW3+ @RW2+ +E R0, XCH R1, @RW3+disp16 @RW3 XCH R0, addr16 XCH R1, @RW3+ XCH R1, @PC+disp16 @RW2+ XCH R1, @RW1+RW7 @RW1+ XCH R0, XCH R1, @RW2+disp16 @RW2 XCH R0, XCH +B R0, @RW3 @RW2 +A R0, XCH XCH R1, @RW7+disp8 R7 XCH R1, @RW1+disp16 @RW1 XCH R0, XCH R1, @RW6+disp8 R6 XCH +7 R0, R7 R6 +6 R0, XCH R1, @RW4+disp8 R4 XCH R1, @RW5+disp8 R5 XCH R0, XCH R1, @RW3+disp8 R3 XCH R0, XCH +4 R0, R4 XCH +3 R0, R3 R2 XCH R1, @RW2+disp8 R2 XCH R0, XCH XCH R1, @RW1+disp8 R1 XCH R0, +2 R0, 20 XCH R1, @RW0+disp8 R0 XCH R0, 10 XCH +1 R0, R1 R0 +0 R0, XCH 00 40 XCH R1, addr16 XCH R2, @RW3+ XCH R2, @PC+disp16 @RW2+ XCH R1, XCH R2, @RW1+RW7 @RW1+ XCH R1, XCH R2, @RW0+RW7 @RW0+ XCH R1, XCH R2, @RW3+disp16 @RW3 XCH R1, XCH R2, @RW2+disp16 @RW2 XCH R1, XCH R2, @RW1+disp16 @RW1 XCH R1, XCH R2, @RW0+disp16 @RW0 XCH R1, XCH R2, @RW7+disp8 R7 XCH R1, XCH R2, @RW6+disp8 R6 XCH R1, XCH R2, @RW5+disp8 R5 XCH R1, XCH R2, @RW4+disp8 R4 XCH R1, XCH R2, @RW3+disp8 R3 XCH R1, XCH R2, @RW2+disp8 R2 XCH R1, XCH R2, @RW1+disp8 R1 XCH R1, XCH R2, @RW0+disp8 R0 XCH R1, 30 60 XCH R2, addr16 XCH R3, @RW3+ XCH R3, @PC+disp16 @RW2+ XCH R2, XCH R3, @RW1+RW7 @RW1+ XCH R2, XCH R3, @RW0+RW7 @RW0+ XCH R2, XCH R3, @RW3+disp16 @RW3 XCH R2, XCH R3, @RW2+disp16 @RW2 XCH R2, XCH R3, @RW1+disp16 @RW1 XCH R2, XCH R3, @RW0+disp16 @RW0 XCH R2, XCH R3, @RW7+disp8 R7 XCH R2, XCH R3, @RW6+disp8 R6 XCH R2, XCH R3, @RW5+disp8 R5 XCH R2, XCH R3, @RW4+disp8 R4 XCH R2, XCH R3, @RW3+disp8 R3 XCH R2, XCH R3, @RW2+disp8 R2 XCH R2, XCH R3, @RW1+disp8 R1 XCH R2, XCH R3, @RW0+disp8 R0 XCH R2, 50 80 XCH R3, addr16 XCH R4, @RW3+ XCH R4, @PC+disp16 @RW2+ XCH R3, XCH R4, @RW1+RW7 @RW1+ XCH R3, XCH R4, @RW0+RW7 @RW0+ XCH R3, XCH R4, @RW3+disp16 @RW3 XCH R3, XCH R4, @RW2+disp16 @RW2 XCH R3, XCH R4, @RW1+disp16 @RW1 XCH R3, XCH R4, @RW0+disp16 @RW0 XCH R3, XCH R4, @RW7+disp8 R7 XCH R3, XCH R4, @RW6+disp8 R6 XCH R3, XCH R4, @RW5+disp8 R5 XCH R3, XCH R4, @RW4+disp8 R4 XCH R3, XCH R4, @RW3+disp8 R3 XCH R3, XCH R4, @RW2+disp8 R2 XCH R3, XCH R4, @RW1+disp8 R1 XCH R3, XCH R4, @RW0+disp8 R0 XCH R3, 70 A0 XCH R4, addr16 XCH R5, @RW3+ XCH R5, @PC+disp16 @RW2+ XCH R4, XCH R5, @RW1+RW7 @RW1+ XCH R4, XCH R5, @RW0+RW7 @RW0+ XCH R4, XCH R5, @RW3+disp16 @RW3 XCH R4, XCH R5, @RW2+disp16 @RW2 XCH R4, XCH R5, @RW1+disp16 @RW1 XCH R4, XCH R5, @RW0+disp16 @RW0 XCH R4, XCH R5, @RW7+disp8 R7 XCH R4, XCH R5, @RW6+disp8 R6 XCH R4, XCH R5, @RW5+disp8 R5 XCH R4, XCH R5, @RW4+disp8 R4 XCH R4, XCH R5, @RW3+disp8 R3 XCH R4, XCH R5, @RW2+disp8 R2 XCH R4, XCH R5, @RW1+disp8 R1 XCH R4, XCH R5, @RW0+disp8 R0 XCH R4, 90 C0 XCH R5, addr16 XCH R6, @RW3+ XCH R6, @PC+disp16 @RW2+ XCH R5, XCH R6, @RW1+RW7 @RW1+ XCH R5, XCH R6, @RW0+RW7 @RW0+ XCH R5, XCH R6, @RW3+disp16 @RW3 XCH R5, XCH R6, @RW2+disp16 @RW2 XCH R5, XCH R6, @RW1+disp16 @RW1 XCH R5, XCH R6, @RW0+disp16 @RW0 XCH R5, XCH R6, @RW7+disp8 R7 XCH R5, XCH R6, @RW6+disp8 R6 XCH R5, XCH R6, @RW5+disp8 R5 XCH R5, XCH R6, @RW4+disp8 R4 XCH R5, XCH R6, @RW3+disp8 R3 XCH R5, XCH R6, @RW2+disp8 R2 XCH R5, XCH R6, @RW1+disp8 R1 XCH R5, XCH R6, @RW0+disp8 R0 XCH R5, B0 E0 XCH R6, addr16 XCH R7, @RW3+ XCH R7, @PC+disp16 @RW2+ XCH R6, XCH R7, @RW1+RW7 @RW1+ XCH R6, XCH R7, @RW0+RW7 @RW0+ XCH R6, XCH R7, @RW3+disp16 @RW3 XCH R6, XCH R7, @RW2+disp16 @RW2 XCH R6, XCH R7, @RW1+disp16 @RW1 XCH R6, XCH R7, @RW0+disp16 @RW0 XCH R6, XCH R7, @RW7+disp8 R7 XCH R6, XCH R7, @RW6+disp8 R6 XCH R6, XCH R7, @RW5+disp8 R5 XCH R6, XCH R7, @RW4+disp8 R4 XCH R6, XCH R7, @RW3+disp8 R3 XCH R6, XCH R7, @RW2+disp8 R2 XCH R6, XCH R7, @RW1+disp8 R1 XCH R6, XCH R7, @RW0+disp8 R0 XCH R6, D0 XCH R7, addr16 @PC+disp16 XCH R7, @RW1+RW7 XCH R7, @RW0+RW7 XCH R7, @RW3+disp16 XCH R7, @RW2+disp16 XCH R7, @RW1+disp16 XCH R7, @RW0+disp16 XCH R7, @RW7+disp8 XCH R7, @RW6+disp8 XCH R7, @RW5+disp8 XCH R7, @RW4+disp8 XCH R7, @RW3+disp8 XCH R7, @RW2+disp8 XCH R7, @RW1+disp8 XCH R7, @RW0+disp8 XCH R7, F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.12-1 XCH Ri, ea 命令 ( 第 1 バイト =7EH) CM44-00203-3 F2MC-16FX ファミリ 付録 付録 C 命令マップ C.13 XCHW RWi,ea 命令 表 C.13-1 に , XCHW RWi,ea 命令の一覧表を示します。 CM44-00203-3 FUJITSU MICROELECTRONICS LIMITED 389 390 XCHW RW1, @RW1+disp8 RW1 XCHW RW0, XCHW RW1, @RW2+disp8 RW2 XCHW RW1, @RW3+disp8 RW3 RW0 XCHW XCHW +2 RW0, RW2 XCHW +3 RW0, RW3 FUJITSU MICROELECTRONICS LIMITED XCHW RW0, XCHW RW1, @RW6+disp8 RW6 XCHW RW0, XCHW RW1, @RW7+disp8 RW7 XCHW RW1, @RW0+disp16 @RW0 XCHW RW1, @RW1+disp16 @RW1 XCHW RW0, XCHW RW1, @RW2+disp16 @RW2 XCHW RW0, XCHW RW1, @RW3+disp16 @RW3 XCHW RW0, XCHW +6 RW0, RW6 XCHW +7 RW0, RW7 XCHW +8 RW0, @RW0 XCHW @RW1 XCHW +A RW0, @RW2 XCHW +B RW0, @RW3 XCHW +C RW0, @RW0+ @RW1+RW7 @PC+disp16 XCHW RW0, addr16 XCHW +E RW0, @RW2+ XCHW +F RW0, @RW3+ XCHW RW0, @RW1+ +D RW0, XCHW RW0, @RW0+RW7 XCHW RW0, XCHW RW0, XCHW +9 RW0, RW5 XCHW RW1, @RW3+ XCHW RW1, @RW2+ XCHW RW1, @RW1+ XCHW RW1, @RW0+ XCHW RW1, @RW5+disp8 RW5 XCHW RW0, XCHW +5 RW0, XCHW RW1, @RW4+disp8 RW4 XCHW RW0, XCHW RW0, XCHW +4 RW0, RW4 RW1 +1 RW0, XCHW RW0, @RW0+disp8 XCHW RW1, RW0 XCHW RW0, +0 RW0, XCHW 20 10 00 XCHW RW2, RW0 40 XCHW RW1, addr16 @PC+disp16 XCHW RW1, @RW1+RW7 XCHW RW1, @RW0+RW7 XCHW RW1, XCHW RW2, @RW3+ XCHW RW2, @RW2+ XCHW RW2, @RW1+ XCHW RW2, @RW0+ XCHW RW2, @RW3+disp16 @RW3 XCHW RW1, XCHW RW2, @RW2+disp16 @RW2 XCHW RW1, XCHW RW2, @RW1+disp16 @RW1 XCHW RW1, XCHW RW2, @RW0+disp16 @RW0 XCHW RW1, XCHW RW2, @RW7+disp8 RW7 XCHW RW1, XCHW RW2, @RW6+disp8 RW6 XCHW RW1, XCHW RW2, @RW5+disp8 RW5 XCHW RW1, XCHW RW2, @RW4+disp8 RW4 XCHW RW1, XCHW RW2, @RW3+disp8 RW3 XCHW RW1, XCHW RW2, @RW2+disp8 RW2 XCHW RW1, XCHW RW2, @RW1+disp8 RW1 XCHW RW1, @RW0+disp8 XCHW RW1, 30 XCHW RW3, RW0 60 XCHW RW2, addr16 @PC+disp16 XCHW RW2, @RW1+RW7 XCHW RW2, @RW0+RW7 XCHW RW2, XCHW RW3, @RW3+ XCHW RW3, @RW2+ XCHW RW3, @RW1+ XCHW RW3, @RW0+ XCHW RW3, @RW3+disp16 @RW3 XCHW RW2, XCHW RW3, @RW2+disp16 @RW2 XCHW RW2, XCHW RW3, @RW1+disp16 @RW1 XCHW RW2, XCHW RW3, @RW0+disp16 @RW0 XCHW RW2, XCHW RW3, @RW7+disp8 RW7 XCHW RW2, XCHW RW3, @RW6+disp8 RW6 XCHW RW2, XCHW RW3, @RW5+disp8 RW5 XCHW RW2, XCHW RW3, @RW4+disp8 RW4 XCHW RW2, XCHW RW3, @RW3+disp8 RW3 XCHW RW2, XCHW RW3, @RW2+disp8 RW2 XCHW RW2, XCHW RW3, @RW1+disp8 RW1 XCHW RW2, @RW0+disp8 XCHW RW2, 50 XCHW RW4, RW0 80 XCHW RW3, addr16 @PC+disp16 XCHW RW3, @RW1+RW7 XCHW RW3, @RW0+RW7 XCHW RW3, XCHW RW4, @RW3+ XCHW RW4, @RW2+ XCHW RW4, @RW1+ XCHW RW4, @RW0+ XCHW RW4, @RW3+disp16 @RW3 XCHW RW3, XCHW RW4, @RW2+disp16 @RW2 XCHW RW3, XCHW RW4, @RW1+disp16 @RW1 XCHW RW3, XCHW RW4, @RW0+disp16 @RW0 XCHW RW3, XCHW RW4, @RW7+disp8 RW7 XCHW RW3, XCHW RW4, @RW6+disp8 RW6 XCHW RW3, XCHW RW4, @RW5+disp8 RW5 XCHW RW3, XCHW RW4, @RW4+disp8 RW4 XCHW RW3, XCHW RW4, @RW3+disp8 RW3 XCHW RW3, XCHW RW4, @RW2+disp8 RW2 XCHW RW3, XCHW RW4, @RW1+disp8 RW1 XCHW RW3, @RW0+disp8 XCHW RW3, 70 XCHW RW5, RW0 A0 XCHW RW4, addr16 @PC+disp16 XCHW RW4, @RW1+RW7 XCHW RW4, @RW0+RW7 XCHW RW4, XCHW RW5, @RW3+ XCHW RW5, @RW2+ XCHW RW5, @RW1+ XCHW RW5, @RW0+ XCHW RW5, @RW3+disp16 @RW3 XCHW RW4, XCHW RW5, @RW2+disp16 @RW2 XCHW RW4, XCHW RW5, @RW1+disp16 @RW1 XCHW RW4, XCHW RW5, @RW0+disp16 @RW0 XCHW RW4, XCHW RW5, @RW7+disp8 RW7 XCHW RW4, XCHW RW5, @RW6+disp8 RW6 XCHW RW4, XCHW RW5, @RW5+disp8 RW5 XCHW RW4, XCHW RW5, @RW4+disp8 RW4 XCHW RW4, XCHW RW5, @RW3+disp8 RW3 XCHW RW4, XCHW RW5, @RW2+disp8 RW2 XCHW RW4, XCHW RW5, @RW1+disp8 RW1 XCHW RW4, @RW0+disp8 XCHW RW4, 90 XCHW RW6, RW0 C0 XCHW RW5, addr16 @PC+disp16 XCHW RW5, @RW1+RW7 XCHW RW5, @RW0+RW7 XCHW RW5, XCHW RW6, @RW3+ XCHW RW6, @RW2+ XCHW RW6, @RW1+ XCHW RW6, @RW0+ XCHW RW6, @RW3+disp16 @RW3 XCHW RW5, XCHW RW6, @RW2+disp16 @RW2 XCHW RW5, XCHW RW6, @RW1+disp16 @RW1 XCHW RW5, XCHW RW6, @RW0+disp16 @RW0 XCHW RW5, XCHW RW6, @RW7+disp8 RW7 XCHW RW5, XCHW RW6, @RW6+disp8 RW6 XCHW RW5, XCHW RW6, @RW5+disp8 RW5 XCHW RW5, XCHW RW6, @RW4+disp8 RW4 XCHW RW5, XCHW RW6, @RW3+disp8 RW3 XCHW RW5, XCHW RW6, @RW2+disp8 RW2 XCHW RW5, XCHW RW6, @RW1+disp8 RW1 XCHW RW5, @RW0+disp8 XCHW RW5, B0 XCHW RW7, RW0 E0 XCHW RW6, addr16 @PC+disp16 XCHW RW6, @RW1+RW7 XCHW RW6, @RW0+RW7 XCHW RW6, XCHW RW7, @RW3+ XCHW RW7, @RW2+ XCHW RW7, @RW1+ XCHW RW7, @RW0+ XCHW RW7, @RW3+disp16 @RW3 XCHW RW6, XCHW RW7, @RW2+disp16 @RW2 XCHW RW6, XCHW RW7, @RW1+disp16 @RW1 XCHW RW6, XCHW RW7, @RW0+disp16 @RW0 XCHW RW6, XCHW RW7, @RW7+disp8 RW7 XCHW RW6, XCHW RW7, @RW6+disp8 RW6 XCHW RW6, XCHW RW7, @RW5+disp8 RW5 XCHW RW6, XCHW RW7, @RW4+disp8 RW4 XCHW RW6, XCHW RW7, @RW3+disp8 RW3 XCHW RW6, XCHW RW7, @RW2+disp8 RW2 XCHW RW6, XCHW RW7, @RW1+disp8 RW1 XCHW RW6, @RW0+disp8 XCHW RW6, D0 XCHW RW7, addr16 @PC+disp16 XCHW RW7, @RW1+RW7 XCHW RW7, @RW0+RW7 XCHW RW7, @RW3+disp16 XCHW RW7, @RW2+disp16 XCHW RW7, @RW1+disp16 XCHW RW7, @RW0+disp16 XCHW RW7, @RW7+disp8 XCHW RW7, @RW6+disp8 XCHW RW7, @RW5+disp8 XCHW RW7, @RW4+disp8 XCHW RW7, @RW3+disp8 XCHW RW7, @RW2+disp8 XCHW RW7, @RW1+disp8 XCHW RW7, @RW0+disp8 XCHW RW7, F0 付録 付録 C 命令マップ F2MC-16FX ファミリ 表 C.13-1 XCHW RWi, ea 命令 ( 第 1 バイト =7FH) CM44-00203-3 索引 索引 A A ADD (Add Byte Data of Destination and Source to Destination).................................................. 87 ADDC (Add Byte Data of Accumulator and Effective Address with Carry to Accumulator)............... 90 ADDC (Add Byte Data of AL and AH with Carry to AL) ............................................................. 89 ADDCW (Add Word Data of Accumulator and Effective Address with Carry to Accumulator) ............................................... 92 ADDDC (Add Decimal Data of AL and AH with Carry to AL)................................................. 94 ADDL (Add Long Word Data of Destination and Source to Destination) ................................... 95 ADDSP (Add Word Data of Stack Pointer and Immediate Data to Stack Pointer) ................... 97 ADDW (Add Word Data of AL and AH to AL).................................................... 99 ADDW (Add Word Data of Destination and Source to Destination)................................................ 100 AND (And Byte Data of Destination and Source to Destination)................................................ 102 AND (And Byte Data of Immediate Data and Condition Code Register) ............................ 104 ANDL (And Long Word Data of Destination and Source to Destination) ................................. 106 ANDW (And Word Data of AH and AL to AL) .................................................. 108 ANDW (And Word Data of Destination and Source to Destination)................................................ 109 ASR (Arithmetic Shift Byte Data of Accumulator to Right) ........................................................ 111 ASRL (Arithmetic Shift Long Word Data of Accumulator to Right)................................. 113 ASRW (Arithmetic Shift Word Data of Accumulator to Right)............................................. 115, 117 アキュムレータ (A)......................................... 22 CMPW (Compare Word Data of Destination and Source).......................................................136 CWBNE (Compare Word Data and Branch if not equal) .........................................................138 CCR コンディションコードレジスタ (CCR)............27 CMR コモンレジスタバンクプリフィックス (CMR)..........................................................42 CPU CPU の概要........................................................2 CPU のメモリ空間 ...........................................10 F2MC-16FX CPU のハードウェア構造 ...............4 D D DBNZ (Decrement Byte Data and Branch if not zero) ..................................................140 DEC (Decrement Byte Data).............................142 DECL (Decrement Long Word Data).................143 DECW (Decrement Word Data) ........................144 DIV (Divide Word Data by Byte Data) ..............146 DIVU (Divide unsigned Word Data by unsigned Byte Data) ..........................................................150 DIVUW (Divide unsigned Long Word Data by unsigned Word Data) ...................................152 DIVW (Divide Long Word Data by Word Data) .................................................148 DWBNZ (Decrement Word Data and Branch if not Zero) ..........................................................154 DMA ダイレクトメモリアクセス (DMA)..................49 DPR ダイレクトページレジスタ (DPR) ...................32 E E EXT (Sign Extend from Byte Data to Word Data) .................................................156 EXTW (Sign Extend from Word Data to Long Word Data) ..........................................................157 B B BBcc (Branch if Bit Condition satisfied)............ 119 Bcc (Branch relative if Condition satisfied)........ 121 C C CALL (Call Subrourtine) ................................. 123 CALLP (Call physical Address)........................ 125 CALLV (Call Vectored Subroutine) .................. 127 CBNE (Compare Byte Data and Branch if not equal)................................................ 129 CLRB (Clear Bit) ............................................ 131 CMP (Compare Byte Data of Destination and Source) ................................................ 132 CMPL (Compare Long Word Data of Destination and Source) ...................................................... 134 CM44-00203-3 F F FILS, FILSI (Fill String Byte) ...........................158 FILSW, FILSWI (Fill String Word) ...................160 F2MC-16FX F2MC-16FX CPU のハードウェア構造 ...............4 F2MC-16FX ファミリ MCU のハードウェア構造 例 ..................................................................6 I I INC (Increment Byte Data ( アドレス指定 )) .......................................162 INCL (Increment Long Word Data) ...................163 INCW (Increment Word Data) ..........................164 INT (Software Interrupt( ベクタ指定 )).............168 FUJITSU MICROELECTRONICS LIMITED 391 索引 INT (Software Interrupt) .................................. 166 INT9 (Software Interrupt) ................................ 170 INTP (Software Interrupt) ................................ 172 ICR 割込み制御レジスタ (ICR) .............................. 53 ILM 割込みレベルマスク (ILM).............................. 29 J J JCTX (Jump Context) ...................................... 174 JMP (Jump Destination Address) ...................... 176 JMPP (Jump Destination Physical Address) ....... 178 L L LINK (Link and create new stack frame) ........... 179 LSL (Logical Shift Byte Data of Accumulator to Left)....................................................... 181 LSLL (Logical Shift Long Word Data of Accumulator to Left)....................................................... 183 LSLW (Logical Shift Word Data of Accumulator to Left) .................................................. 185, 187 LSR (Logical Shift Byte Data of Accumulator to Right) ........................................................ 189 LSRL (Logical Shift Long Word Data of Accumulator to Right)..................................................... 191 LSRW (Logical Shift Word Data of Accumulator to Right) ................................................ 193, 195 M M MOV (Move Byte Data from Accumulator to Destination)................................................ 199 MOV (Move Byte Data from AH to Memory ) ............................................... 205 MOV (Move Byte Data from Source to Accumulator).......................................... 197 MOV (Move Byte Data from Source to Destination) ............................................ 203 MOV (Move Byte Immediate data to Destination) ............................................ 201 MOVB (Move Bit Data from Accumulator to Bit Address) .................................................... 209 MOVB (Move Bit Data from Bit Address to Accumulator) ............................................. 207 MOVEA (Move Effective Address to Destination) ............................................ 211 MOVL (Move Long Word Data from Accumulator to Destination)................................................ 215 MOVL (Move Long Word Data from Source to Accumulator) ............................................. 213 MOVN (Move Immediate Nibble Data to Accumulator) ............................................. 217 MOVS, MOVSI (Move String Byte with Increment) .......................................... 218 MOVSD (Move String Byte with Decrement) ......................................... 220 MOVSW, MOVSWI (Move String Word with Increment).................................................. 221 MOVSWI (Move String Word with Decrement) ......................................... 223 392 MOVW (Move Immediate Word Data to Destination) ............................................228 MOVW (Move Immediate Word Data to io) ..........................................................232 MOVW (Move Word Data from Accumulator to Destination) ................................................226 MOVW (Move Word Data from AH to Memory).................................................233 MOVW (Move Word Data from Source to Accumulator) ..............................................224 MOVW (Move Word Data from source to Destination) ................................................230 MOVX (Move Byte Data with Sign Extension from Source to Accumulator) ...............................235 MUL (Multiply Byte Data of Accumulator and Effective Address) .......................................238 MUL (Multiply Byte Data of Accumulator)........237 MULU (Multiply Unsigned Byte Data of Accumulator and Effective Address).................................244 MULU (Multiply Unsigned Byte Data of Accumulator) ..............................................243 MULUW (Multiply Unsigned Word Data of Accumulator and Effective Address) .............247 MULUW (Multiply Unsigned Word Data of Accumulator) ..............................................246 MULW (Multiply Word Data of Accumulator and Effective Address) .......................................241 MULW (Multiply Word Data of Accumulator) ..........................................240 MCU F2MC-16FX ファミリ MCU のハードウェア構造 例 ..................................................................6 N N NEG (Negate Byte Data of Destination).............248 NEGW (Negate Word Data of Destination) ........250 NOP (No Operation) ........................................252 NOT (Not Byte Data of Destination)..................253 NOTW (Not Word Data of Destination).............255 NRML (NORMALIZE Long Word) ..................257 NCC フラグ変化抑止プリフィックスコード (NCC) ..........................................................43 NMI NMI 制御ステータスレジスタ (NMI)...............56 NMI 制御ステータスレジスタ NMI 制御ステータスレジスタ (NMI)...............56 O O OR (Or Byte Data of Destination and Source to Destination) ................................................259 OR (Or Byte Data of Immediate Data and Condition Code Register to Condition Code Register).....................................................261 ORL (Or Long Word Data of Destination and Source to Destination )............................................263 ORW (Or Word Data of AH and AL to AL) .......265 ORW (Or Word Data of Destination and Source to Destination) ................................................266 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 索引 P P POPW (Pop Registers from Stack Memory)....... 274 POPW (Pop Word Data of Accumulator from Stack Memory).................................................... 268 POPW (Pop Word Data of AH from Stack Memory).................................................... 270 POPW (Pop Word Data of Program Status from Stack Memory).................................................... 272 PUSHW (Push Registers to Stack Memory) ....... 278 PUSHW (Push Word Data of Inherent Register to Stack Memory) ........................................... 276 PC プログラムカウンタ (PC)................................ 31 PS プロセッサステータス (PS)............................. 26 R SUBCW (Subtract Word Data of Effective Address from Accumulator with Carry to Accumulator) ..........................................307 SUBDC (Subtract Decimal Data of AL from AH with Carry to AL) ...............................................309 SUBL (Subtract Long Word Data of Source from Destination to Destination) ...........................310 SUBW (Subtract Word Data of AL from AH to AL) ..................................................314 SUBW (Subtract Word Data of Source from Destination to Destination) ...........................312 SWAP (Swap Byte Data of Accumulator) ..........315 SWAPW (Swap Word Data of Accumulator) ..........................................316 SSP ユーザスタックポインタ (USP) とシステムス タックポインタ (SSP) .................................24 U R RET (Return from Subroutine) ......................... 280 RETI (Return from Interrupt) ........................... 282 RETP (Return from physical Address)............... 285 ROLC (Rotate Byte Data of Accumulator With Carry to Left)....................................................... 287 RORC (Rotate Byte Data of Accumulator With Carry to Right)..................................................... 289 RAM RAM 上の汎用レジスタの呼び出し方 ............ 38 RAM 上のレジスタバンク .............................. 36 RP レジスタバンクポインタ (RP)......................... 28 U UNLINK (Unlink and create new stack frame) ........................................................317 USP ユーザスタックポインタ (USP) とシステムス タックポインタ (SSP) .................................24 W W WBTc (Wait until Bit Condition satisfied)..........318 X X XCH (Exchange Byte Data of Source to Destination) ............................................320 XCHW (Exchange Word Data of Source to Destination) ................................................322 XOR (Exclusive Or Byte Data of Destination and Source to Destination)..................................324 XORL (Exclusive Or Long Word Data of Destination) ............................................326 XORW (Exclusive Or Word Data of AH and AL to AL) ............................................................328 XORW (Exclusive Or Word Data of Destination and Source to Destination)..................................329 S S SBBS (Set Bit and Branch if Bit Set)................. 291 SCEQ, SCEQI (Scan String Byte until equal with Increment).................................................. 293 SCEQD (Scan String Byte until equal with Decrement) ................................................ 295 SCWEQ, SCWEQI (Scan String Word until equal with Increment) .......................................... 297 SCWEQD (Scan String Word until equal with Decrement) ................................................ 299 SETB (Set Bit) ................................................ 301 SUB (Subtract Byte Data of Source from Destination to Destination) ............................................ 302 SUBC (Subtract Byte Data of AL from AH with Carry to AL)........................................................ 304 SUBC (Subtract Byte Data of Effective Address from Accumulator with Carry to Accumulator) ............................................. 305 CM44-00203-3 Z Z ZEXT (Zero Extend from Byte Data to Word Data) .............................................331 ZEXTW (Zero Extend from Word Data to Long Word Data) ..........................................................332 FUJITSU MICROELECTRONICS LIMITED 393 索引 あ ち アキュムレータ アキュムレータ (A)......................................... 22 アドレス指定 バンク方式のアドレス指定............................. 13 リニア方式のアドレス指定............................. 11 アドレス補正 奇数アドレス補正 ................................... 86, 336 直接アドレス 直接アドレス指定方式 ....................................77 か は 間接アドレス 間接アドレス指定方式 .................................... 79 き 記号 命令細則中で使用される記号 ( 略称 )............. 85 奇数アドレス補正 奇数アドレス補正 ................................... 86, 336 こ コモン コモンレジスタバンクプリフィックス (CMR) ......................................................... 42 コンディションコードレジスタ コンディションコードレジスタ (CCR) ........... 27 し システムスタックポインタ ユーザスタックポインタ (USP) とシステムス タックポインタ (SSP) ................................. 24 実効アドレス 実効アドレスフィールド ................................ 76 実行サイクル 実行サイクル数....................................... 86, 336 処理時間 ハードウェア割込みの処理時間...................... 64 せ セレクト バンクセレクトプリフィックス...................... 40 そ ソフトウェア例外 ソフトウェア例外 ( 命令コード ) .................... 70 ソフトウェア割込み ソフトウェア割込み.................................. 49, 65 ソフトウェア割込みシステムの構造 .............. 65 ソフトウェア割込みの動作............................. 66 多重ソフトウェア割込み ................................ 67 た ダイレクトページレジスタ ダイレクトページレジスタ (DPR) .................. 32 ダイレクトメモリアクセス ダイレクトメモリアクセス (DMA) ................. 49 多重ソフトウェア割込み 多重ソフトウェア割込み ................................ 67 多重ハードウェア割込み 多重ハードウェア割込み ................................ 67 多バイト長データ 多バイト長データのアクセス ......................... 17 メモリ空間における多バイト長データの 配置 ............................................................ 16 394 の ノンマスカブルインタラプト ハードウェア例外 ( ノンマスカブルインタラプ ト ) ..............................................................71 ハードウェア構造 F2MC-16FX CPU のハードウェア構造 ...............4 ハードウェア構造例 F2MC-16FX ファミリ MCU のハードウェア構造 例 ..................................................................6 ハードウェア例外 ハードウェア例外 ( ノンマスカブルインタラプ ト ) ..............................................................71 ハードウェア割込み 多重ハードウェア割込み .................................67 ハードウェア割込み ..................................48, 61 ハードウェア割込みシステムの構造 ...............61 ハードウェア割込みの処理時間 ......................64 ハードウェア割込みの動作 .............................62 バンク コモンレジスタバンクプリフィックス (CMR)..........................................................42 バンクセレクトプリフィックス ......................40 バンクに分割されたメモリ空間と各バンクレジ スタの値......................................................15 バンク方式 バンク方式のアドレス指定 .............................13 バンクレジスタ バンクに分割されたメモリ空間と各バンクレジ スタの値......................................................15 バンクレジスタ ...............................................33 汎用レジスタ RAM 上の汎用レジスタの呼び出し方 .............38 ふ フラグ変化抑止プリフィックス フラグ変化抑止プリフィックスコード (NCC) ..........................................................43 プリフィックス コモンレジスタバンクプリフィックス (CMR)..........................................................42 バンクセレクトプリフィックス ......................40 フラグ変化抑止プリフィックスコード (NCC) ..........................................................43 プリフィックスコードが連続している とき.............................................................45 割込み要求を受け付けない命令とプリフィック スコードの関係...........................................44 プログラムカウンタ プログラムカウンタ (PC) ................................31 プロセッサステータス プロセッサステータス (PS) .............................26 へ ベクタテーブル 割込みベクタテーブル ....................................51 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 索引 ほ 補正 奇数アドレス補正 ................................... 86, 336 め 命令 ソフトウェア例外 ( 命令コード ) .................... 70 命令一覧表の記号の説明 .............................. 337 命令細則中で使用される記号 ( 略称 )............. 85 命令細則の読み方 ........................................... 84 命令マップの構造 ......................................... 357 割込み要求を受け付けない命令とプリフィック スコードの関係 .......................................... 44 命令マップ 命令マップの構造 ......................................... 357 メモリ空間 CPU のメモリ空間 .......................................... 10 バンクに分割されたメモリ空間と各バンクレジ スタの値 ..................................................... 15 メモリ空間における多バイト長データの 配置 ............................................................ 16 ゆ ユーザスタックポインタ ユーザスタックポインタ (USP) とシステムス タックポインタ (SSP) ................................. 24 優先順位 割込み受付の優先順位 .................................... 68 よ 読み方 命令細則の読み方 ........................................... 84 り リニア方式 リニア方式のアドレス指定............................. 11 略称 命令細則中で使用される記号 ( 略称 )............. 85 れ 例外 ソフトウェア例外 ( 命令コード ) .................... 70 CM44-00203-3 ハードウェア例外 ( ノンマスカブルインタラプ ト ) ..............................................................71 例外 .................................................................49 レジスタ NMI 制御ステータスレジスタ (NMI)...............56 コモンレジスタバンクプリフィックス (CMR)..........................................................42 割込み制御レジスタ (ICR)...............................53 レジスタバンク RAM 上のレジスタバンク ...............................36 レジスタバンクポインタ レジスタバンクポインタ (RP) .........................28 連続 プリフィックスコードが連続している とき.............................................................45 わ 割込み ソフトウェア割込み ..................................49, 65 ソフトウェア割込みシステムの構造 ...............65 ソフトウェア割込みの動作 .............................66 多重ソフトウェア割込み .................................67 多重ハードウェア割込み .................................67 ハードウェア割込み ..................................48, 61 ハードウェア割込みシステムの構造 ...............61 ハードウェア割込みの処理時間 ......................64 ハードウェア割込みの動作 .............................62 割込み受付の優先順位 ....................................68 割込みフロー ...................................................59 割込みベクタ ...................................................50 割込みベクタテーブル ....................................51 割込み要求を受け付けない命令とプリフィック スコードの関係...........................................44 割込み制御レジスタ 割込み制御レジスタ (ICR)...............................53 割込みベクタ 割込みベクタ ...................................................50 割込み要求 割込み要求を受け付けない命令とプリフィック スコードの関係...........................................44 割込みレベルマスク 割込みレベルマスク (ILM) ..............................29 FUJITSU MICROELECTRONICS LIMITED 395 索引 396 FUJITSU MICROELECTRONICS LIMITED CM44-00203-3 CM44-00203-3 富士通マイクロエレクトロニクス • CONTROLLER MANUAL F2MC®-16FX 16 ビット・マイクロコントローラ プログラミングマニュアル 2010 年 3 月 第 3 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 プロモーション推進部