TLCS-870/C1シリーズ命令セット

Size: px
Start display at page:

Download "TLCS-870/C1シリーズ命令セット"

Transcription

1 TLCS-87/C シリーズ 命令セット セミコンダクター社

2 Page 2 TLCS-87/C

3 TLCS-87/C 第 章 概要 TLCS-87/C シリーズの基本機械命令は 33 種 732 命令で 下表に命令の分類を示します TLCS-87/ C シリーズには バイト長から最長 5 バイト長の命令があります 使用頻度の高い命令は オブジェクトコードを短くしており メモリ効率の良いプログラムを組むことができます また TLCS-87/C シリーズは メモリマップド I/O 方式の採用によりシンプルな命令体系で ニモニックは 42 種類でありながら 8 種類におよぶアドレッシングモードにより強力なメモリ操作が可能です 基本機械命令のほかに コーディング効率の向上を図るためアセンブラによる拡張機械命令が用意されています 表 - 命令セット 8 ビットデータ転送 / 交換 7 種 49 命令 6 ビットデータ転送 / 交換 7 43 転送 / 交換 フラグ操作 5 5 SP 操作 2 プッシュ / ポップ 4 6 比較 4 29 増減 ビット演算 算術演算 6 6 論理演算 2 87 十進補正 2 2 演算 比較 3 5 増減 ビット演算 算術演算 2 6 論理演算 の補数 乗除算 2 2 シフト / ローテート 8 ビット ( 論理 ) 2 2 シフト 6 ビット ( 算術 ) 2 2 ローテート 8 ビット 2 2 ニブル処理スワップ / ニブルローテート 3 27 ビット操作セット / クリア / 反転 / 転送 / 交換 / 演算 8 62 ジャンプ 6 24 分岐 コール 4 6 リターン 3 3 その他ソフトウエア割り込み / その他 2 2 計 33 種 732 命令 表 -2 アドレッシングモード ( / 2) レジスタ間接 7 種 ダイレクト 2 レジスタ RA Page

4 第 章概要. 記号の説明 TLCS-87/C 表 -2 アドレッシングモード (2 / 2) イミディエート リラティブ 2 アブソリュート ベクタ 直接ビット 2 レジスタ間接ビット 計 8. 記号の説明 以下の命令 / アドレッシングモードの説明では 次の記号を使用します 記号 説明 記号 説明 A A レジスタ r, g 8 ビットレジスタ ( 表 -3 参照 ) W W レジスタ rr, gg 6 ビットレジスタ ( 表 -4 参照 ) B B レジスタ 4 ビットまたは 8 ビットイミディエートデータ C C レジスタ m 6 ビットイミディエートデータ D D レジスタ d 符号付き 5 ビットまたは 8 ビットディスプレースメント ( 6~+5/ 28~+27) E E レジスタ x, y 8 ビットダイレクトアドレス (x ~ xff) H H レジスタ vw, uz 6 ビットダイレクトアドレス (x ~ xffff) L L レジスタ (XX) XX で指定されるアドレスのメモリの内容 WA レジスタペア WA (XX +, XX) XX で指定されるアドレスから連続する 2 バイトのメモリの内容 BC レジスタペア BC b ビット番号 (~7) DE レジスタペア DE.b b で指定されるビットの内容 HL レジスタペア HL 転送 IX IX レジスタ 交換 IY IY レジスタ + 加算 PC プログラムカウンタ 減算 SP スタックポインタ 乗算 PSW プログラムステータスワード 除算 JF ジャンプステータスフラグ & ビットごとの論理積 ZF ゼロフラグ ビットごとの論理和 CF キャリーフラグ ( ビットアキュムレータ ) ^ ビットごとの排他的論理和 HF ハーフキャリーフラグ ull ノーオペレーション ( 何も実行せず 次のアドレスの命令に移ります ) SF サインフラグ $ 命令の先頭アドレス ( 命令実行中のプログラムカウンタの内容は $ + 2 または $ + 3 になります ) VF オーバフローフラグ (src) ソースメモリ CF キャリーフラグの内容の反転 (dst) デスティネーションメモリ IMF 割り込みマスタ許可フラグ RBS レジスタバンクセレクタ NxtOp ネクストオペレーションアドレス ( 次の命令の先頭アドレスの値 ) RA Page 2

5 TLCS-87/C 表 -3 r, g 8 ビットレジスタ A W C B E D L H 表 -4 rr, gg ビットレジスタ WA BC DE HL IX IY SP HL * オペレーションで指定された値がセットされます フラグのセット条件 Z ゼロ検出情報がセットされます 転送 8 ビットのソースデータが x のとき がセットされます x 以外のときは がセットされます 交換交換前の g または (src) の内容が x のとき がセットされます x 以外のときは がセットされます 演算演算結果が x (8 ビット演算 ), x (6 ビット演算 ) のとき がセットされます それ以外のときは がセットされます ただし 乗算のときは積の上位 8 ビットが 除算のときは余りが それぞれ x のとき にセットされます x 以外のときは がセットされます シフト / ローテートシフト / ローテート後のレジスタの内容が x のとき がセットされます x 以外のときは がセットされます その他 JF の欄に Z とある場合は ZF にセットされる値が JF にもセットされることを示します C キャリー情報がセットされます 加算 最上位ビットからキャリー ( 桁上げ ) がセットされます 減算 最上位ビットへのボロー ( 桁借り ) がセットされます 除算 除数が x のときまたは商が x 以上のとき がセットされます それ以外のときは が セットされます その他 JF の欄に C とある場合は CF にセットされる値が JF にもセットされることを示します C H CF にセットされる値の反転値がセットされます ハーフキャリー情報がセットされます 加算ビット 3 からのキャリー ( 桁上げ ) がセットされます 減算ビット 3 へのボロー ( 桁借り ) がセットされます S V J サイン情報 ( データの最上位ビット ) がセットされます オーバフロー情報がセットされます JF にセットされる値の反転値がセットされます がセットされます がセットされます U 不定値がセットされます フラグは変化せず 命令実行前の値が保持されます RA Page 3

6 第 章概要.2 ニモニック TLCS-87/C.2 ニモニック TLCS-87/C シリーズの命令のニモニックの規則は 以下のとおりです ニモニックは オペコードとオペランドから構成されています ( オペランドのない命令もあります ) オペコードの次に つ以上のスペースを空けてオペランドを置きます 2 つ以上のオペランドがある場合は オペランドをカンマで区切って並べます ソースオペランドとデスティネーションオペランドの 2 つがある場合は 必ずデスティネーションオペランドを先に置きます ソースオペランドが複数ある場合は 先に被演算数を置きます オペランドにビット指定が含まれる場合は アドレス指定とビット指定はピリオドで区切ります RET opcode memoic ROLC A opcode operad ADD A, B opcode destiatio operad, source operad CMP AND SET LD A, B (HL), (HL). b CF, (HL). b opcode opcode opcode opcode st source operad, 2d source operad st source 2d source operad, operad operad address. bit 2d operad st operad, address. bit 表 -5 ニモニック一覧 ( / 2) ニモニック 機能 ADD ADDC AND CALL CALLV CLR CMP CPL DAA DAS DEC DI* DIV EI* INC J* JP JR JRS LD LDW MUL NEG NOP OR Add Add with carry Logical AND Call Vector call Clear bit/byte Compare s complemet bit Decimal adjust for 8-bit additio Decimal adjust for 8-bit subtractio Decremet byte/word (Register) Disable maskable iterrupt Divide byte quotiet Eable iterrupt Icremet byte/word (Register) Optimized jump Absolute jump Relative jump Short relative jump Load bit/byte/word (Register)/effective address Load word (Memory) Multiply Negate No operatio Logical OR RA Page 4

7 TLCS-87/C 表 -5 ニモニック一覧 (2 / 2) ニモニック 機能 POP PUSH RET RETI RETN ROLC ROLD RORC RORD SET SHLC SHLCA SHRC SHRCA SUB SUBB SWAP SWI TEST* XCH XOR Pop up Push dow Retur from subroutie Retur from maskable iterrupt service routie Retur from o-maskable iterrupt service routie Rotate left through carry Rotate left digit Rotate right through carry Rotate right digit Bit test ad set Logical shift left Arithmetic shift left Logical shift right Arithmetic shift right Subtract Subtract with borrow Swap ibble Software iterrupt Bit test Exchage Logical exclusive OR ) *: アセンブラ拡張機械命令.3 オブジェクトコードフォーマット TLCS-87/C シリーズは バイトオペコード命令と 2 バイトオペコード命令を持っています.3. バイトオペコード命令のコードフォーマット 第 バイトにオペコードを置き 第 2 バイト以降にオペランドを置きます オペランドが 2 バイトデータの場合 下位バイトを先に 上位バイトを後に置きます また オペランドがソースとデスティネーションの 2 つである場合 ソースが即値のとき ( 例 : LD (x), 命令 ) はデスティネーションより後に置きます LD A, B opcode LD A, opcode LD WA, m opcode m LD (x), opcode x LDW (x), m opcode x m バイトオペコード命令のコードフォーマット 第 バイトに第 オペコードを置き 次に第 オペコードで指定されたオペランドを置き その後に第 2 オペコードと第 2 オペコードで指定されたオペランドを置きます 第 オペコードは アドレッシングモード指定用のコードでプリフィックスコードとも呼びます プリフィックスには レジスタを指定するレジスタプリフィックスと ソースまたはデスティネーションメモリを指定するソース / デスティネーションメモリプリフィックスがあります なお 次の 5 命令の第 オペコードは 指定レジスタの内容を無視します RA Page 5

8 第 章概要.4 アドレッシングモード TLCS-87/C RETN 2 LD PSW, 3 PUSH PSW 4 POP PSW 5 JR M/P/SLT/SGE/SLE/SGT/VS/VC, a LD B, C st opcode 2d opcode ADD B, st opcode 2d opcode LD B, (HL) st opcode 2d opcode LD B, (x) st opcode x 2d opcode LD B, (HL + d) st opcode d 2d opcode LD (HL + d), st opcode d 2d opcode.4 アドレッシングモード TLCS-87/C シリーズには 7 種類のアドレッシングモード ( アドレス指定の方法 ) があります なお 命令によっては 複数のアドレッシングモードが組み合わさることもあります.4. レジスタ間接.4.. レジスタ間接 (HL), (DE), (IX), (IY) 6 ビットレジスタ HL, DE, IX, IY の内容で指定されるアドレス : LD A, (HL) HL 23 x23 5F 5F A HL レジスタの内容で指定されるアドレスすなわち x23 番地のメモリの内容 x5f が A レジスタにロードされます 2: LD A, (IX) IX 23 x A IX レジスタの内容で指定されるアドレスすなわち x23 番地のメモリの内容 x75 が A レジスタにロードされます RA Page 6

9 TLCS-87/C 3: LD A, (IY) IY 23 x23 9B 9B A IY レジスタの内容で指定されるアドレスすなわち x23 番地のメモリの内容 x9b が A レジスタにロードされます ビットディスプレースメントオフセット付きレジスタ間接 (HL + d), (IX + d), (IY + d) 6 ビットレジスタ HL, IX, IY の内容にオブジェクトコード中の 8 ビットディスプレイスメント d を符号拡張 ( 下表参照 ) して加算した値で指定されるアドレス なお 6 ビットレジスタ HL, IX, IY の内容は変化しません ディスプレースメント d 符号拡張した値 x ~ x7f x ~ x7f (~+27) x8 ~ xff xff8 ~ xffff ( 28~ ) d 2 : LD A, (HL + x2) D7 2 HL x35 C4 C4 A HL レジスタの内容 (x23) にディスプレースメント (x2) を符号拡張して (x2) 加算した値で指定されるアドレスすなわち x35 番地のメモリの内容 xc4 が A レジスタにロードされます 2: LD A, (IX + xd6) IX + 23 FF D6 F9 D4 D6 xf A RA Page 7

10 第 章概要.4 アドレッシングモード TLCS-87/C IX レジスタの内容 (x23) にディスプレースメント (xd6) を符号拡張して (xffd6) 加算した値で指定されるアドレスすなわち xf9 番地のメモリの内容 x27 が A レジスタにロードされます.4..3 レジスタインデックス (HL + C) HL レジスタの内容に C レジスタの内容を符号拡張 ( 下表参照 ) して 加算した値で指定されるアドレス なお HL レジスタ, C レジスタの内容は変化しません C レジスタ 符号拡張した値 x ~ x7f x ~ x7f (~+27) x8 ~ xff xff8 ~ xffff ( 28~ ) : LD A, (HL + C) HL 23 C F5 + FF F5 8 x A HL レジスタの内容 (x23) に C レジスタの内容 (xf5) を符号拡張して (xfff5) 加算した値で指定されるアドレスすなわち x8 番地のメモリの内容 x36 が A レジスタにロードされます.4..4 スタックポインタ間接オートプリインクリメント (+SP) まず SP の内容をインクリメントします 実効アドレスはインクリメントされた SP の内容となります SP のインクリメントによるフラグ変化はありません このアドレッシングモードは ソース ( 転送元 ) メモリのアドレス指定にのみ使用できます : LD A, (+SP) SP ( ) SP ( ) 4 3 F x432 B7 B7 A SP の内容をインクリメントし その値で指定されるアドレスすなわち x432 番地のメモリの内容 xb7 が A レジスタにロードされます.4..5 スタックポインタ間接オートポストデクリメント (SP ) 実効アドレスは SP の内容となります データ処理後 SP の内容は自動的にデクリメントされます SP のデクリメントによるフラグ変化はありません このアドレッシングモードは デスティネーション ( 転送元 ) メモリのアドレス指定にのみ使用できます RA Page 8

11 TLCS-87/C : LD (SP ), A SP ( ) 3 x3 C C A SP ( ) 2 F F F SP の内容で指定されるアドレスすなわち x3 番地のメモリに A レジスタの内容 xc がストアされます その後 SP はデクリメントされ x2fff となります ビットディスプレースメントオフセット付きスタックポインタ間接 (SP + d) スタックポインタ SP の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張 ( 下表参照 ) して 加算した値が実効アドレスとなります なお SP の内容は変化しません ディスプレースメント d 符号拡張した値 x ~ x7f x ~ x7f (~+27) x8 ~ xff xff8 ~ xffff ( 28~ ) d 2 : LD WA, (SP + xd6) D6 D6 SP FF D A x2a x2b 27 4E 4E 27 WA SP の内容 (x234) にディスプレースメント (xd6) を符号拡張して (xffd6) 加算した値で指定されるアドレスすなわち x2a 番地から連続する 2 バイトのメモリの内容 x4e27 が WA レジスタにロードされます.4..7 レジスタオフセットリラティブインデックス (PC + A) プログラムカウンタの内容 ( 実行命令の先頭アドレス +2) に A レジスタの内容を符号拡張 ( 下表参照 ) して加算した値で指定されるアドレス このアドレッシングモードは ソース ( 転送元 ) アドレスの指定にのみ使用できます このアドレッシングモードを使用することにより BCD コード 7 セグメントコードなどのコード変換, テーブルルックアップ, テーブルサーチや 通りの多方向分岐処理などを容易にプログラムすることができます RA Page 9

12 第 章概要.4 アドレッシングモード TLCS-87/C アキュムレータ 符号拡張した値 x ~ x7f x ~ x7f (~+27) x8 ~ xff xff8 ~ xffff ( 28~ ) : LD A, (PC + A) PC C xc536 xc537 3F 4 LD A, (PC + A) A ( ) C5 3F xc53f D8 A ( ) D8 プログラムカウンタの内容 (xc538) に A レジスタの内容 (x7) を符号拡張して (x7) 加算した値で指定されるアドレスすなわち xc53f 番地のメモリの内容 xd8 が A レジスタにロードされます 2: JP (PC + A) PC +2 C 74 xc72 3F FE JP (PC + A) A C 8A xc8a xc8b 4B D D 4B PC プログラムカウンタの内容 (xc74) に A レジスタの内容 (x6) を符号拡張して (x6) 加算した値で指定されるアドレスすなわち xc8a 番地から連続する 2 バイトのメモリ内容 xd4b がプログラムカウンタにロードされます すなわち xd4b 番地にジャンプします ) 87/C と 87/C での (PC+A) の扱いの違い 87/C では (PC+A) を使用してアクセスする領域はコード領域ではなく データ領域となります そのため (PC+A) によるアドレッシングには互換性がありません 87/C から 87/C へのプログラム移植時に意が必要です.4.2 ダイレクト ビットダイレクト (x) オブジェクトコード中の 8 ビット値 x で直接指定される x ~ xff 番地のアドレス RA Page

13 TLCS-87/C : LD A, (x87) x A x C 87 LD A, (x87) オブジェクトコードの x (x87) で直接指定されるアドレスすなわち x87 番地の内容 x9 が A レジスタにロードされます ビットダイレクト (vw) オブジェクトコード中の 6 ビット値 vw で直接指定される x ~ xffff 番地のアドレス : LD A, (x5678) x A E/F w v E LD オブジェクトコードの vw (x5678) で直接指定されるアドレスすなわち x5678 番地の内容 x24 が A レジスタにロードされます.4.3 レジスタ r または rr オブジェクトコード ( オペコード ) 中のレジスタ指定フィールドにより指定されるレジスタが操作対象となります : LD A, B 2: INC DE B DE.4.4 イミディエート または m オブジェクトコード中の即値 ( イミディエートデータ ) が操作対象となります なお 6 ビット即値の場合 若いアドレスの方から下位 8 ビット 上位 8 ビットの順にメモリに格納します RA Page

14 第 章概要.4 アドレッシングモード TLCS-87/C : LD A, x53 xc xc A 2: LD WA, x234 xc xc xc W A m ) アセンブラソースプログラム記述上 即値をカッコで囲むことはできません カッコで囲んだ場合はダイレクトアドレッシングモードと見なされます.4.5 リラティブ ( 相対 ) ビットディスプレースメントリラティブ プログラムカウンタの内容 ( 実行命令の先頭アドレス +2 または +3) に オブジェクトコード中の 8 ビットディスプレースメント値 d を符号拡張 ( 下表参照 ) して 加算した値で指定されるアドレス このアドレッシングモードを持つ命令は JR 命令のみです ディスプレースメント d 符号拡張した値 x ~ x7f x ~ x7f (~+27) x8 ~ xff xff8 ~ xffff ( 28~ ) d : JR $ H JR xd xd54 FC 35 JR PC + D D5 78 xd578 RA Page 2

15 TLCS-87/C プログラムカウンタの内容 (xd543) にディスプレースメント値 x35 を符号拡張して加算した値で指定されるアドレスすなわち xd578 番地にジャンプします ) $: 実行命令の先頭アドレス 2: JR M, $ H JR M, xd xd54 E8 D 35 JR M, a PC + D D5 79 xd579 サインフラグが なら プログラムカウンタの内容 (xd544) にディスプレースメント値 x35 を符号拡張して加算した値で指定されるアドレスすなわち xd579 番地にジャンプします ) $: 実行命令の先頭アドレス ビットディスプレースメントリラティブ プログラムカウンタの内容 ( 実行命令の先頭アドレス +2) に オペコード中の 5 ビットディスプレースメント値 d を符号拡張 ( 下表参照 ) して 加算した値で指定されるアドレス このアドレッシングモードを持つ命令は JRS 命令のみです ディスプレースメント d 符号拡張した値 x ~xf x ~ xf (~+5) x ~ xf xfff ~ xffff ( 6~ ) d : JRS T, $ H JRS T, xe859 xe xe JRS PC + E8 65 FF F4 E8 59 RA Page 3

16 第 章概要.4 アドレッシングモード TLCS-87/C ジャンプステータスフラグが なら プログラムカウンタの内容 (xe865) にディスプレースメント値 x4 を符号拡張して (xfff4) 加算した値で指定されるアドレスすなわち xe859 番地にジャンプします ) $: 実行命令の先頭アドレス.4.6 アブソリュート ( 絶対 ) オブジェクトコード中の 6 ビット値 ( 下位 8 ビット 上位 8 ビットの順に格納される ) で指定されるアドレス : JP xfa3 xc75 FE A3 F JP m PC F A3 xfa3 オペランドで指定されるアドレスすなわち xfa3 番地にジャンプします.4.7 ベクタ オペコード中の 4 ビットデータ を 2 倍し ベクタコール領域の先頭アドレス値を加えた値をアドレスとするメモリから読み出した 6 ビットデータ ( ベクタアドレス ) で指定されるアドレス このアドレッシングモードを持つ命令は CALLV 命令のみです : CALLV x xd2 79 CALLV = xe73 + FF FF A B2 xffb2 xffb3 73 E E 73 PC オペコード中の (x9) を 2 倍してベクタコール領域の先頭アドレス値 (xffa) を加算した値 xffb2 番地から連続する 2 バイトの内容 xe73 番地をコールします.4.8 直接ビット.4.8. レジスタビット オペコード中のレジスタ指定フィールド ビット指定フィールドで指定されるレジスタのビットが操作対象となります RA Page 4

17 TLCS-87/C : SET A.3 A 3 "" A = = メモリビット メモリビットアドレッシングモード (HL), (DE), (IX), (IY), (HL + d), (IX + d), (IY + d), (HL + C), (+SP), (SP + d), (PC + A), (x), (vw) で指定されるアドレスの オペコード中のビット指定フィールドで指定されるビットが操作対象となります 例 : SET (HL). 例 2: SET (HL + x57). 6 例 3: SET (x58) レジスタ間接ビット メモリアドレッシングモード (HL), (DE), (IX), (IY), (HL + d), (IX + d), (IY + d), (HL + C), (+SP), (SP + d), (PC + A), (x), (vw) で指定されるアドレスの A レジスタの下位 3 ビットの内容で指定されるビットが操作対象となります : SET (HL). A C A HL 23 x23 HL レジスタの内容 (x23) で指定されるアドレスの内容 (y) の A レジスタの下位 3 ビットの内容 (y) で指定されるビット 4 が "" にセットされ y となります 2 (HL) SET (mem). A = 4 RA Page 5

18 第 章概要.4 アドレッシングモード TLCS-87/C RA Page 6

19 TLCS-87/C 第 2 章 命令の説明 2. 転送 交換 ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション r r r Z A r LD A,r 8 ビットレジスタ r の内容を A レジスタにロードします ゼロフラグは r = x のとき にセットされ r x のとき にクリア されます r r r Z r A LD r,a A レジスタの内容を 8 ビットレジスタ r にロードします ゼロフラグは A = x のとき にセットされ A x のとき にクリ アされます g g g r r r Z 2 r g LD r,g 8 ビットレジスタ g の内容を 8 ビットレジスタ r にロードします ゼロフラグは g = x のとき にセットされ g x のとき にクリアされます g g g r r r 2 rr gg LD rr,gg 6 ビットレジスタ gg (WA, BC, DE または HL) の内容を 6 ビットレジスタ rr にロードします 例 : DE = x234 のとき LD HL, DE 命令を実行すると HL = x234 となります x x x x x x x x Z 3 A (x) LD A,(x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容を A レジスタにロードします A レジスタ に転送されるデータが x のとき ゼロフラグが にセットされます Z 2 A (HL) LD A,(HL) レジスタペア HL で指定されるアドレス (x ~ xffff 番地 ) のメモリ内容を A レジスタにロードします A レジスタに転送される データが x のとき ゼロフラグが にセットされます x x x x x x x x r r r Z 4 r (x) LD r,(x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容を 8 ビットレジスタ r にロードします レ ジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます w w w w w w w w v v v v v v v v Z 5 r (vw) LD r,(vw) r r r オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容を 8 ビットレジスタ r にロードします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 3 r (DE) LD r,(de) レジスタペア DE で指定されるアドレス (x ~ xffff 番地 ) のメモリ内容を 8 ビットレジスタ r にロードします レジスタ r に転 送されるデータが x のとき ゼロフラグが にセットされます r r r Z 3 r (HL) LD r,(hl) レジスタペア HL で指定されるアドレス (x ~ xffff 番地 ) のメモリ内容を 8 ビットレジスタ r にロードします レジスタ r に転 送されるデータが x のとき ゼロフラグが にセットされます r r r Z 3 r (IX) LD r,(ix) インデックスレジスタ IX で指定されるアドレス (x ~ xffff 番地 ) のメモリ内容を 8 ビットレジスタ r にロードします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 3 r (IY) LD r,(iy) インデックスレジスタ IY で指定されるアドレス (x ~ xffff 番地 ) のメモリ内容を 8 ビットレジスタ r にロードします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます d d d d d d d d r r r Z 5 r (IX+d) LD r,(ix+d) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容を 8 ビットレジスタ r にロードします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます d d d d d d d d r r r Z 5 r (IY+d) LD r,(iy+d) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容を 8 ビットレジスタ r にロードします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます d d d d d d d d r r r Z 5 r (SP+d) LD r,(sp+d) スタックポインタ SP の内容にオブジェクト中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容を 8 ビットレジスタ r にロードします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます d d d d d d d d r r r Z 5 r (HL + d) LD r,(hl+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容を 8 ビットレジスタ r にロードします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 5 r (HL+C) LD r,(hl+c) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容を 8 ビットレジスタ r にロー ドします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 4 SP SP+:r (SP) LD r,(+sp) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容を 8 ビットレジスタ r にロードします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます この命令は 8 ビットデータのスタックからのポップ LD r,(pc+a) LD rr,(x) LD rr,(vw) 処理に使います r r r Z 5 r (PC+A) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容を 8 ビットレジスタ r にロードします レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます この命令は コード変換処理に最適です x x x x x x x x r r r 5 rr (x+, x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします 例 : x72, x73 番地がそれぞれ x8e, x59 のとき LD WA, (x72) 命令を実行すると W = x59, A = x8e となります w w w w w w w w v v v v v v v v 6 rr (vw+, vw) r r r オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします vw として xfff 番地を指定した場合 レジスタの上位バイトには x 番地のメモリ内容がロードされます RA Page 7

20 第 2 章命令の説明 2. 転送 交換 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション LD rr,(de) r r r 4 rr (DE+, DE) レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします LD rr,(hl) r r r 4 rr (HL+, HL) レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします LD rr,(ix) r r r 4 rr (IX+, IX) インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします LD rr,(iy) r r r 4 rr (IY+, IY) インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします d d d d d d d d r r r 6 rr (IX+d+, IX+d) LD rr,(ix+d) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続 する 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします d d d d d d d d r r r 6 rr (IY+d+, IY+d) LD rr,(iy+d) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続 する 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします d d d d d d d d r r r 6 rr (SP+d+, SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続す LD rr,(sp+d) る 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします 例 :SP = x5e4 で x526, x527 番地のメモリ内容がそれぞれ x9f, xc3 のとき LD WA, (SP + x32) 命令を実行すると A = x9f, W = xc3 となります d d d d d d d d r r r 6 rr (HL+d+, HL+d) LD rr,(hl+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バ イトのメモリ内容を 6 ビットレジスタ rr にロードします r r r 6 rr (HL+C+, HL+C) LD rr,(hl+c) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr にロードします r r r 5 SP SP+:rr (SP+, SP) LD rr,(+sp) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジス タ rr にロードします r r r 6 rr (PC+A+, PC+A) LD rr,(pc+a) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内 容を 6 ビットレジスタ rr にロードします LD (x),a x x x x x x x x 3 (x) A オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリに A レジスタの内容をストアします LD (HL),A 2 (HL) A レジスタペア HL で指定されるアドレス (x ~ xffff 番地 ) のメモリに A レジスタの内容をストアします LD (x),r x x x x x x x x r r r 4 (x) r オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリに 8 ビットレジスタ r の内容をストアします w w w w w w w w v v v v v v v v 5 (vw) r LD (vw),r r r r オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリに 8 ビットレジスタ r の内容をストアします LD (DE),r r r r 3 (DE) r レジスタペア DE で指定されるアドレス (x ~ xffff 番地 ) のメモリに 8 ビットレジスタ r の内容をストアします LD (HL),r r r r 3 (HL) r レジスタペア HL で指定されるアドレス (x ~ xffff 番地 ) のメモリに 8 ビットレジスタ r の内容をストアします LD (IX),r r r r 3 (IX) r インデックスレジスタ IX で指定されるアドレス (x ~ xffff 番地 ) のメモリに 8 ビットレジスタ r の内容をストアします LD (IY),r r r r 3 (IY) r インデックスレジスタ IY で指定されるアドレス (x ~ xffff 番地 ) のメモリに 8 ビットレジスタ r の内容をストアします d d d d d d d d r r r 4 (IX+d) r LD (IX+d),r インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ に 8 ビットレジスタ r の内容をストアします d d d d d d d d r r r 4 (IY+d) r LD (IY+d),r インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ に 8 ビットレジスタ r の内容をストアします d d d d d d d d r r r 4 (SP+d) r LD (SP+d),r スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリに 8 ビットレジスタ r の内容をストアします d d d d d d d d r r r 4 (HL+d) r LD (HL+d),r レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリに 8 ビッ トレジスタ r の内容をストアします r r r 5 (HL+C) r LD (HL+C),r レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリに 8 ビットレジスタ r の内容をス トアします r r r 4 (SP) r:sp SP LD (SP ),r スタックポインタ SP で指定されるアドレスのメモリに 8 ビットレジスタ r の内容をストアします その後 スタックポインタ SP の内 容をデクリメントします この命令は 8 ビットレジスタのスタックへのプッシュ処理に使います x x x x x x x x r r r 5 (x+, x) rr LD (x),rr オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にストアします w w w w w w w w v v v v v v v v 6 (vw+, vw) rr LD (vw),rr r r r オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にストアします r r r 4 (DE+, DE) rr LD (DE),rr レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にストアしま す RA Page 8

21 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション r r r 4 (HL+, HL) rr LD (HL),rr レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にストアしま す r r r 4 (IX+, IX) rr LD (IX),rr インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にスト アします r r r 4 (IY+, IY) rr LD (IY),rr インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にスト アします d d d d d d d d r r r 5 (IX+d+, IX+d) rr LD (IX+d),rr インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続 する 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にストアします d d d d d d d d r r r 5 (IY+d+, IY+d) rr LD (IY+d),rr インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続 する 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にストアします d d d d d d d d r r r 5 (SP+d+, SP+d) rr LD (SP+d),rr スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続す る 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にストアします d d d d d d d d r r r 5 (HL+d+, HL+d) rr LD (HL+d),rr レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バ イトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にストアします r r r 6 (HL+C+, HL+C) rr LD (HL+C),rr レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリに 6 ビットレジスタ rr の内容を下位 上位の順にストアします r r r 5 (SP+, SP) rr:sp SP LD (SP ),rr スタックポインタ SP で指定されるアドレスから連続する 2 バイトのメモリに 6 ビットレジスタ rr の内容をストアします その後 ス タックポインタ SP の内容をデクリメントします r r r 2 r LD r, オブジェクトコード中の即値 を 8 ビットレジスタ r にロードします 例 : LD A, x53 命令を実行すると A = x53 となります r r r mmmm mmmm 3 rr m LD rr,m オブジェクトコード中の即値 m を 6 ビットレジスタ rr にロードします 例 : LD WA, x234 命令を実行すると A = x34, W = x2 となります x x x x x x x x 4 (x) LD (x), オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリにオブジェクトコード中の即値 をストアしま す w w w w w w w w v v v v v v v v 6 (vw) LD (vw), オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリにオブジェクトコード中の即値 をストアし ます LD (DE), 4 (DE) オブジェクトコード中の即値 をレジスタペア DE で指定されるアドレスのメモリにストアします LD (HL), 3 (HL) オブジェクトコード中の即値 をレジスタペア HL で指定されるアドレスのメモリにストアします LD (IX), 4 (IX) インデックスレジスタ IX で指定されるアドレスのメモリにオブジェクトコード中の即値 をストアします LD (IY), 4 (IY) インデックスレジスタ IY で指定されるアドレスのメモリにオブジェクトコード中の即値 をストアします LD (IX+d), LD (IY+d), LD (SP+d), LD (HL+d), LD (HL+C), LD (SP ), LDW (x),m LDW (HL),m d d d d d d d d 5 (IX+d) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ にオブジェクトコード中の即値 をストアします d d d d d d d d 5 (IY+d) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ にオブジェクトコード中の即値 をストアします d d d d d d d d 5 (SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリに オブジェクトコード中の即値 をストアします d d d d d d d d 5 (HL+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリに オブ ジェクトコード中の即値 をストアします 6 (HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリに オブジェクトコード中の即値 をストアします 5 (SP) :SP SP オブジェクトコード中の即値 をスタックポインタ SP で指定されるアドレスのメモリにストアします その後 スタックポインタ SP の内容をデクリメントします x x x x x x x x 6 (x+, x) m m m m m m m m m オブジェクトコード中の 6 ビットの即値 m を オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連 続する 2 バイトのメモリに下位 上位 m の順にストアします 例 : LDW (x73),x234 を実行すると x73 番地には x34 が x74 番地には x2 が書き込まれます mmmm mmmm 5 (HL+, HL) m オブジェクトコード中の 6 ビットの即値 m を レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリに下位 上位 の順にストアします RA Page 9

22 第 2 章命令の説明 2. 転送 交換 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション r r 3 (SP, SP ) rr:sp SP 2 スタックポインタ SP で指定されるアドレスのメモリにレジスタ rr の上位 8 ビットの内容を 前記アドレスから を引いた値で指定さ PUSH rr # れるアドレスのメモリにレジスタ rr の下位 8 ビットの内容を それぞれストアします その後 スタックポインタ SP の内容から 2 を減じます rr としては WA, BC, DE, HL のみ指定可能です 例 : SP = x3f WA = x234 のとき PUSH WA 命令を実行すると x3f, x3e 番地の内容は x2, x34 となります また SP = x3d になります g g g 4 (SP, SP ) gg:sp SP 2 スタックポインタ SP で指定されるアドレスのメモリにレジスタ gg の上位 8 ビットの内容を 前記アドレスから を引いた値で指定さ PUSH gg #2 れるアドレスのメモリにレジスタ gg の下位 8 ビットの内容を それぞれストアします その後 スタックポインタ SP の内容から 2 を減じます 例 : SP = x3f, IX = x234 のとき PUSH IX 命令を実行すると x3f, x3e 番地の内容は x2, x34 となります また SP = x3d になります r r 4 SP SP+2:rr (SP, SP ) POP rr # スタックポインタ SP の内容に 2 を加え その値で指定されるアドレスのメモリ内容をレジスタ rr の上位 8 ビットに 前記アドレスから を引いたアドレスのメモリ内容をレジスタ rr の下位 8 ビットをそれぞれロードします rr としては WA, BC, DE, HL のみ指定可能です g g g 5 SP SP+2:gg (SP, SP ) POP gg #2 スタックポインタ SP の内容に 2 を加え その値で指定されるアドレスのメモリ内容をレジスタ gg の上位 8 ビットに 前記アドレスから を引いたアドレスのメモリ内容をレジスタ gg の下位 8 ビットをそれぞれロードします 3 (SP) PSW:SP SP スタックポインタ SP で指定されるアドレスのメモリにプログラムステータスワード PSW の内容をストアし その後 スタックポイン PUSH PSW タ SP の内容をデクリメントします 例 : SP = x2345, PSW = x62 (JF = HF = SF = VF =, ZF = CF = RBS = ) のとき PUSH PSW 命令を実行すると x2345 番地の内容は x62 となります また SP = x2344 になります * * * * * * 4 SP SP+:PSW (SP) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容をプログラムステータスワード PSW に POP PSW ロードします 例 : x37 番地のメモリ内容が x63 で SP = x36 のとき POP PSW 命令を実行すると SP = x37, PSW = x62 (JF = HF = SF = VF =, ZF = CF = RBS = ) となります * * * * * * 3 PSW.7- プログラムステータスワード PSW に オブジェクトコード中の即値 をストアします 即値 は最上位ビットから JF, ZF, CF, HF, SF, LD PSW, VF,RBS に対応し 最下位の ビットは無視されます 例 : LD FLAG, y 命令を実行すると JF =, ZF =, CF =, HF =, SF =, VF =, RBS = となります 2 RBS LD RBS, プログラムステータスワード PSW の RBS に対して 即値 をストアすることでレジスタバンクが BANK に切り替わります なお この命令で フラグは変化しません 2 RBS LD RBS, プログラムステータスワード PSW の RBS に対して 即値 をストアすることでレジスタバンクが BANK に切り替わります なお この命令で フラグは変化しません d d d d d d d d 2 SP SP+d スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を加算した値がスタックポインタ SP にロードされます 従っ LD SP,SP+d て この命令はスタックポインタ SP の即値加算命令になります 例 : SP = x2345 のとき LD SP, SP + 4 を実行すると SP = x2349, JF = となります d d d d d d d d 2 SP SP d LD SP,SP d スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を減算した値がスタックポインタ SP にロードされます 従って この命令はスタックポインタ SP の即値減算命令になります g g g r r r Z 3 r g 8 ビットレジスタ r の内容と 8 ビットレジスタ g の内容とを交換します ゼロフラグは 交換前の g の内容が x のとき にセット XCH r,g され x 以外のとき にクリアされます 例 : A = x3c, B = x5f のとき XCH A, B 命令を実行すると A = x5f, B = x3c, ZF = となります g g g r r r 3 rr gg XCH rr,gg 6 ビットレジスタ rr の内容と 6 ビットレジスタ gg の内容とを交換します ゼロフラグは変化しません 例 : HL = x23, DE = x9587 のとき XCH HL, DE 命令を実行すると HL = x9587, DE = x23 となります x x x x x x x x r r r Z 5 r (x) XCH r,(x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます w w w w w w w w v v v v v v v v Z 6 r (vw) r r r XCH r,(vw) オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容と 8 ビットレジスタ r の内容を交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 4 r (DE) XCH r,(de) レジスタペア DE で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 4 r (HL) XCH r,(hl) レジスタペア HL で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 4 r (IX) XCH r,(ix) インデックスレジスタ IX で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容を交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 4 r (IY) XCH r,(iy) インデックスレジスタ IY で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容を交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます d d d d d d d d r r r Z 6 r (IX+d) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ XCH r,(ix+d) 内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます RA Page 2

23 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション d d d d d d d d r r r Z 6 r (IY+d) XCH r,(iy+d) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます d d d d d d d d r r r Z 6 r (SP+d) XCH r,(sp+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます d d d d d d d d r r r Z 6 r (HL+d) XCH r,(hl+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 6 r (HL+C) XCH r,(hl+c) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 5 SP SP+:r (SP) XCH r, (+SP) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます r r r Z 6 r (PC+A) XCH r,(pc+a) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを交換します レジスタ r に転送されるデータが x のとき ゼロフラグが にセットされます x x x x x x x x r r r 7 rr (x+, x) XCH rr,(x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します XCH rr,(vw) XCH rr,(de) XCH rr,(hl) XCH rr,(ix) XCH rr,(iy) XCH rr,(ix+d) XCH rr,(iy+d) XCH rr,(sp+d) XCH rr,(hl+d) XCH rr,(hl+c) XCH rr,(+sp) XCH rr,(pc+a) r r r w w w w w w w w v v v v v v v v 8 rr (vw+, vw) オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します r r r 6 rr (DE+, DE) レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します r r r 6 rr (HL+, HL) レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します r r r 6 rr (IX+, IX) インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します r r r 6 rr (IY+, IY) インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します d d d d d d d d r r r 8 rr (IX+d+, IX+d) インデックスレジスタ IX の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します d d d d d d d d r r r 8 rr (IY+d+, IY+d) インデックスレジスタ IY の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します d d d d d d d d r r r 8 rr (SP+d+, SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します d d d d d d d d r r r 8 rr (HL+d+, HL+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します r r r 8 rr (HL+C+, HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します r r r 7 SP SP+:rr (SP+, SP) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します r r r 8 rr (PC+A+, PC+A) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容と 6 ビットレジスタ rr の内容とを交換します # rr は WA, BC, DE, HL のみ #2 gg は IX,IY のみ ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 2

24 第 2 章命令の説明 2. 転送 交換 TLCS-87/C RA Page 22

25 TLCS-87/C 2.2 演算 ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション Z Z C H S V 2 A CMP A, A レジスタの内容をオブジェクトコード中の即値 と比較します キャリーフラグは A < のとき にセットされ A のとき に クリアされます g g g Z Z C H S V 3 g CMP g, 8 ビットレジスタ g の内容をオブジェクトコード中の即値 と比較します キャリーフラグは g < のとき にセットされ g のとき にクリアされます g g g Z Z C U S V 4 gg m CMP gg,m m m m m m m m m 6 ビットレジスタ gg の内容をオブジェクトコード中の即値 m と比較します キャリーフラグは gg < m のときに にセットさ れ gg m のとき にクリアされます g g g r r r Z Z C H S V 2 r g CMP r,g 8 ビットレジスタ r の内容と 8 ビットレジスタ g の内容を比較します キャリーフラグは r < g のとき にセットされ r g のとき にクリアされます CMP rr,gg g g g r r r Z Z C U S V 3 rr gg 6 ビットレジスタ rr の内容と 6 ビットレジスタ gg の内容を比較します CMP r,(x) x x x x x x x x r r r Z Z C H S V 4 r (x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容と 8 ビットレジスタ r の内容を比較します CMP r,(vw) CMP r,(de) CMP r,(hl) CMP r,(ix) CMP r,(iy) CMP r,(ix+d) CMP r,(iy+d) CMP r,(sp+d) CMP r,(hl+d) CMP r,(hl+c) CMP r,(+sp) CMP r,(pc+a) CMP (x), CMP (vw), CMP (DE), CMP (HL), CMP (IX), CMP (IY), CMP (IX+d), r r r w w w w w w w w v v v v v v v v Z Z C H S V 5 r (vw) オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容と 8 ビットレジスタ r の内容を比較します r r r Z Z C H S V 3 r (DE) レジスタペア DE で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容を比較します r r r Z Z C H S V 3 r (HL) レジスタペア HL で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容を比較します r r r Z Z C H S V 3 r (IX) インデックスレジスタ IX で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容を比較します r r r Z Z C H S V 3 r (IY) インデックスレジスタ IY で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容を比較します d d d d d d d d r r r Z Z C H S V 5 r (IX+d) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを比較します d d d d d d d d r r r Z Z C H S V 5 r (IY+d) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを比較します d d d d d d d d r r r Z Z C H S V 5 r (SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを比較します d d d d d d d d r r r Z Z C H S V 5 r (HL+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを比較します r r r Z Z C H S V 5 r (HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容とを比較します r r r Z Z C H S V 4 SP SP+:r (SP) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容を比較します r r r Z Z C H S V 5 r (PC+A) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と 8 ビットレジスタ r の内容を比較します x x x x x x x x Z Z C H S V 4 (x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容をオブジェクトコード中の即値 と比較します w w w w w w w w v v v v v v v v Z Z C H S V 6 (vw) オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容をオブジェクトコード中の即値 と比較します Z Z C H S V 4 (DE) レジスタペア DE で指定されるアドレスのメモリ内容をオブジェクトコード中の即値 と比較します Z Z C H S V 4 (HL) レジスタペア HL で指定されるアドレスのメモリ内容をオブジェクトコード中の即値 と比較します Z Z C H S V 4 (IX) インデックスレジスタ IX で指定されるアドレスのメモリ内容をオブジェクトコード中の即値 と比較します Z Z C H S V 4 (IY) インデックスレジスタ IY で指定されるアドレスのメモリ内容をオブジェクトコード中の即値 と比較します d d d d d d d d Z Z C H S V 6 (IX+d) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容をオブジェクトコード中の即値 と比較します RA Page 23

26 2.2 演算 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション d d d d d d d d Z Z C H S V 6 (IY+d) CMP (IY+d), CMP (SP+d), CMP (HL+d), CMP (HL+C), CMP (+SP), CMP (PC+A), CMP rr,(x) CMP rr,(vw) CMP rr,(de) CMP rr,(hl) CMP rr,(ix) CMP rr,(iy) CMP rr,(ix+d) CMP rr,(iy+d) CMP rr,(sp+d) CMP rr,(hl+d) CMP rr,(hl+c) CMP rr,(+sp) CMP rr,(pc+a) ADD A, ADD g, ADD gg,m ADD r,g ADD rr,gg ADD r,(x) ADD r,(vw) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容をオブジェクトコード中の即値 と比較します d d d d d d d d Z Z C H S V 6 (SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容 を オブジェクトコード中の即値 と比較します d d d d d d d d Z Z C H S V 6 (HL+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で設定されるアドレスのメモリ内容をオ ブジェクトコード中の即値 と比較します Z Z C H S V 6 (HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容をオブジェクトコード中の即 値 と比較します Z Z C H S V 5 SP SP+:(SP) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容をオブジェクトコード中の即値 と比較し ます Z Z C H S V 6 (PC+A) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容をオブジェクトコー ド中の即値 と比較します x x x x x x x x r r r Z Z C U S V 5 rr (x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトのメモリ内容を 6 ビットレジス タ rr の内容と比較します w w w w w w w w v v v v v v v v Z Z C U S V 6 rr (vw) r r r オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイトのメモリ内容を 6 ビットレジス タ rr の内容と比較します r r r Z Z C U S V 4 rr (DE) レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr の内容と比較します r r r Z Z C U S V 4 rr (HL) レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr の内容と比較します r r r Z Z C U S V 4 rr (IX) インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr の内容と比較します r r r Z Z C U S V 4 rr (IY) インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr の内容と比較します d d d d d d d d r r r Z Z C U S V 6 rr (IX+d) インデックスレジスタ IX にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr の内容と比較します d d d d d d d d r r r Z Z C U S V 6 rr (IY+d) インデックスレジスタ IY にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr の内容と比較します d d d d d d d d r r r Z Z C U S V 6 rr (SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続す る 2 バイトのメモリ内容を 6 ビットレジスタ rr の内容と比較します d d d d d d d d r r r Z Z C U S V 6 rr (HL+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バ イトのメモリ内容を 6 ビットレジスタ rr の内容と比較します r r r Z Z C U S V 6 rr (HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジスタ rr の内容と比較します r r r Z Z C U S V 5 SP SP+:rr (SP) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスから連続する 2 バイトのメモリ内容を 6 ビットレジス タ rr の内容と比較します r r r Z Z C U S V 6 rr (PC+A) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内 容を 6 ビットレジスタ rr の内容と比較します C Z C H S V 2 A A+ A レジスタの内容に オブジェクトコード中の即値 を加算し 結果を A レジスタに入れます g g g C Z C H S V 3 g g+ 8 ビットレジスタ g の内容に オブジェクトコード中の即値 を加算し 結果をレジスタ g に入れます m m m m m g m g m g m C Z C U S V 4 gg gg+m 6 ビットレジスタ gg の内容に オブジェクトコード中の即値 m を加算し 結果をレジスタ gg に入れます g g g r r r C Z C H S V 2 r r+g 8 ビットレジスタ r の内容に 8 ビットレジスタ g の内容を加算し 結果をレジスタ r に入れます g g g r r r C Z C U S V 3 rr rr+gg 6 ビットレジスタ rr の内容に 6 ビットレジスタ gg の内容を加算し 結果をレジスタ rr に入れます x x x x x x x x r r r C Z C H S V 4 r r+(x) 8 ビットレジスタ r の内容に オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容を加算し 結果をレジスタ r に入れます w w w w w w w w v v v v v v v v C Z C H S V 5 r r+(vw) r r r 8 ビットレジスタ r の内容に オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容を加算し 結果をレジスタ r に入れます RA Page 24

27 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション ADD r,(de) r r r C Z C H S V 3 r r+(de) 8 ビットレジスタ r の内容に レジスタペア DE で指定されるアドレスのメモリ内容を加算し 結果をレジスタ r に入れます ADD r,(hl) r r r C Z C H S V 3 r r+(hl) 8 ビットレジスタ r の内容に レジスタペア HL で指定されるアドレスのメモリ内容を加算し 結果をレジスタ r に入れます ADD r,(ix) r r r C Z C H S V 3 r r+(ix) 8 ビットレジスタ r の内容に インデックスレジスタ IX で指定されるアドレスのメモリ内容を加算し 結果をレジスタ r に入れます ADD r,(iy) r r r C Z C H S V 3 r r+(iy) 8 ビットレジスタ r の内容に インデックスレジスタ IY で指定されるアドレスのメモリ内容を加算し 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r+(ix+d) ADD r,(ix+d) 8 ビットレジスタ r の内容に インデックスレジスタ IX にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定 されるアドレスのメモリ内容を加算し 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r+(iy+d) ADD r,(iy+d) 8 ビットレジスタ r の内容に インデックスレジスタ IY にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定 されるアドレスのメモリ内容を加算し 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r+(sp+d) ADD r,(sp+d) 8 ビットレジスタ r の内容に スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指 定されるアドレスのメモリ内容に 8 ビットレジスタ r の内容を加算し 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r+(hl+d) ADD r,(hl+d) 8 ビットレジスタ r の内容に レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定さ れるアドレスのメモリ内容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 5 r r+(hl+c) ADD r,(hl+c) 8 ビットレジスタ r の内容に レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内 容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 4 SP SP+:r r+(sp) ADD r,(+sp) 8 ビットレジスタ r の内容に スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 5 r r+(pc+a) ADD r,(pc+a) 8 ビットレジスタ r の内容に プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメ モリ内容を加算し 結果をレジスタ r に入れます x x x x x x x x C Z C H S V 6 (x) (x)+ ADD (x), オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容に オブジェクトコード中の即値 を加算 し 結果を前記のアドレスに入れます w w w w w w w w v v v v v v v v C Z C H S V 7 (vw) (vw)+ ADD (vw), オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容に オブジェクトコード中の即値 を加 算し 結果を前記のアドレスに入れます ADD (DE), C Z C H S V 5 (DE) (DE)+ レジスタペア DE で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 を加算し 結果を前記のアドレスに入れます ADD (HL), C Z C H S V 5 (HL) (HL)+ レジスタペア HL で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 を加算し 結果を前記のアドレスに入れます C Z C H S V 5 (IX) (IX)+ ADD (IX), インデックスレジスタ IX で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 を加算し 結果を前記のアドレスに入 れます C Z C H S V 5 (IY) (IY)+ ADD (IY), インデックスレジスタ IY で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 を加算し 結果を前記のアドレスに入 れます d d d d d d d d C Z C H S V 7 (IX+d) (IX+d)+ ADD (IX+d), インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容にオブジェクトコード中の即値 を加算し 結果を前記のアドレスに入れます ADD (IY+d), ADD (SP+d), ADD (HL+d), ADD (HL+C), ADD (+SP), ADD (PC+A), ADD rr,(x) d d d d d d d d C Z C H S V 7 (IY+d) (IY+d)+ インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容にオブジェクトコード中の即値 を加算し 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (SP+d) (SP+d)+ スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容 に オブジェクトコード中の即値 を加算し 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (HL+d) (HL+d)+ レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 を加算し 結果を前記のアドレスに入れます C Z C H S V 7 (HL+C) (HL+C)+ レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 を加算し 結果を前記のアドレスに入れます C Z C H S V 6 SP SP+:(SP) (SP)+ スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容にオブジェクトコード中の即値 を加算し 結果を前記のアドレスに入れます C Z C H S V 7 (PC+A) (PC+A)+ プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 を加算し 結果を前記のアドレスに入れます x x x x x x x x r r r C Z C U S V 5 rr rr+(x+, x) 6 ビットレジスタ rr の内容に オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます RA Page 25

28 2.2 演算 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション w w w w w w w w v v v v v v v v C Z C U S V 6 rr rr+(vw+, vw) ADD rr,(vw) ADD rr,(de) ADD rr,(hl) ADD rr,(ix) ADD rr,(iy) ADD rr,(ix+d) ADD rr,(iy+d) ADD rr,(sp+d) ADD rr,(hl+d) ADD rr,(hl+c) ADD rr,(+sp) ADD rr,(pc+a) ADDC A, ADDC g, ADDC gg,m ADDC r,g ADDC rr,gg ADDC r,(x) ADDC r, (vw) ADDC r,(de) ADDC r,(hl) ADDC r,(ix) ADDC r,(iy) ADDC r,(ix+d) ADDC r,(iy+d) ADDC r,(sp+d) r r r 6 ビットレジスタ rr の内容に オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイトのメモリ内容を加算し 結果を前記のアドレスに入れます r r r C Z C U S V 4 rr rr+(de+, DE) 6 ビットレジスタ rr の内容に レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr+(hl+, HL) 6 ビットレジスタ rr の内容に レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr+(ix+, IX) 6 ビットレジスタ rr の内容に インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr+(iy+, IY) 6 ビットレジスタ rr の内容に インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr+(ix+d+, IX+d) 6 ビットレジスタ rr の内容に インデックスレジスタ IX にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr+(iy+d+, IY+d) 6 ビットレジスタ rr の内容に インデックスレジスタ IY にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr+(sp+d+, SP+d) 6 ビットレジスタ rr の内容に スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr+(hl+d+, HL+d) 6 ビットレジスタ rr の内容に レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 6 rr rr+(hl+c+, HL+C) 6 ビットレジスタ rr の内容に レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 5 SP SP+:rr rr+(sp+, SP) 6 ビットレジスタ rr の内容に スタックポインタ SP の内容をインクリメントしその値で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 6 rr rr+(pc+a+, PC+A) 6 ビットレジスタ rr の内容に プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容を加算し 結果をレジスタ rr に入れます C Z C H S V 2 A A++CF A レジスタの内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を A レジスタに入れます g g g C Z C H S V 3 g g++cf 8 ビットレジスタ g の内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果をレジスタ g に入れます g g g C Z C U S V 4 gg gg+m+cf m m m m m m m m 6 ビットレジスタ gg の内容に オブジェクトコード中の即値 m およびキャリーフラグの内容を加算し 結果をレジスタ gg に入れます g g g r r r C Z C H S V 2 r r+g+cf 8 ビットレジスタ r の内容に 8 ビットレジスタ g の内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます g g g r r r C Z C U S V 3 rr rr+gg+cf 6 ビットレジスタ rr の内容に 6 ビットレジスタ gg の内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます x x x x x x x x r r r C Z C H S V 4 r r+(x)+cf 8 ビットレジスタ r の内容に オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます r r r w w w w w w w w v v v v v v v v C Z C H S V 5 r r+(vw)+cf 8 ビットレジスタ r の内容に オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 3 r r+(de)+cf 8 ビットレジスタ r の内容に レジスタペア DE で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 3 r r+(hl)+cf 8 ビットレジスタ r の内容に レジスタペア HL で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 3 r r+(ix)+cf 8 ビットレジスタ r の内容に インデックスレジスタ IX で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 3 r r+(iy)+cf 8 ビットレジスタ r の内容に インデックスレジスタ IY で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r+(ix+d)+cf 8 ビットレジスタ r の内容に インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r+(iy+d)+cf 8 ビットレジスタ r の内容に インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r+(sp+d)+cf 8 ビットレジスタ r の内容に スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます RA Page 26

29 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション d d d d d d d d r r r C Z C H S V 5 r r+(hl+d)+cf ADDC r,(hl+d) 8 ビットレジスタ r の内容に レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 5 r r+(hl+c)+cf ADDC r,(hl+c) 8 ビットレジスタ r の内容に レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 4 SP SP+:r r+(sp)+cf ADDC r,(+sp) 8 ビットレジスタ r の内容に スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます r r r C Z C H S V 5 r r+(pc+a)+cf ADDC r,(pc+a) 8 ビットレジスタ r の内容に プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ r に入れます x x x x x x x x C Z C H S V 6 (x) (x)++cf ADDC (x), ADDC (vw), ADDC (DE), ADDC (HL), ADDC (IX), ADDC (IY), ADDC (IX+d), ADDC (IY+d), オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容に オブジェクトコード中の即値 および キャリーフラグの内容を加算し 結果を前記のアドレスに入れます w w w w w w w w v v v v v v v v C Z C H S V 7 (vw) (vw)++cf オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容に オブジェクトコード中の即値 およ びキャリーフラグの内容を加算し 結果を前記のアドレスに入れます C Z C H S V 5 (DE) (DE)++CF レジスタペア DE で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を 前記のアドレスに入れます C Z C H S V 5 (HL) (HL)+ +CF レジスタペア HL で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を 前記のアドレスに入れます C Z C H S V 5 (IX) (IX)++CF インデックスレジスタ IX で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を前記のアドレスに入れます C Z C H S V 5 (IY) (IY)++CF インデックスレジスタ IY で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (IX+d) (IX+d)++CF インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (IY+d) (IY+d)++CF インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (SP+d) (SP+d)++CF ADDC (SP+d), スタックポインタ SP の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (HL+d) (HL+d)++CF ADDC (HL+d), レジスタペア HL の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を前記のアドレスに入れます C Z C H S V 7 (HL+C) (HL+C)++CF ADDC (HL+C), レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を前記のアドレスに入れます C Z C H S V 6 SP SP+:(SP) (SP)++CF ADDC (+SP), スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を前記のアドレスに入れます C Z C H S V 7 (PC+A) (PC+A)++CF ADDC (PC+A), プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容に オブジェクトコード中の即値 およびキャリーフラグの内容を加算し 結果を前記のアドレスに入れます x x x x x x x x r r r C Z C U S V 5 rr rr+(x+, x)+cf ADDC rr,(x) 6 ビットレジスタ rr の内容に オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます w w w w w w w w v v v v v v v v C Z C U S V 6 rr rr+(vw+, vw)+cf r r r ADDC rr,(vw) 6 ビットレジスタ rr の内容に オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr+(de+, DE)+CF ADDC rr,(de) 6 ビットレジスタ rr の内容に レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr+(hl+, HL)+CF ADDC rr,(hl) 6 ビットレジスタ rr の内容に レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr+(ix+, IX)+CF ADDC rr,(ix) 6 ビットレジスタ rr の内容に インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr+(iy+,iy)+cf ADDC rr,(iy) 6 ビットレジスタ rr の内容に インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます RA Page 27

30 2.2 演算 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション d d d d d d d d r r r C Z C U S V 6 rr rr+(ix+d+, IX+d)+CF ADDC rr,(ix+d) 6 ビットレジスタ rr の内容に インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した 値で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr+(iy+d+, IY+d)+CF ADDC rr,(iy+d) 6 ビットレジスタ rr の内容に インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した 値で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr+(sp+d+, SP+d)+CF ADDC rr,(sp+d) 6 ビットレジスタ rr の内容に スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で 指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr+(hl+d+, HL+d)+CF ADDC rr,(hl+d) 6 ビットレジスタ rr の内容に レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定 されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 6 rr rr+(hl+c+, HL+C)+CF ADDC rr,(hl+c) 6 ビットレジスタ rr の内容に レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続 する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 5 SP SP+:rr rr+(sp+, SP)+CF ADDC rr,(+sp) 6 ビットレジスタ rr の内容に スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスから連続する 2 バイト のメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます r r r C Z C U S V 6 rr rr+(pc+a+, PC+A)+CF ADDC rr,(pc+a) 6 ビットレジスタ rr の内容に プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスか ら連続する 2 バイトのメモリ内容およびキャリーフラグの内容を加算し 結果をレジスタ rr に入れます SUB A, C Z C H S V 2 A A A レジスタの内容から オブジェクトコード中の即値 を引き 結果を A レジスタに入れます SUB g, g g g C Z C H S V 3 g g 8 ビットレジスタ g の内容から オブジェクトコード中の即値 を引き 結果をレジスタ g に入れます g g g C Z C U S V 4 gg gg m SUB gg,m m m m m m m m m 6 ビットレジスタ gg の内容から オブジェクトコード中の即値 m を引き 結果をレジスタ gg に入れます SUB r,g g g g r r r C Z C H S V 2 r r g 8 ビットレジスタ r の内容から 8 ビットレジスタ g の内容を引き 結果をレジスタ r に入れます SUB rr,gg g g g r r r C Z C U S V 3 rr rr gg 6 ビットレジスタ rr の内容から 6 ビットレジスタ gg の内容を引き 結果をレジスタ rr に入れます x x x x x x x x r r r C Z C H S V 4 r r (x) SUB r,(x) 8 ビットレジスタ r の内容から オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容を引き 結果をレジスタ r に入れます w w w w w w w w v v v v v v v v C Z C H S V 5 r r (vw) SUB r,(vw) r r r 8 ビットレジスタ r の内容から オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容を引き 結果をレジスタ r に入れます SUB r,(de) r r r C Z C H S V 3 r r (DE) 8 ビットレジスタ r の内容から レジスタペア DE で指定されるアドレスのメモリ内容を引き 結果をレジスタ r に入れます SUB r,(hl) r r r C Z C H S V 3 r r (HL) 8 ビットレジスタ r の内容から レジスタペア HL で指定されるアドレスのメモリ内容を引き 結果をレジスタ r に入れます SUB r,(ix) r r r C Z C H S V 3 r r (IX) 8 ビットレジスタ r の内容から インデックスレジスタ IX で指定されるアドレスのメモリ内容を引き 結果をレジスタ r に入れます SUB r,(iy) r r r C Z C H S V 3 r r (IY) 8 ビットレジスタ r の内容から インデックスレジスタ IY で指定されるアドレスのメモリ内容を引き 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r (IX+d) SUB r,(ix+d) 8 ビットレジスタ r の内容から インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した 値で指定されるアドレスのメモリ内容を引き 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r (IY+d) SUB r,(iy+d) 8 ビットレジスタ r の内容から インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した 値で指定されるアドレスのメモリ内容を引き 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r (SP+d) SUB r,(sp+d) 8 ビットレジスタ r の内容から スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で 指定されるアドレスのメモリ内容を引き 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r (HL+d) SUB r,(hl+d) 8 ビットレジスタ r の内容から レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定 されるアドレスのメモリ内容を引き 結果をレジスタ r に入れます r r r C Z C H S V 5 r r (HL)+C SUB r,(hl+c) 8 ビットレジスタ r の内容から レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ 内容を引き 結果をレジスタ r に入れます r r r C Z C H S V 4 SP SP+:r r (SP) SUB r,(+sp) 8 ビットレジスタ r の内容から スタックポインタ SP の内容をインクリメントしその値で指定されるアドレスのメモリ内容を引き 結 果をレジスタ r に入れます r r r C Z C H S V 5 r r (PC+A) SUB r,(pc+a) 8 ビットレジスタ r の内容から プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの メモリ内容を引き 結果をレジスタ r に入れます x x x x x x x x C Z C H S V 6 (x) (x) SUB (x), SUB (vw), オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容から オブジェクトコード中の即値 を引き 結果を前記のアドレスに入れます w w w w w w w w v v v v v v v v C Z C H S V 7 (vw) (vw) オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容から オブジェクトコード中の即値 を引き 結果を前記のアドレスに入れます RA Page 28

31 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション SUB (DE), C Z C H S V 5 (DE) (DE) レジスタペア DE で指定されるアドレスのメモリ内容から オブジェクトコード中の即値 を引き 結果を前記のアドレスに入れます SUB (HL), C Z C H S V 5 (HL) (HL) レジスタペア HL で指定されるアドレスのメモリ内容から オブジェクトコード中の即値 を引き 結果を前記のアドレスに入れます C Z C H S V 5 (IX) (IX) SUB (IX), インデックスレジスタ IX で指定されるアドレスのメモリ内容から オブジェクトコード中の即値 を引き 結果を前記のアドレスに入 れます C Z C H S V 5 (IY) (IY) SUB (IY), インデックスレジスタ IY で指定されるアドレスのメモリ内容から オブジェクトコード中の即値 を引き 結果を前記のアドレスに入 れます d d d d d d d d C Z C H S V 7 (IX+d) (IX+d) SUB (IX+d), インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容から オブジェクトコード中の即値 を引き 結果を前記のアドレスに入れます SUB (IY+d), SUB (SP+d), SUB (HL+d), SUB (HL+C), SUB (+SP), SUB (PC+A), SUB rr,(x) SUB rr,(vw) SUB rr,(de) SUB rr,(hl) SUB rr,(ix) SUB rr,(iy) SUB rr,(ix+d) SUB rr,(iy+d) SUB rr,(sp+d) SUB rr,(hl+d) SUB rr,(hl+c) SUB rr,(+sp) SUB rr,(pc+a) SUBB A, d d d d d d d d C Z C H S V 7 (IY+d) (IY+d) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容から オブジェクトコード中の即値 を引き 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (SP+d) (SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容 から オブジェクトコード中の即値 を引き 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (HL+d) (HL+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容か ら オブジェクトコード中の即値 を引き 結果を前記のアドレスに入れます C Z C H S V 7 (HL+C) (HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容から オブジェクトコード中 の即値 を引き 結果を前記のアドレスに入れます C Z C H S V 6 SP SP+:(SP) (SP) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容からオブジェクトコード中の即値 を引 き 結果を前記のアドレスに入れます C Z C H S V 7 (PC+A) (PC+A) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容から オブジェクト コード中の即値 を引き 結果を前記のアドレスに入れます x x x x x x x x r r r C Z C U S V 5 rr rr (x+, x) 6 ビットレジスタ rr の内容から オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイト のメモリ内容を引き 結果をレジスタ rr に入れます w w w w w w w w v v v v v v v v C Z C U S V 6 rr rr (vw+, vw) r r r 6 ビットレジスタ rr の内容から オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイ トのメモリ内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr (DE+, DE) 6 ビットレジスタ rr の内容から レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr (HL+, HL) 6 ビットレジスタ rr の内容から レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr (IX+, IX) 6 ビットレジスタ rr の内容から インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容を引き 結果を レジスタ rr に入れます r r r C Z C U S V 4 rr rr (IY+, IY) 6 ビットレジスタ rr の内容から インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容を引き 結果を レジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr (IX+d+, IX+d) 6 ビットレジスタ rr の内容から インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算し た値で指定されるアドレスから連続する 2 バイトのメモリ内容を引き 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr (IY+d+, IY+d) 6 ビットレジスタ rr の内容から インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算し た値で指定されるアドレスから連続する 2 バイトのメモリ内容を引き 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr (SP+d+, SP+d) 6 ビットレジスタ rr の内容から スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値 で指定されるアドレスから連続する 2 バイトのメモリ内容を引き 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr (HL+d+, HL+d) 6 ビットレジスタ rr の内容から レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指 定されるアドレスから連続する 2 バイトのメモリ内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 6 rr rr (HL+C+, HL+C) 6 ビットレジスタ rr の内容から レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連 続する 2 バイトのメモリ内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 5 SP SP+:rr rr (SP+, SP) 6 ビットレジスタ rr の内容から スタックポインタ SP の内容をインクリメントしその値で指定されるアドレスから連続する 2 バイト のメモリ内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 6 rr rr (PC+A+, PC+A) 6 ビットレジスタ rr の内容から プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレス から連続する 2 バイトのメモリ内容を引き 結果をレジスタ rr に入れます C Z C H S V 2 A A CF A レジスタの内容から オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果を A レジスタに入れます RA Page 29

32 2.2 演算 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション SUBB g, g g g C Z C H S V 3 g g CF 8 ビットレジスタ g の内容から オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果をレジスタ g に入れます g g g C Z C U S V 4 gg gg m CF SUBB gg,m m m m m m m m m 6 ビットレジスタ gg の内容から オブジェクトコード中の即値 m およびキャリーフラグの内容を引き 結果をレジスタ gg に入れま す SUBB r,g g g g r r r C Z C H S V 2 r r g CF 8 ビットレジスタ r の内容から 8 ビットレジスタ g の内容およびキャリーフラグの内容を引き 結果をレジスタ r に入れます SUBB rr,gg g g g r r r C Z C U S V 3 rr rr gg CF 6 ビットレジスタ rr の内容から 6 ビットレジスタ gg の内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます x x x x x x x x r r r C Z C H S V 4 r r (x) CF SUBB r,(x) 8 ビットレジスタ r の内容から オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容および キャリーフラグの内容を引き 結果をレジスタ r に入れます SUBB r,(vw) SUBB r,(de) SUBB r,(hl) SUBB r,(ix) SUBB r,(iy) SUBB r,(ix+d) SUBB r,(iy+d) SUBB r,(sp+d) SUBB r,(hl+d) SUBB r,(hl+c) SUBB r,(+sp) SUBB r,(pc+a) SUBB (x), SUBB (vw), SUBB (DE), SUBB (HL), SUBB (IX), SUBB (IY), SUBB (IX+d), SUBB (IY+d), r r r w w w w w w w w v v v v v v v v C Z C H S V 5 r r (vw) CF 8 ビットレジスタ r の内容から オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容および キャリーフラグの内容を引き 結果をレジスタ r に入れます r r r C Z C H S V 3 r r (DE) CF 8 ビットレジスタ r の内容から レジスタペア DE で指定されるアドレスのメモリ内容およびキャリーフラグの内容を引き 結果をレジ スタ r に入れます r r r C Z C H S V 3 r r (HL) CF 8 ビットレジスタ r の内容から レジスタペア HL で指定されるアドレスのメモリ内容およびキャリーフラグの内容を引き 結果をレジ スタ r に入れます r r r C Z C H S V 3 r r (IX) CF 8 ビットレジスタ r の内容から インデックスレジスタ IX で指定されるアドレスのメモリ内容およびキャリーフラグの内容を引き 結 果をレジスタ r に入れます r r r C Z C H S V 3 r r (IY) CF 8 ビットレジスタ r の内容から インデックスレジスタ IY で指定されるアドレスのメモリ内容およびキャリーフラグの内容を引き 結 果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r (IX+d) CF 8 ビットレジスタ r の内容から インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した 値で指定されるアドレスのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r (IX+d) CF 8 ビットレジスタ r の内容から インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した 値で指定されるアドレスのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r (SP+d) CF 8 ビットレジスタ r の内容から スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で 指定されるアドレスのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ r に入れます d d d d d d d d r r r C Z C H S V 5 r r (HL+d) CF 8 ビットレジスタ r の内容から レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定 されるアドレスのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ r に入れます r r r C Z C H S V 5 r r (HL+C) CF 8 ビットレジスタ r の内容から レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ 内容およびキャリーフラグの内容を引き 結果をレジスタ r に入れます r r r C Z C H S V 4 SP SP+:r r (SP) CF 8 ビットレジスタ r の内容から スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容および キャリーフラグの内容を引き 結果をレジスタ r に入れます r r r C Z C H S V 5 r r (PC+A) CF 8 ビットレジスタ r の内容から プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの メモリ内容およびキャリーフラグの内容を引き 結果をレジスタ r に入れます x x x x x x x x C Z C H S V 6 (x) (x) CF オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容から オブジェクトコード中の即値 およ びキャリーフラグの内容を引き 結果を前記のアドレスに入れます w w w w w w w w v v v v v v v v C Z C H S V 7 (vw) (vw) CF オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容から オブジェクトコード中の即値 お よびキャリーフラグの内容を引き 結果を前記のアドレスに入れます C Z C H S V 5 (DE) (DE) CF レジスタペア DE で指定されるアドレスのメモリ内容から オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果を 前記のアドレスに入れます C Z C H S V 5 (HL) (HL) CF レジスタペア HL で指定されるアドレスのメモリ内容から オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果を 前記のアドレスに入れます C Z C H S V 5 (IX) (IX) CF インデックスレジスタ IX で指定されるアドレスのメモリ内容から オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果を前記のアドレスに入れます C Z C H S V 5 (IY) (IY) CF インデックスレジスタ IY で指定されるアドレスのメモリ内容から オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (IX+d) (IX+d) CF インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容から オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (IY+d) (IY+d) CF インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容から オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果を前記のアドレスに入れます RA Page 3

33 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション d d d d d d d d C Z C H S V 7 (SP+d) (SP+d) CF SUBB (SP+d), SUBB (HL+d), SUBB (HL+C), SUBB (+SP), SUBB (PC+A), SUBB rr,(x) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容 から オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果を前記のアドレスに入れます d d d d d d d d C Z C H S V 7 (HL+d) (HL+d) CF レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容か ら オブジェクトコード中の即値 およびキャリーフラグの内容を引き 結果を前記のアドレスに入れます C Z C H S V 7 (HL+C) (HL+C) CF レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容から オブジェクトコード中 の即値 およびキャリーフラグの内容を引き 結果を前記のアドレスに入れます C Z C H S V 6 SP SP+:(SP) (SP) CF スタックポインタ SP の内容をインクリメントし その値で指定されたアドレスのメモリ内容からオブジェクトコード中の即値 および キャリーフラグの内容を引き 結果を前記のアドレスに入れます C Z C H S V 7 (PC+A) (PC+A) CF プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容から オブジェクト コード中の即値 およびキャリーフラグの内容を引き 結果を前記のアドレスに入れます x x x x x x x x r r r C Z C U S V 5 rr rr (x+, x) CF 6 ビットレジスタ rr の内容から オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイト のメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます w w w w w w w w v v v v v v v v C Z C U S V 6 rr rr (vw+, vw) CF r r r SUBB rr,(vw) 6 ビットレジスタ rr の内容から オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイ トのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr (DE+, DE) CF SUBB rr,(de) 6 ビットレジスタ rr の内容から レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの 内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr (HL+, HL) CF SUBB rr,(hl) 6 ビットレジスタ rr の内容から レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの 内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr (IX+, IX) CF SUBB rr,(ix) 6 ビットレジスタ rr の内容から インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリー フラグの内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 4 rr rr (IY+, IY) CF SUBB rr,(iy) 6 ビットレジスタ rr の内容から インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリー フラグの内容を引き 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr (IX+d+, IX+d) CF SUBB rr,(ix+d) 6 ビットレジスタ rr の内容から インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算し た値で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr (IY+d+, IY+d) CF SUBB rr,(iy+d) 6 ビットレジスタ rr の内容から インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算し た値で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr (SP+d+, SP+d) CF SUBB rr,(sp+d) 6 ビットレジスタ rr の内容から スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値 で指定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます d d d d d d d d r r r C Z C U S V 6 rr rr (HL+d+, HL+d) CF SUBB rr,(hl+d) 6 ビットレジスタ rr の内容から レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指 定されるアドレスから連続する 2 バイトのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 6 rr rr (HL+C+, HL+C) CF SUBB rr,(hl+c) 6 ビットレジスタ rr の内容から レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連 続する 2 バイトのメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 5 SP SP+:rr rr (SP+, SP) CF SUBB rr,(+sp) 6 ビットレジスタ rr の内容から スタックポインタ SP の内容をインクリメントしその値で指定されるアドレスから連続する 2 バイト のメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます r r r C Z C U S V 6 rr rr (PC+A+, PC+A) CF SUBB rr,(pc+a) 6 ビットレジスタ rr の内容から プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレス のメモリ内容およびキャリーフラグの内容を引き 結果をレジスタ rr に入れます AND A, Z Z 2 A A& A レジスタの内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を A レジスタに入れます AND g, g g g Z Z 3 g g& 8 ビットレジスタ g の内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果をレジスタ g に入れます g g g Z Z 4 gg gg&m AND gg,m m m m m m m m m 6 ビットレジスタ gg の内容と オブジェクトコード中の即値 m とでビットごとの論理積を取り 結果をレジスタ gg に入れます AND r,g g g g r r r Z Z 2 r r&g 8 ビットレジスタ r の内容と 8 ビットレジスタ g の内容とでビットごとの論理積を取り 結果をレジスタ r に入れます AND rr,gg g g g r r r Z Z 3 rr rr&gg 6 ビットレジスタ rr の内容と 6 ビットレジスタ gg の内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます x x x x x x x x r r r Z Z 4 r r&(x) AND r,(x) 8 ビットレジスタ r の内容と オブジェクトコード中の即値 x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容とで ビットごとの論理積を取り 結果をレジスタ r に入れます AND r,(vw) r r r w w w w w w w w v v v v v v v v Z Z 5 r r&(vw) 8 ビットレジスタ r の内容と オブジェクトコード中の即値 vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容とでビットごとの論理積を取り 結果をレジスタ r に入れます RA Page 3

34 2.2 演算 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション r r r Z Z 3 r r&(de) AND r,(de) 8 ビットレジスタ r の内容と レジスタペア DE で指定されるアドレスのメモリ内容とでビットごとの論理積を取り 結果をレジスタ r に入れます r r r Z Z 3 r r&(hl) AND r,(hl) 8 ビットレジスタ r の内容と レジスタペア HL で指定されるアドレスのメモリ内容とでビットごとの論理積を取り 結果をレジスタ r に入れます r r r Z Z 3 r r&(ix) AND r,(ix) 8 ビットレジスタ r の内容と インデックスレジスタ IX で指定されるアドレスのメモリ内容とでビットごとの論理積を取り 結果をレ ジスタ r に入れます r r r Z Z 3 r r&(iy) AND r,(iy) 8 ビットレジスタ r の内容と インデックスレジスタ IY で指定されるアドレスのメモリ内容とでビットごとの論理積を取り 結果をレ ジスタ r に入れます d d d d d d d d r r r Z Z 5 r r&(ix+d) AND r,(ix+d) 8 ビットレジスタ r の内容と インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値 で指定されるアドレスのメモリ内容とでビットごとの論理積を取り 結果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r&(iy+d) AND r,(iy+d) 8 ビットレジスタ r の内容と インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値 で指定されるアドレスのメモリ内容とでビットごとの論理積を取り 結果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r&(sp+d) AND r,(sp+d) 8 ビットレジスタ r の内容と スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指 定されるアドレスのメモリ内容とでビットごとの論理積を取り 結果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r&(hl+d) AND r,(hl+d) 8 ビットレジスタ r の内容と レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定さ れるアドレスのメモリ内容とでビットごとの論理積を取り 結果をレジスタ r に入れます r r r Z Z 5 r r&(hl+c) AND r,(hl+c) 8 ビットレジスタ r の内容と レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内 容とでビットごとの論理積を取り 結果をレジスタ r に入れます r r r Z Z 4 SP SP+:r r&(sp) AND r,(+sp) 8 ビットレジスタ r の内容と スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容とでビット ごとの論理積を取り 結果をレジスタ r に入れます r r r Z Z 5 r r&(pc+a) AND r,(pc+a) 8 ビットレジスタ r の内容と プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメ モリ内容とでビットごとの論理積を取り 結果をレジスタ r に入れます AND (X), AND (vw), AND (DE), AND (HL), AND (IX), AND (IY), AND (IX+d), AND (IY+d), AND (SP+d), AND (HL+d), AND (HL+C), AND (+SP), AND (PC+A), x x x x x x x x Z Z 6 (x) (x)& オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容と オブジェクトコード中の即値 とで ビットごとの論理積を取り 結果を前記のアドレスに入れます w w w w w w w w v v v v v v v v Z Z 7 (vw) (vw)& オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容と オブジェクトコード中の即値 とで ビットごとの論理積を取り 結果を前記のアドレスに入れます Z Z 5 (DE) (DE)& レジスタペア DE で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を前記の アドレスに入れます Z Z 5 (HL) (HL)& レジスタペア HL で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を前記の アドレスに入れます Z Z 5 (IX) (IX)& インデックスレジスタ IX で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果 を前記のアドレスに入れます Z Z 5 (IY) (IY)& インデックスレジスタ IY で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果 を前記のアドレスに入れます d d d d d d d d Z Z 7 (IX+d) (IX+d)& インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (IY+d) (IY+d)& インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (SP+d) (SP+d)& スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容 と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (HL+d) (HL+d)& レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を前記のアドレスに入れます Z Z 7 (HL+C) (HL+C)& レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を前記のアドレスに入れます Z Z 6 SP SP+:(SP) (SP)& スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を前記のアドレスに入れます Z Z 7 (PC+A) (PC+A)& プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理積を取り 結果を前記のアドレスに入れます RA Page 32

35 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション x x x x x x x x r r r Z Z 5 rr rr&(x) AND rr,(x) 6 ビットレジスタ rr の内容と オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます AND rr,(vw) AND rr,(de) AND rr,(hl) AND rr,(ix) AND rr,(iy) AND rr,(ix+d) AND rr,(iy+d) AND rr,(sp+d) AND rr,(hl+d) AND rr,(hl+c) AND rr,(+sp) AND rr,(pc+a) OR A, OR g, OR gg,m OR r,g OR rr,gg OR r,(x) OR r,(vw) OR r,(de) OR r,(hl) OR r,(ix) OR r,(iy) OR r,(ix+d) OR r,(iy+d) r r r w w w w w w w w v v v v v v v v Z Z 6 rr rr&(vw) 6 ビットレジスタ rr の内容と オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr&(de) 6 ビットレジスタ rr の内容と レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr&(hl) 6 ビットレジスタ rr の内容と レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr&(ix) 6 ビットレジスタ rr の内容と インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr&(iy) 6 ビットレジスタ rr の内容と インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr&(ix+d) 6 ビットレジスタ rr の内容と インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr&(iy+d) 6 ビットレジスタ rr の内容と インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr&(sp+d) 6 ビットレジスタ rr の内容と スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr&(hl+d) 6 ビットレジスタ rr の内容と レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます r r r Z Z 6 rr rr&(hl+c) 6 ビットレジスタ rr の内容と レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます r r r Z Z 5 SP SP+:rr rr&(sp) 6 ビットレジスタ rr の内容と スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます r r r Z Z 6 rr rr&(pc+a) 6 ビットレジスタ rr の内容と プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理積を取り 結果をレジスタ rr に入れます Z Z 2 A A A レジスタの内容と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果を A レジスタに入れます g g g Z Z 3 g g 8 ビットレジスタ g の内容と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果をレジスタ g に入れます g g g Z Z 4 gg gg m m m m m m m m m 6 ビットレジスタ gg の内容と オブジェクトコード中の即値 m とでビットごとの論理和を取り 結果をレジスタ gg に入れます g g g r r r Z Z 2 r r g 8 ビットレジスタ r の内容と 8 ビットレジスタ g の内容とでビットごとの論理和を取り 結果をレジスタ r に入れます g g g r r r Z Z 3 rr rr gg 6 ビットレジスタ rr の内容と 6 ビットレジスタ gg の内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます x x x x x x x x r r r Z Z 4 r r (x) 8 ビットレジスタ r の内容と オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます r r r w w w w w w w w v v v v v v v v Z Z 5 r r (vw) 8 ビットレジスタ r の内容と オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます r r r Z Z 3 r r (DE) 8 ビットレジスタ r の内容と レジスタペア DE で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます r r r Z Z 3 r r (HL) 8 ビットレジスタ r の内容と レジスタペア HL で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます r r r Z Z 3 r r (IX) 8 ビットレジスタ r の内容と インデックスレジスタ IX で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます r r r Z Z 3 r r (IY) 8 ビットレジスタ r の内容と インデックスレジスタ IY で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r (IX+d) 8 ビットレジスタ r の内容と インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r (IY+d) 8 ビットレジスタ r の内容と インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます RA Page 33

36 2.2 演算 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション d d d d d d d d r r r Z Z 5 r r (SP+d) OR r,(sp+d) 8 ビットレジスタ r の内容と スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r (HL+d) OR r,(hl+d) 8 ビットレジスタ r の内容と レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます r r r Z Z 5 r r (HL+C) OR r,(hl+c) 8 ビットレジスタ r の内容と レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます r r r Z Z 4 SP SP+:r r (SP) OR r,(+sp) 8 ビットレジスタ r の内容と スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます r r r Z Z 5 r r (PC+A) OR r,(pc+a) 8 ビットレジスタ r の内容と プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容とでビットごとの論理和を取り 結果をレジスタ r に入れます x x x x x x x x Z Z 6 (x) (x) OR (x), OR (vw), OR (DE), OR (HL), OR (IX), OR (IY), OR (IX+d), OR (IY+d), OR (SP+d), OR (HL+d), OR (HL+C), OR (+SP), OR (PC+A), OR rr,(x) OR rr,(vw) OR rr,(de) OR rr,(hl) OR rr,(ix) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容と オブジェクトコード中の即値 とで ビットごとの論理和を取り 結果を前記のアドレスに入れます w w w w w w w w v v v v v v v v Z Z 7 (vw) (vw) オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容と オブジェクトコード中の即値 とで ビットごとの論理和を取り 結果を前記のアドレスに入れます Z Z 5 (DE) (DE) レジスタペア DE で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果を前記の アドレスに入れます Z Z 5 (HL) (HL) レジスタペア HL で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果を前記の アドレスに入れます Z Z 5 (IX) (IX) インデックスレジスタ IX で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果 を前記のアドレスに入れます Z Z 5 (IY) (IY) インデックスレジスタ IY で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果 を前記のアドレスに入れます d d d d d d d d Z Z 7 (IX+d) (IX+d) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (IY+d) (IY+d) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (SP+d) (SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容 と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (HL+d) (HL+d) レジスタペア HL の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容 と オブジェクトコード中の即値 とでビットごとの論理和を取り 結果を前記のアドレスに入れます Z Z 7 (HL+C) (HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と オブジェクトコード中の 即値 とでビットごとの論理和を取り 結果を前記のアドレスに入れます Z Z 6 SP SP+:(SP) (SP) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とで ビットごとの論理和を取り 結果を前記のアドレスに入れます Z Z 7 (PC+A) (PC+A) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と オブジェクト コード中の即値 とでビットごとの論理和を取り 結果を前記のアドレスに入れます x x x x x x x x r r r Z Z 5 rr rr (x) 6 ビットレジスタ rr の内容と オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトの メモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます w w w w w w w w v v v v v v v v Z Z 6 rr rr (vw) r r r 6 ビットレジスタ rr の内容と オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイト のメモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr (DE) 6 ビットレジスタ rr の内容と レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を 取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr (HL) 6 ビットレジスタ rr の内容と レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を 取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr (IX) 6 ビットレジスタ rr の内容と インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの 論理和を取り 結果をレジスタ rr に入れます RA Page 34

37 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション r r r Z Z 4 rr rr (IY) OR rr,(iy) 6 ビットレジスタ rr の内容と インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr (IX+d) OR rr,(ix+d) 6 ビットレジスタ rr の内容と インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr (IY+d) OR rr,(iy+d) 6 ビットレジスタ rr の内容と インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr (SP+d) OR rr,(sp+d) 6 ビットレジスタ rr の内容と スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr (HL+d) OR rr,(hl+d) 6 ビットレジスタ rr の内容と レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます r r r Z Z 6 rr rr (HL+C) OR rr,(hl+c) 6 ビットレジスタ rr の内容と レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます r r r Z Z 5 SP SP+:rr rr (SP) OR rr,(+sp) 6 ビットレジスタ rr の内容と スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます r r r Z Z 6 rr rr (PC+A) OR rr,(pc+a) 6 ビットレジスタ rr の内容と プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの論理和を取り 結果をレジスタ rr に入れます Z Z 2 A A^ A レジスタの内容と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果を A レジスタに入れます = xff XOR A, のときは の補数 ( データ反転 ) 命令になります 例 : A = x69 のとき XOR A, xff 命令を実行すると A = x96, ZF = となります g g g Z Z 3 g g^ XOR g, 8 ビットレジスタ g の内容と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果をレジスタ g に入れます = xff のときは の補数 ( データ反転 ) 命令になります Z Z 4 gg gg^m XOR gg,m XOR r,g XOR rr,gg XOR r,(x) XOR r,(vw) XOR r,(de) XOR r,(hl) XOR r,(ix) XOR r,(iy) XOR r,(ix+d) XOR r,(iy+d) XOR r,(sp+d) XOR r,(hl+d) XOR r,(hl+c) XOR r,(+sp) m m m m m g m g m g m 6 ビットレジスタ gg の内容と オブジェクトコード中の即値 m とでビットごとの排他的論理和を取り 結果をレジスタ gg に入れま す m = xffff のときは の補数 ( データ反転 ) 命令になります g g g r r r Z Z 2 r r^g 8 ビットレジスタ r の内容と 8 ビットレジスタ g の内容とでビットごとの排他的論理和を取り 結果をレジスタ r に入れます g g g r r r Z Z 3 rr rr^gg 6 ビットレジスタ rr の内容と 6 ビットレジスタ gg の内容とでビットごとの排他的論理和を取り 結果をレジスタ rr に入れます x x x x x x x x r r r Z Z 4 r r^(x) 8 ビットレジスタ r の内容と オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容とでビット ごとの排他的論理和を取り 結果をレジスタ r に入れます w w w w w w w w v v v v v v v v Z Z 5 r r^(vw) r r r 8 ビットレジスタ r の内容と オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容とでビット ごとの排他的論理和を取り 結果をレジスタ r に入れます r r r Z Z 3 r r^(de) 8 ビットレジスタ r の内容と レジスタペア DE で指定されるアドレスのメモリ内容とでビットごとの排他的論理和を取り 結果をレジ スタ r に入れます r r r Z Z 3 r r^(hl) 8 ビットレジスタ r の内容と レジスタペア HL で指定されるアドレスのメモリ内容とでビットごとの排他的論理和を取り 結果をレジ スタ r に入れます r r r Z Z 3 r r^(ix) 8 ビットレジスタ r の内容と インデックスレジスタ IX で指定されるアドレスのメモリ内容とでビットごとの排他的論理和を取り 結 果をレジスタ r に入れます r r r Z Z 3 r r^(iy) 8 ビットレジスタ r の内容と インデックスレジスタ IY で指定されるアドレスのメモリ内容とでビットごとの排他的論理和を取り 結 果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r^(ix+d) 8 ビットレジスタ r の内容と インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値 で指定されるアドレスのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r^(iy+d) 8 ビットレジスタ r の内容と インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値 で指定されるアドレスのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r^(sp+d) 8 ビットレジスタ r の内容と スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指 定されるアドレスのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ r に入れます d d d d d d d d r r r Z Z 5 r r^(hl+d) 8 ビットレジスタ r の内容と レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定さ れるアドレスのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ r に入れます r r r Z Z 5 r r^(hl+c) 8 ビットレジスタ r の内容と レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内 容とでビットごとの排他的論理和を取り 結果をレジスタ r に入れます r r r Z Z 4 SP SP+:r r^(sp) 8 ビットレジスタ r の内容と スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容とでビット ごとの排他的論理和を取り 結果をレジスタ r に入れます RA Page 35

38 2.2 演算 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション r r r Z Z 5 r r^(pc+a) XOR r,(pc+a) 8 ビットレジスタ r の内容と プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ r に入れます x x x x x x x x Z Z 6 (x) (x)^ XOR (x), XOR (vw), XOR (DE), XOR (HL), XOR (IX), XOR (IY), XOR (IX+d), XOR (IY+d), XOR (SP+d), XOR (HL+d), XOR (HL+C), XOR (+SP), XOR (PC+A), XOR rr,(x) XOR rr,(vw) XOR rr,(de) XOR rr,(hl) XOR rr,(ix) XOR rr,(iy) XOR rr,(ix+d) XOR rr,(iy+d) XOR rr,(sp+d) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容と オブジェクトコード中の即値 とで ビットごとの排他的論理和を取り 結果を前記のアドレスに入れます w w w w w w w w v v v v v v v v Z Z 7 (vw) (vw)^ オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容と オブジェクトコード中の即値 とで ビットごとの排他的論理和を取り 結果を前記のアドレスに入れます Z Z 5 (DE) (DE)^ レジスタペア DE で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果を 前記のアドレスに入れます Z Z 5 (HL) (HL)^ レジスタペア HL で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果を 前記のアドレスに入れます Z Z 5 (IX) (IX)^ インデックスレジスタ IX で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果を前記のアドレスに入れます Z Z 5 (IY) (IY)^ インデックスレジスタ IY で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (IX+d) (IX+d)^ インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (IY+d) (IY+d)^ インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (SP+d) (SP+d)^ スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容 と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果を前記のアドレスに入れます d d d d d d d d Z Z 7 (HL+d) (HL+d)^ レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とでビットごとの排他的論理和を取り 結果を前記のアドレスに入れます Z Z 7 (HL+C) (HL+C)^ レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と オブジェクトコード中の 即値 とでビットごとの排他的論理和を取り 結果を前記のアドレスに入れます Z Z 6 SP SP+:(SP) (SP)^ スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容と オブジェクトコード中の即値 とで ビットごとの排他的論理和を取り 結果を前記のアドレスに入れます Z Z 7 (PC+A) (PC+A)^ プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容と オブジェクト コード中の即値 とでビットごとの排他的論理和を取り 結果を前記のアドレスに入れます x x x x x x x x r r r Z Z 5 rr rr^(x) 6 ビットレジスタ rr の内容と オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトの メモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ rr に入れます w w w w w w w w v v v v v v v v Z Z 6 rr rr^(vw) r r r 6 ビットレジスタ rr の内容と オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイト のメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr^(de) 6 ビットレジスタ rr の内容と レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの排他的論 理和を取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr^(hl) 6 ビットレジスタ rr の内容と レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの排他的論 理和を取り 結果をレジスタ rr にいれます r r r Z Z 4 rr rr^(ix) 6 ビットレジスタ rr の内容と インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの 排他的論理和を取り 結果をレジスタ rr に入れます r r r Z Z 4 rr rr^(iy) 6 ビットレジスタ rr の内容と インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの 排他的論理和を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr^(ix+d) 6 ビットレジスタ rr の内容と インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した 値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr^(iy+d) 6 ビットレジスタ rr の内容と インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した 値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ rr に入れます d d d d d d d d r r r Z Z 6 rr rr^(sp+d) 6 ビットレジスタ rr の内容と スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で 指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ rr に入れます RA Page 36

39 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション d d d d d d d d r r r Z Z 6 rr rr^(hl+d) XOR rr,(hl+d) 6 ビットレジスタ rr の内容と レジスタペア HL にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ rr に入れます r r r Z Z 6 rr rr^(hl+c) XOR rr,(hl+c) 6 ビットレジスタ rr の内容と レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ rr に入れます r r r Z Z 5 SP SP+:rr rr^(sp) XOR rr,(+sp) 6 ビットレジスタ rr の内容と スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタに入れます r r r Z Z 6 rr rr^(pc+a) XOR rr,(pc+a) 6 ビットレジスタ rr の内容と プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容とでビットごとの排他的論理和を取り 結果をレジスタ rr に入れます r r r C Z r r+ INC r 8 ビットレジスタ r の内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます キャリーフラグは変化しません 例 : L = xff のとき INC L 命令を実行すると L = x, ZF =, JF = となります r r r C Z 2 rr rr+ INC rr 6 ビットレジスタ rr の内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます 例 : HL = x234 のとき INC HL 命令を実行すると HL = x235, ZF =, JF = となります x x x x x x x x C Z 5 (x) (x)+ INC (x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます w w w w w w w w v v v v v v v v C Z 6 (vw) (vw)+ INC (vw) オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます C Z 4 (DE) (DE)+ INC (DE) レジスタペア DE で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます C Z 4 (HL) (HL)+ INC (HL) レジスタペア HL で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます C Z 4 (IX) (IX)+ INC (IX) インデックスレジスタ IX で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます C Z 4 (IY) (IY)+ INC (IY) インデックスレジスタ IY で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます d d d d d d d d C Z 6 (IX+d) (IX+d)+ INC (IX+d) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます d d d d d d d d C Z 6 (IY+d) (IY+d)+ INC (IY+d) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます d d d d d d d d C Z 6 (SP+d) (SP+d)+ INC (SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます d d d d d d d d C Z 6 (HL+d) (HL+d)+ INC (HL+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます C Z 6 (HL+C) (HL+C)+ INC (HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます C Z 5 SP SP+:(SP) (SP)+ INC (+SP) スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスのメモリ内容をインクリメントします メモリの内容がオーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます C Z 6 (PC+A) (PC+A)+ INC (PC+A) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容をインクリメントします オーバフローするとジャンプステータスフラグ, ゼロフラグがともに にセットされます r r r C Z r r 8 ビットレジスタ r の内容をデクリメントします アンダーフローする ( 結果が xff となる ) とジャンプステータスフラグが に DEC r セットされます キャリーフラグは変化しません 例 : L = x のとき DEC L 命令を実行すると L = xff, ZF =, JF = となります r r r C Z 2 rr rr 6 ビットレジスタ rr の内容をデクリメントします アンダーフローする ( 結果が xffff となる ) とジャンプステータスフラグが DEC rr にセットされます 例 : HL = x8765 のとき DEC HL 命令を実行すると HL = x8764, ZF =, JF = となります x x x x x x x x C Z 5 (x) (x) DEC (x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) のメモリ内容をデクリメントします アンダーフローするとジャンプステータスフラグが にセットされます DEC (vw) w w w w w w w w v v v v v v v v C Z 6 (vw) (vw) オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) のメモリ内容をデクリメントします アンダーフローするとジャンプステータスフラグが にセットされます RA Page 37

40 2.2 演算 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション C Z 4 (DE) (DE) DEC (DE) レジスタペア DE で指定されるアドレスのメモリ内容をデクリメントします アンダーフローするとジャンプステータスフラグが にセットされます C Z 4 (HL) (HL) DEC (HL) レジスタペア HL で指定されるアドレスのメモリ内容をデクリメントします アンダーフローするとジャンプステータスフラグが に セットされます C Z 4 (IX) (IX) DEC (IX) インデックスレジスタ IX で指定されるアドレスのメモリ内容をデクリメントします アンダーフローするとジャンプステータスフラグ が にセットされます C Z 4 (IY) (IY) DEC (IY) インデックスレジスタ IY で指定されるアドレスのメモリ内容をデクリメントします アンダーフローするとジャンプステータスフラグ が にセットされます d d d d d d d d C Z 6 (IX+d) (IX+d) DEC (IX+d) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容をデクリメントします アンダーフローするとジャンプステータスフラグが にセットされます d d d d d d d d C Z 6 (IY+d) (IY+d) DEC (IY+d) インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ 内容をデクリメントします アンダーフローするとジャンプステータスフラグが にセットされます d d d d d d d d C Z 6 (SP+d) (SP+d) DEC (SP+d) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容 をデクリメントします アンダーフローするとジャンプステータスフラグが にセットされます d d d d d d d d C Z 6 (HL+d) (HL+d) DEC (HL+d) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスのメモリ内容をデ クリメントします アンダーフローするとジャンプステータスフラグが にセットされます C Z 6 (HL+C) (HL+C) DEC (HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容をデクリメントします アン ダーフローするとジャンプステータスフラグが にセットされます C Z 5 SP SP+:(SP) (SP) DEC (+SP) スタックポインタ SP の内容をデクリメントし その値で指定されるアドレスの内容をデクリメントします アンダーフローするとジャ ンプステータスフラグが にセットされます C Z 6 (PC+A) (PC+A) DEC (PC+A) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスのメモリ内容をデクリメントしま す アンダーフローするとジャンプステータスフラグが にセットされます g g g C Z C H 2 Decimal adjustmet agaist g (after additio) 8 ビットのパックド BCD データの加算の際 加算命令 (ADD/ADDC) 実行後のレジスタ g の内容を十進補正します 多桁の BCD データの加算を行う場合は 8 ビット単位で下位桁から加算 補正を繰り返します DAA g g g 4 4 ~9 ~9 ~8 A~F 6 ~9 ~3 6 A~F ~9 6 9~F A~F 66 A~F ~3 66 ~2 ~9 6 ~2 A~F 66 ~3 ~3 66 例 : A = x26, B = x57 のとき ADD A, B 命令を実行すると A = x7d, CF =, HF = となり この状態で DAA A 命令を実行する と A = x83, CF = となります g g g C Z C H 2 Decimal adjustmet agaist g (after subtractio) 8 ビットのパックド BCD データの減算の際 減算命令 (SUB/SUBB) 実行後のレジスタ g の内容を十進補正します 多桁の BCD データの加算を行う場合は 8 ビット単位で下位桁から加算 補正を繰り返します DAS g g g 4 4 ~9 ~9 ~8 6~F FA 7~F ~9 A 6~F 6~F 9A 例 : A = x87, B = x39 のとき SUB A, B 命令を実行すると A = x4e, CF =, HF = となり この状態で DAS A 命令を実行すると A = x48, CF = となります RA Page 38

41 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション Z Z 3 WA W A W レジスタの内容 ( 符号なし整数 ) に A レジスタの内容 ( 符号なし整数 ) を掛け 結果をレジスタペア WA に入れます ゼロフラグは MUL W,A 結果の上位 8 ビット (W レジスタに格納される値 ) が x のとき にセットされ x 以外のとき にクリアされます 例 : W = x87, A = xf2 のとき この命令を実行すると WA = x7f9e, ZF = となります 例 2: W = x6, A = x5 のとき この命令を実行すると WA = x6e, ZF = となります Z Z 3 BC B C MUL B,C B レジスタの内容 ( 符号なし整数 ) に C レジスタの内容 ( 符号なし整数 ) を掛け 結果をレジスタペア BC に入れます 結果の上位 8 ビット (B レジスタに格納される値 ) が x のとき ゼロフラグが にセットされます Z Z 3 DE D E MUL D,E D レジスタの内容 ( 符号なし整数 ) に E レジスタの内容 ( 符号なし整数 ) を掛け 結果をレジスタペア DE に入れます 結果の上位 8 ビット (D レジスタに格納される値 ) が x のとき ゼロフラグが にセットされます Z Z 3 HL H L MUL H,L H レジスタの内容 ( 符号なし整数 ) に L レジスタの内容 ( 符号なし整数 ) を掛け 結果をレジスタペア HL に入れます 結果の上位 8 ビット (H レジスタに格納される値 ) が x のとき ゼロフラグが にセットされます Z Z C 3 A WA C, W 余りレジスタペア WA の内容 ( 符号なし整数 ) を C レジスタの内容 ( 符号なし整数 ) で割り 商を A レジスタに 余りを W レジスタにそれぞれ入れます 除数 (C レジスタの内容 ) が x のとき または商が x 以上のときキャリーフラグは にセットされ ( この場合 A レジスタおよび W レジスタの内容は不定になります ) それ以外のときキャリーフラグは にクリアされます また ゼロフラグは 余りが x のとき にセットされ x 以外のとき にクリアされます なお C レジスタの内容は変化しません DIV WA,C 例 : WA = x234, C = x56 のとき この命令を実行すると A = x36, W = x, CF =, ZF = となります 例 2: WA = x483, C = x9a のとき この命令を実行すると A = x78, W = x, CF =, ZF = となります 例 3: WA = x32, C = x27 のとき この命令を実行すると A = x48, W = x8, CF =, ZF = となります Z Z C 3 E DE C, D 余りレジスタペア DE の内容 ( 符号なし整数 ) を C レジスタの内容 ( 符号なし整数 ) で割り 商の下位 8 ビットを E レジスタに 余りを D レ DIV DE,C ジスタにそれぞれ入れます 除数 (C レジスタの内容 ) が x のとき または商が x 以上のとき キャリーフラグが にセットされます ( この場合 レジスタペア DE の内容は不定になります ) また 余りが x のとき ゼロフラグが にセットされます なお C レジスタの内容は変化しません Z Z C 3 L HL C, H 余りレジスタペア HL の内容 ( 符号なし整数 ) を C レジスタの内容 ( 符号なし整数 ) で割り 商の下位 8 ビットを L レジスタに 余りを H レ DIV HL,C ジスタにそれぞれ入れます 除数 (C レジスタの内容 ) が x のとき または商が x 以上のとき キャリーフラグが にセットされます ( この場合 レジスタペア HL の内容は不定になります ) また 余りが x のとき ゼロフラグが にセットされます なお C レジスタの内容は変化しません g g g 3 if CF= the gg gg else ull キャリーフラグが のとき 6 ビットレジスタ gg の 2 の補数を取りレジスタ gg に格納し ジャンプステータスフラグを にセットします NEG CS,gg キャリーフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります ( この場合 レジスタ gg の内容は変化しません ) 例 : HL = x5678, CF = のとき NEG CS, HL 命令を実行すると HL = xa988, CF = となります 例 2: DE = x89ab, CF = のとき NEG CS, DE 命令を実行すると DE = x89ab, CF = となります ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 39

42 2.2 演算 TLCS-87/C RA Page 4

43 TLCS-87/C 2.3 シフト ローテート ニブル処理 SHLC g SHRC g ニモニックオブジェクトコード (2 進 ) フラグ サイクル オペレーション g g g C Z * 2 CF ビットレジスタ g の内容を左へ ビットずつ論理シフトします ( レジスタ g の最下位ビットには が入ります キャリーフラグには レジスタ g の最上位ビットの内容が入ります ) シフト後のレジスタ g の内容が x のとき ゼロフラグが にセットされます 例 : A = y, CF = のとき この命令を実行すると A = y, CF =, ZF = となります g g g C Z * CF 8 ビットレジスタ g の内容を右へ ビットずつ論理シフトします ( レジスタ g の最上位ビットには が入ります キャリーフラグには レジスタ g の最下位ビットの内容が入ります ) シフト後のレジスタ g の内容が x のとき ゼロフラグが にセットされます 例 : A = y, CF = のとき この命令を実行すると A = y, CF =, ZF = となります ROLC g RORC g SHLCA gg SHRCA gg g g g C Z * 2 CF ビットレジスタ g とキャリーフラグの内容を左へ ビットずつローテーションします ローテーション後のレジスタ g の内容が x のとき ゼロフラグが にセットされます 例 : A = y, CF = のとき この命令を実行すると A = y, CF =, JF =, ZF = となります 例 2: A = y, CF = のとき この命令を実行すると A = y, CF =, JF =, ZF = となります g g g C Z * CF 8 ビットレジスタ g とキャリーフラグの内容を右へ ビットずつローテーションします ローテーション後のレジスタ g の内容が x のとき ゼロフラグが にセットされます 例 : A = y, CF = のとき この命令を実行すると A = y, CF =, ZF = となります g g g C Z * S V 3 gg CF 6 ビットレジスタ gg の内容を左へ ビットずつ算術シフトします ( レジスタの最下位ビットには が入ります キャリーフラグには レジスタ gg の最上位ビットの内容が入ります ) シフト後のレジスタ gg の内容が x のとき ゼロフラグが にセットされます レジスタ gg の最上位ビットの内容がシフトで変化するとオーバフローフラグが にセットされます 例 : HL = x3456, CF = のとき SHLCA HL 命令を実行すると HL = x68ac, CF =, JF =, ZF =, SF =, VF = となります g g g C Z * S 3 gg CF 6 ビットレジスタ gg の内容を右へ ビットずつ算術シフトします ( レジスタの最上位ビットには は変化しません キャリーフラグには レジスタ gg の最下位ビットの内容が入ります ) シフト後のレジスタ gg の内容が x のとき ゼロフラグが にセットされます 例 : DE = x89ab, CF = のとき SHRCA DE 命令を実行すると DE = xc4d5, CF =, JF =, ZF =, SF =, VF = となります SWAP g g g g 7 8 ビットレジスタ g の上位 4 ビットと下位 4 ビットの内容を交換します 例 : A = x25 のとき この命令を実行すると A = x52 となります x x x x x x x x ( 4 4 ) A (x) ROLD A,(x) ROLD A,(vw) ROLD A,(DE) ROLD A,(HL) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 例 : A レジスタが x2, x87 番地の内容が x56 のとき ROLD A, (x87) 命令を実行すると A レジスタが x5, x87 番地の内容が x62 となります w w w w w w w w v v v v v v v v オブジェクトコード中の vw で直接指定されるアドレスの (x ~ xffff 番地 ) 内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 8 レジスタペア DE で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 8 (4 ) レジスタペア HL で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません A A (vw) (4 ) A (DE) (4 ) (HL) (4 ) RA Page 4

44 2.3 シフト ローテート ニブル処理 TLCS-87/C ニモニックオブジェクトコード (2 進 ) フラグ サイクル オペレーション ROLD A,(IX) ROLD A,(IY) ROLD A,(IX+d) ROLD A,(IY+d) ROLD A,(SP+d) ROLD A,(HL+d) ROLD A,(HL+C) ROLD A,(+SP) 8 インデックスレジスタ IX で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 8 インデックスレジスタ IY で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません d d d d d d d d インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません d d d d d d d d インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません d d d d d d d d スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません d d d d d d d d レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 9 (4 ) スタックポインタ SP をインクリメントし その値で指定されるアドレスのメモリ内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません A A (IX) (4 ) (IY) (4 ) A (IX + d) (4 ) A (IY + d) (4 ) A (SP + d) (4 ) A (HL + d) (4 ) A (HL + C) A (4 ) (+SP) ROLD A,(PC+A) A (PC + A) (4 ) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません x x x x x x x x 9 A (x) RORD A,(x) (4 ) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 例 :A レジスタが x2, x87 番地の内容が x56 のとき RORD A, (x87) 命令を実行すると A レジスタが x6, x87 番地の内容が x25 となります RA Page 42

45 TLCS-87/C ニモニックオブジェクトコード (2 進 ) フラグ サイクル オペレーション RORD A,(vw) RORD A,(DE) RORD A,(HL) RORD A,(IX) RORD A,(IY) RORD A,(IX+d) RORD A,(IY+d) RORD A,(SP+d) RORD A,(HL+d) RORD A,(HL+C) RORD A,(+SP) w w w w w w w w v v v v v v v オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 8 レジスタペア DE で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 8 レジスタペア HL で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 8 インデックスレジスタ IX で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません 8 インデックスレジスタ IY で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません d d d d d d d d (4 ) インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません d d d d d d d d インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません d d d d d d d d (4 ) スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません d d d d d d d d (4 ) レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません (4 ) スタックポイントをインクリメントし その値で指定されるアドレスのメモリの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません A A (vw) (DE) A (4 ) (HL) A (4 ) (IX) A (4 ) (IY) (4 ) A (IX + d) A (IY + d) (4 ) A (SP + d) A (HL + d) A (HL + C) A (4 ) (+SP) (4 ) RA Page 43

46 2.3 シフト ローテート ニブル処理 TLCS-87/C ニモニックオブジェクトコード (2 進 ) フラグ サイクル オペレーション RORD A,(PC+A) ) A (PC + A) (4 ) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 44

47 TLCS-87/C 2.4 ビット操作 フラグ操作 フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション g g g b b b Z * 3 ZF g.b:g.b SET g.b 8 ビットレジスタ g の オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします 例 : A = x3c のとき SET A.7 命令を実行すると ZF =, A = xbc となります SET (x).b SET (vw).b SET (DE).b SET (HL).b SET (IX).b SET (IY).b SET (IX+d).b SET (IY+d).b SET (SP+d).b SET (HL+d).b SET (HL+C).b SET (+SP).b SET (PC+A).b SET (x).a SET (vw).a SET (DE).A SET (HL).A SET (IX).A SET (IY).A SET (IX+d).A b b b x x x x x x x x Z * 4 ZF (x).b:(x).b オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします b b w w w w w w w w v v v v v v v v Z * 6 ZF (vw).b:(vw).b b オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします b b b Z * 4 ZF (DE).b:(DE).b レジスタペア DE で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします b b b Z * 4 ZF (HL).b:(HL).b レジスタペア HL で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします b b b Z * 4 ZF (IX).b:(IX).b インデックスレジスタ IX で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします b b b Z * 4 ZF (IY).b:(IY).b インデックスレジスタ IY で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします d d d d d d d d b b b Z * 6 ZF (IX+d).b:(IX+d).b インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします d d d d d d d d b b b Z * 6 ZF (IY+d).b:(IY+d).b インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします d d d d d d d d b b b Z * 6 ZF (SP+d).b:(SP+d).b スタックポインタの内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします d d d d d d d d b b b Z * 6 ZF (HL+d).b:(HL+d).b レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします b b b Z * 6 ZF (HL+C).b:(HL+C).b レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします b b b Z * 5 SP SP+:ZF (SP).b:(SP).b スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします b b b Z * 6 ZF (PC+A).b:(PC+A).b プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします x x x x x x x x Z * 5 ZF (x).a:(x).a オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします w w w w w w w w v v v v v v v v Z * 6 ZF (vw).a:(vw).a オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします Z * 4 ZF (DE).A:(DE).A レジスタペア DE で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの反転値をゼロフラグに入れた後 そのビットの内容を にセットします Z * 4 ZF (HL).A:(HL).A レジスタペア HL で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの反転値をゼロフラグに入れた後 そのビットの内容を にセットします Z * 4 ZF (IX).A:(IX).A インデックスレジスタ IX で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの反転値をゼロフラグに入れた後 そのビットの内容を にセットします Z * 4 ZF (IY).A:(IY).A インデックスレジスタ IY で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの反転値をゼロフラグに入れた後 そのビットの内容を にセットします d d d d d d d d Z * 6 ZF (IX+d).A:(IX+d).A インデックスレジスタ IX レジスタペアの内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします RA Page 45

48 2.4 ビット操作 フラグ操作 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション d d d d d d d d Z * 6 ZF (IY+d).A:(IY+d).A SET (IY+d).A インデックスレジスタ IY レジスタペアの内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします d d d d d d d d Z * 6 ZF (SP+d).A:(SP+d).A SET (SP+d).A スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします d d d d d d d d Z * 6 ZF (HL+d).A:(HL+d).A SET (HL+d).A レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします Z * 6 ZF (HL+C).A:(HL+C).A SET (HL+C).A レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします Z * 5 SP SP+:ZF (SP).A:(SP).A SET (+SP).A スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビット内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします Z * 6 ZF (PC+A).A:(PC+A).A SET (PC+A).A プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にセットします g g g b b b Z * 3 ZF g.b:g.b CLR g.b 8 ビットレジスタ g の オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします 例 : A = x3c のとき CLR A.2 命令を実行すると ZF =, A = x38 となります CLR (x).b CLR (vw).b CLR (DE).b CLR (HL).b CLR (IX).b CLR (IY).b CLR (IX+d).b CLR (IY+d).b CLR (SP+d).b CLR (HL+d).b CLR (HL+C).b CLR (+SP).b CLR (PC+A).b CLR (x).a CLR (vw).a b b b x x x x x x x x Z * 4 ZF (x).b:(x).b オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします b b w w w w w w w w v v v v v v v v Z * 6 ZF (vw).b:(vw).b b オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします b b b Z * 4 ZF (DE).b:(DE).b レジスタペア DE で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします b b b Z * 4 ZF (HL).b:(HL).b レジスタペア HL で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします b b b Z * 4 ZF (IX).b:(IX).b インデックスレジスタ IX で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします b b b Z * 4 ZF (IY).b:(IY).b インデックスレジスタ IY で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします d d d d d d d d b b b Z * 6 ZF (IX+d).b:(IX+d).b インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします d d d d d d d d b b b Z * 6 ZF (IY+d).b:(IY+d).b インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします d d d d d d d d b b b Z * 6 ZF (SP+d).b:(SP+d).b スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします d d d d d d d d b b b Z * 6 ZF (HL+d).b:(HL+d).b レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします b b b Z * 6 ZF (HL+C).b:(HL+C).b レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします b b b Z * 5 SP SP+:ZF (SP).b:(SP).b スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします b b b Z * 6 ZF (PC+A).b:(PC+A).b プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします x x x x x x x x Z * 5 ZF (x).a:(x).a オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします w w w w w w w w v v v v v v v v Z * 6 ZF (vw).a:(vw).a オブジェクトコード中の vw で直接指定されるアドレス (x ~ xff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします RA Page 46

49 TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション Z * 4 ZF (DE).A:(DE).A CLR (DE).A レジスタペア DE で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします Z * 4 ZF (HL).A:(HL).A CLR (HL).A レジスタペア HL で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします Z * 4 ZF (IX).A:(IX).A CLR (IX).A インデックスレジスタ IX で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします Z * 4 ZF (IY).A:(IY).A CLR (IY).A インデックスレジスタ IY で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします d d d d d d d d Z * 6 ZF (IX+d).A:(IX+d).A CLR (IX+d).A インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします d d d d d d d d Z * 6 ZF (IY+d).A:(IY+d).A CLR (IY+d).A インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします d d d d d d d d Z * 6 ZF (SP+d).A:(SP+d).A CLR (SP+d).A スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします d d d d d d d d Z * 6 ZF (HL+d).A:(HL+d).A CLR (HL+d).A レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします Z * 6 ZF (HL+C).A:(HL+C).A CLR (HL+C).A レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします Z * 5 SP SP+:ZF (SP).A:(SP).A CLR (+SP).A SP レジスタペアの内容をインクリメントし その値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします Z * 6 ZF (PC+A).A:(PC+A).A CLR (PC+A).A プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を にクリアします LD CF,g.b LD CF,(x).b LD CF,(vw).b LD CF,(DE).b LD CF,(HL).b LD CF,(IX).b LD CF,(IY).b LD CF,(IX+d).b LD CF,(IY+d).b LD CF,(SP+d).b LD CF,(HL+d).b LD CF,(HL+C).b LD CF,(+SP).b g g g b b b C * 2 CF g.b 8 ビットレジスタ g の オブジェクトコード中の b で指定されるビットの内容をキャリーフラグに入れます 例 : A = y のとき LD CF, A.4 命令を実行すると CF =, JF = となります b b b x x x x x x x x C * 3 CF (x).b オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の オブジェクトコード中の b で指定されるビットの内容を キャリーフラグにロードします w w w w w w w w v v v v v v v v C * 5 CF (vw).b b b b オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の オブジェクトコード中の b で指定されるビットの内容 をキャリーフラグにロードします b b b C * 3 CF (DE).b レジスタペア DE で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします b b b C * 3 CF (HL).b レジスタペア HL で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします b b b C * 3 CF (IX).b インデックスレジスタ IX で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします b b b C * 3 CF (IY).b インデックスレジスタ IY で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします d d d d d d d d b b b C * 5 CF (IX+d).b インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします d d d d d d d d b b b C * 5 CF (IY+d).b インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします d d d d d d d d b b b C * 5 CF (SP+d).b スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします d d d d d d d d b b b C * 5 CF (HL+d).b レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします b b b C * 5 CF (HL+C).b レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします b b b C * 4 SP SP+:CF (SP).b スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容をキャリーフラグにロードします RA Page 47

50 2.4 ビット操作 フラグ操作 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグサイクル オペレーション b b b C * 5 CF (PC+A).b LD CF,(PC+A).b プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定 されるビットの内容をキャリーフラグにロードします x x x x x x x x C * 4 CF (x).a LD CF,(x).A オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容を キャリーフラグにロードします w w w w w w w w v v v v v v v v C * 5 CF (vw).a LD CF,(vw).A オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容 をキャリーフラグにロードします LD CF,(DE).A C * 3 CF (DE).A レジスタペア DE で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容をキャリーフラグにロードします LD CF,(HL).A C * 3 CF (HL).A レジスタペア HL で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容をキャリーフラグにロードします LD CF,(IX).A C * 3 CF (IX).A インデックスレジスタ IX で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容をキャリーフラグにロードします LD CF,(IY).A C * 3 CF (IY).A インデックスレジスタ IY で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容をキャリーフラグにロードします d d d d d d d d C * 5 CF (IX+d).A LD CF,(IX+d).A インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジス タの下位 3 ビットで指定されるビットの内容をキャリーフラグにロードします d d d d d d d d C * 5 CF (IY+d).A LD CF,(IY+d).A インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジス タの下位 3 ビットで指定されるビットの内容をキャリーフラグにロードします d d d d d d d d C * 5 CF (SP+d).A LD CF,(SP+d).A スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの 下位 3 ビットで指定されるビットの内容をキャリーフラグにロードします d d d d d d d d C * 5 CF (HL+d).A LD CF,(HL+d).A レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容をキャリーフラグにロードします C * 5 CF (HL+C).A LD CF,(HL+C).A レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定される ビットの内容をキャリーフラグにロードします C * 4 SP SP+:CF (SP).A LD CF,(+SP).A スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容を キャリーフラグにロードします C * 5 CF (PC+A).A LD CF,(PC+A).A プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定さ れるビットの内容をキャリーフラグにロードします TEST g.b # 8 ビットレジスタ g の オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます g g g b b b * J 2 JF g.b 例 : A = y のとき TEST A. 5 命令を実行すると JF =, CF = となります TEST (x).b # b b b x x x x x x x x * J 3 JF (x).b オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (vw).b # b b w w w w w w w w v v v v v v v v * J 5 JF (vw).b b オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の内容の オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます b b b * J 3 JF (DE).b TEST (DE).b # レジスタペア DE で指定されるアドレスの内容の オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます b b b * J 3 JF (HL).b TEST (HL).b # レジスタペア HL で指定されるアドレスの内容の オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます b b b * J 3 JF (IX).b TEST (IX).b # インデックスレジスタ IX で指定されるアドレスの内容の オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (IY).b # b b b * J 3 JF (IY).b インデックスレジスタ IY で指定されるアドレスの内容の オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (IX+d).b # d d d d d d d d b b b * J 5 JF (IX+d).b インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (IY+d).b # d d d d d d d d b b b * J 5 JF (IY+d).b インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます RA Page 48

51 TLCS-87/C ニモニックオブジェクトコード (2 進 ) TEST (SP+d).b # d d d d d d d d b b b * J 5 JF (SP+d).b スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (HL+d).b # d d d d d d d d b b b * J 5 JF (HL+d).b レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (HL+C).b # b b b * J 5 JF (HL+C).b レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの反転値をジャンプステータスフラグに入れます TEST (+SP).b # b b b * J 4 SP SP+:JF (SP).b スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (PC+A).b # b b b * J 5 JF (PC+A).b プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (x).a # x x x x x x x x * J 4 JF (x).a オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (vw).a # w w w w w w w w v v v v v v v v * J 5 JF (vw).a オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の内容の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます * J 3 JF (DE).A TEST (DE).A # レジスタペア DE で指定されるアドレスの内容の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます * J 3 JF (HL).A TEST (HL).A # レジスタペア HL で指定されるアドレスの内容の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます * J 3 JF (IX).A TEST (IX).A # インデックスレジスタ IX で指定されるアドレスの内容の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (IY).A # * J 3 JF (IY).A インデックスレジスタ IY で指定されるアドレスの内容の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (IX+d).A # d d d d d d d d * J 5 JF (IX+d).A インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (IY+d).A # d d d d d d d d * J 5 JF (IY+d).A インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (SP+d).A # d d d d d d d d * J 5 JF (SP+d).A スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (HL+d).A # d d d d d d d d * J 5 JF (HL+d).A レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます TEST (HL+C).A # * J 5 JF (HL+C).A レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの反転値をジャンプステータスフラグに入れます TEST (+SP).A # * J 4 SP SP+:JF (SP).A スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をジャンプステータスフラグにいれます TEST (PC+A).A # LD g.b,cf LD (x).b,cf LD (vw).b,cf LD (DE).b,CF LD (HL).b,CF * J 5 JF (PC+A).A プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をジャンプステータスフラグに入れます g g g b b b 2 g.b CF 8 ビットレジスタ g の オブジェクトコード中の b で指定されるビットにキャリーフラグの内容を入れます 例 : A = x5, CF = のとき LD A.5, CF 命令を実行すると A = x35, CF = となります 例 2: B = x7e, CF = のとき LD B.2, CF 命令を実行すると B = x7a, CF = となります x x x x x x x x b b b 5 (x).b CF オブジェクトコード中の x で指定されるアドレス (x ~ xff 番地 ) の オブジェクトコード中の b で指定されるビットにキャリーフラグの内容をストアします b b b フラグサイクル w w w w w w w w v v v v v v v v 6 (vw).b CF オペレーション オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の オブジェクトコード中の b で指定されるビットにキャリーフラグの内容をストアします b b b 4 (DE).b CF レジスタペア DE で指定されるアドレスの オブジェクトコード中の b で指定されるビットにキャリーフラグの内容をストアします b b b 4 (HL).b CF レジスタペア HL で指定されるアドレスの オブジェクトコード中の b で指定されるビットにキャリーフラグの内容をストアします RA Page 49

52 2.4 ビット操作 フラグ操作 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグサイクル オペレーション LD (IX).b,CF b b b 4 (IX).b CF インデックスレジスタ IX で指定されるアドレスの オブジェクトコード中の b で指定されるビットにキャリーフラグの内容をストアします LD (IY).b,CF b b b 4 (IY).b CF インデックスレジスタ IY で指定されるアドレスの オブジェクトコード中の b で指定されるビットにキャリーフラグの内容をストアします d d d d d d d d b b b 6 (IX+d).b CF LD (IX+d).b,CF インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェ クトコード中の b で指定されるビットにキャリーフラグの内容をストアします d d d d d d d d b b b 6 (IY+d).b CF LD (IY+d).b,CF インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェ クトコード中の b で指定されるビットにキャリーフラグの内容をストアします d d d d d d d d b b b 6 (SP+d).b CF LD (SP+d).b,CF スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクト コード中の b で指定されるビットにキャリーフラグの内容をストアします d d d d d d d d b b b 6 (HL+d).b CF LD (HL+d).b,CF レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコー ド中の b で指定されるビットにキャリーフラグの内容をストアします b b b 6 (HL+C).b CF LD (HL+C).b,CF レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定される ビットにキャリーフラグの内容をストアします b b b 5 SP SP+:(SP).b CF LD (+SP).b,CF スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの オブジェクトコードの b で指定されるビットにキャリー フラグの内容をストアします b b b 6 (PC+A).b CF LD (PC+A).b,CF プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定 されるビットにキャリーフラグの内容をストアします x x x x x x x x 5 (x).a CF LD (x).a,cf オブジェクトコード中の x で指定されるアドレス (x ~ xff 番地 ) の A レジスタの下位 3 ビットで指定されるビットにキャリーフ ラグの内容をストアします w w w w w w w w v v v v v v v v 6 (vw).a CF LD (vw).a,cf オブジェクトコード中の vw で直接指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットにキャリーフラグの内容をストア します LD (DE).A,CF 4 (DE).A CF レジスタペア DE で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットにキャリーフラグの内容をストアします LD (HL).A,CF 4 (HL).A CF レジスタペア HL で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットにキャリーフラグの内容をストアします LD (IX).A,CF 4 (IX).A CF インデックスレジスタ IX で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットにキャリーフラグの内容をストアします LD (IY).A,CF 4 (IY).A CF インデックスレジスタ IY で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットにキャリーフラグの内容をストアします d d d d d d d d 6 (IX+d).A CF LD (IX+d).A,CF インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジス タの下位 3 ビットで指定されるビットにキャリーフラグの内容をストアします d d d d d d d d 6 (IY+d).A CF LD (IY+d).A,CF インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジス タの下位 3 ビットで指定されるビットにキャリーフラグの内容をストアします d d d d d d d d 6 (SP+d).A CF LD (SP+d).A,CF スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの 下位 3 ビットで指定されるビットにキャリーフラグの内容をストアします d d d d d d d d 6 (HL+d).A CF LD (HL+d).A,CF レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットにキャリーフラグの内容をストアします 6 (HL+C).A CF LD (HL+C).A,CF レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定される ビットにキャリーフラグの内容をストアします 5 SP SP+:(SP).A CF LD (+SP).A,CF スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットにキャ リーフラグの内容をストアします 6 (PC+A).A CF LD (PC+A).A,CF プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定さ れるビットにキャリーフラグの内容をストアします g g g b b b Z * 3 ZF g.b:g.b g.b CPL g.b CPL (x).b CPL (vw).b 8 ビットレジスタ g の オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します 例 : A = x3c のとき CPL A.3 命令を実行すると ZF =, A = x34 となります x x x x x x x x b b b Z * 5 ZF (x).b:(x).b (x).b オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容の 反転値をゼロフラグに入れた後 そのビットの内容を反転します w w w w w w w w v v v v v v v v Z * 6 ZF (vw).b:(vw).b (vw).b b b b オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します RA Page 5

53 TLCS-87/C ニモニックオブジェクトコード (2 進 ) CPL (DE).b CPL (HL).b CPL (IX).b CPL (IY).b CPL (IX+d).b CPL (IY+d).b CPL (SP+d).b CPL (HL+d).b CPL (HL+C).b CPL (+SP).b CPL (PC+A).b CPL (x).a CPL (vw).a CPL (DE).A CPL (HL).A CPL (IX).A CPL (IY).A CPL (IX+d).A CPL (IY+d).A CPL (SP+d).A CPL (HL+d).A CPL (HL+C).A CPL (+SP).A CPL (PC+A).A フラグサイクル オペレーション b b b Z * 4 ZF (DE).b:(DE).b (DE).b レジスタペア DE で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します b b b Z * 4 ZF (HL).b:(HL).b (HL).b レジスタペア HL で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します b b b Z * 4 ZF (IX).b:(IX).b (IX).b インデックスレジスタ IX で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します b b b Z * 4 ZF (IY).b:(IY).b (IY).b インデックスレジスタ IY で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します d d d d d d d d b b b Z * 6 ZF (IX+d).b:(IX+d).b (IX+d).b インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容を反転します d d d d d d d d b b b Z * 6 ZF (IY+d).b:(IY+d).b (IY+d).b インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容を反転します d d d d d d d d b b b Z * 6 ZF (SP+d).b:(SP+d).b (SP+d).b スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容を反転します d d d d d d d d b b b Z * 6 ZF (HL+d).b:(HL+d).b (HL+d).b レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容を反転します b b b Z * 6 ZF (HL+C).b:(HL+C).b (HL+C).b レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容を反転します b b b Z * 5 SP SP+:ZF (SP).b:(SP).b (SP).b スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容を反転します b b b Z * 6 ZF (PC+A).b:(PC+A).b (PC+A).b プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容を反転します x x x x x x x x Z * 5 ZF (x).a:(x).a (x).a オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容の 反転値をゼロフラグに入れた後 そのビットの内容を反転します w w w w w w w w v v v v v v v v Z * 6 ZF (vw).a:(vw).a (vw).a オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します Z * 4 ZF (DE).A:(DE).A (DE).A レジスタペア DE で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します Z * 4 ZF (HL).A:(HL).A (HL).A レジスタペア HL で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します Z * 4 ZF (IX).A:(IX).A (IX).A インデックスレジスタ IX で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します Z * 4 ZF (IY).A:(IY).A (IY).A インデックスレジスタ IY で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容の反転値をゼロフラグに入れた後 そのビットの内容を反転します d d d d d d d d Z * 6 ZF (IX+d).A:(IX+d).A (IX+d).A インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容を反転します d d d d d d d d Z * 6 ZF (IY+d).A:(IY+d).A (IY+d).A インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容を反転します d d d d d d d d Z * 6 ZF (SP+d).A:(SP+d).A (SP+d).A スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容を反転します d d d d d d d d Z * 6 ZF (HL+d).A:(HL+d).A (HL+d).A レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容を反転します Z * 6 ZF (HL+C).A:(HL+C).A (HL+C).A レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容を反転します Z * 5 SP SP+:ZF (SP).A:(SP).A (SP).A スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容を反転します Z * 6 ZF (PC+A).A:(PC+A).A (PC+A).A プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの A レジスタの下位 3 ビットで指定されるビットの内容を反転します RA Page 5

54 2.4 ビット操作 フラグ操作 TLCS-87/C ニモニックオブジェクトコード (2 進 ) XOR CF,g.b XOR CF,(x).b XOR CF,(vw).b XOR CF,(DE).b XOR CF,(HL).b XOR CF,(IX).b XOR CF,(IY).b XOR CF,(IX+d).b XOR CF,(IY+d).b g g g b b b C * 2 CF CF ^ g.b 8 ビットレジスタ g の オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和をとり 結果をキャリーフラグに入れます 例 : A = x5b, CF = のとき XOR CF, A.3 命令を実行すると A = x5b, CF =, JF = となります x x x x x x x x b b b C * 4 CF CF ^ (x).b オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) の オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます w w w w w w w w v v v v v v v v C * CF CF ^ (vw).b 5 b b b オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) の オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます b b b C * 3 CF CF ^ (DE).b レジスタペア DE で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます b b b C * 3 CF CF ^ (HL).b レジスタペア HL で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます b b b C * 3 CF CF ^ (IX).b インデックスレジスタ IX で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます b b b C * 3 CF CF ^ (IY).b インデックスレジスタ IY で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます d d d d d d d d b b b C * 5 CF CF ^ (IX+d).b インデックスレジスタ IX の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます d d d d d d d d b b b C * 5 CF CF ^ (IY+d).b インデックスレジスタ IY の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます d d d d d d d d b b b C * 5 CF CF ^ (SP+d).b XOR CF,(SP+d).b スタックポインタ SP の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます d d d d d d d d b b b C * 5 CF CF ^ (HL+d).b XOR CF,(HL+d).b レジスタペア HL の内容にオブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます XOR CF,(HL+C).b XOR CF,(+SP).b XOR CF,(PC+A).b SET CF CLR CF CPL CF b b b C * 5 CF CF ^ (HL+C).b レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます b b b C * 4 SP SP+:CF CF ^ (SP).b スタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます b b b C * 5 CF CF ^ (PC+A).b プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの オブジェクトコード中の b で指定されるビットの内容とキャリーフラグの内容とで排他的論理和を取り 結果をキャリーフラグに入れます CF キャリーフラグを にセットします CF キャリーフラグを にクリアします * * JF CF:CF CF キャリーフラグの内容をジャンプステータスフラグに入れた後 キャリーフラグの内容を反転します 例 : CF = で この命令を実行すると JF =, CF = となります DI # Z * 4 ZF IMF:IMF 割り込みマスタ許可フラグの内容の反転値をゼロフラグに入れた後 割り込みマスタ許可フラグを にクリアします ( マスカブル割り込みの受け付けを禁止します ) EI # Z * 4 ZF IMF:IMF 割り込みマスタ許可フラグの内容の反転値をゼロフラグに入れた後 割り込みマスタ許可フラグを にセットします ( マスカブル割り込みの受け付けを許可します ) # アセンブラ用拡張命令 フラグサイクル オペレーション ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 52

55 TLCS-87/C 2.5 ジャンプ フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション d d d d d 4/2(t/f) if JF= the PC PC+d else ull ジャンプステータスフラグが のとき プログラムカウンタ PC の内容 (JRS 命令の置かれているアドレスの 2 番地先を示しています ) に オブジェクトコード中の 5 ビットディスプレースメント d を符号拡張して ( 6~+5) 加算した値で指定されるアドレスにジャンプします (4 サイクル JRS T,$+2+d 命令 ) ジャンプステータスフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (2 サイクル命令 ) 例 : ジャンプステータスフラグが のとき xc34 番地に置かれた JRS T, $+9 命令を実行すると xc3d 番地にジャンプします d d d d d 4/2(t/f) if JF= the PC PC+d else ull ジャンプステータスフラグが のとき プログラムカウンタ PC の内容に オブジェクトコード中の 5 ビットディスプレースメント d を符号拡 JRS F,$+2+d 張して ( 6~+5) 加算した値で指定されるアドレスにジャンプします (4 サイクル ) ジャンプステータスフラグが のときは 何もせず次命令の実行に移ります (2 サイクル ) d d d d d d d d 4/2(t/f) if JF= the PC PC+d else ull ジャンプステータスフラグが のとき プログラムカウンタ PC の内容 (JR 命令の置かれているアドレスの 2 番地先を示しています ) に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (4 サイク JR T,$+2+d ル ) ジャンプステータスフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (2 サイクル ) 例 : ジャンプステータスフラグが のとき xc34 番地に置かれた JR T, $+xf6 命令を実行すると xc2a 番地にジャンプします d d d d d d d d 4/2(t/f) if JF= the PC PC+d else ull ジャンプステータスフラグが のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号 JR F,$+2+d 拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (4 サイクル ) ジャンプステータスフラグが のときは 何もせず次命令の実行に移ります (2 サイクル ) d d d d d d d d 4/2(t/f) if ZF= the PC PC+d else ull JR EQ,$+2+d ゼロフラグが のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( または 28~+27) 加算した値で指定されるアドレスにジャンプします (4 サイクル ) JR Z,$+2+d ゼロフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (2 サイクル ) JR NE,$+2+d または JR NZ,$+2+d JR CS,$+2+d または JR LT,$+2+d JR CC,$+2+d または JR GE,$+2+d JR LE,$+2+d JR GT,$+2+d JR M,$+3+d JR P,$+3+d JR SLT,$+3+d JR SGE,$+3+d JR SLE,$+3+d JR SGT,$+3+d d d d d d d d d 4/2(t/f) if ZF= the PC PC+d else ull ゼロフラグが のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (4 サイクル ) ゼロフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (2 サイクル ) d d d d d d d d 4/2(t/f) if CF= the PC PC+d else ull キャリーフラグが のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (4 サイクル ) キャリーフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (2 サイクル ) d d d d d d d d 4/2(t/f) if CF= the PC PC+d else ull キャリーフラグが のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (4 サイクル ) キャリーフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (2 サイクル ) d d d d d d d d 4/2(t/f) if (CF ZF)= the PC PC+d else ull キャリーフラグまたはゼロフラグが のとき プログラムカウンタ PC の内容にオブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (4 サイクル ) キャリーフラグとゼロフラグがともに のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (2 サイクル ) d d d d d d d d 4/2(t/f) if (CF ZF)= the PC PC+d else ull キャリーフラグとゼロフラグがともに のとき プログラムカウンタ PC の内容にオブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (4 サイクル ) キャリーフラグまたはゼロフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (2 サイクル ) d d d d d d d d 5/3(t/f) if SF= the PC PC+d else ull サインフラグが のとき プログラムカウンタ PC の内容 (JR 命令の置かれているアドレスの 3 番地先を示しています ) に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (5 サイクル ) サインフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (3 サイクル ) d d d d d d d d 5/3(t/f) if SF= the PC PC+d else ull サインフラグが のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (5 サイクル ) サインフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (3 サイクル ) d d d d d d d d 5/3(t/f) if (SF ^ VF)= the PC PC+d else ull サインとオーバフローフラグの排他的論理和の結果が のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (5 サイクル ) サインとオーバフローフラグの排他的論理和の結果が のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (3 サイクル ) d d d d d d d d 5/3(t/f) if (SF ^ VF)= the PC PC+d else ull サインとオーバフローフラグの排他的論理和の結果が のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (5 サイクル ) サインとオーバフローフラグの排他的論理和の結果が のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (3 サイクル ) d d d d d d d d 5/3(t/f) if ZF (SF ^ VF)= the PC PC+d else ull サインとオーバフローフラグの排他的論理和の結果またはゼロフラグの内容が のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (5 サイクル ) サインとオーバフローフラグの排他的論理和の結果およびゼロフラグの内容がともに のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (3 サイクル ) d d d d d d d d 5/3(t/f) if ZF (SF ^ VF)= the PC PC+d else ull サインとオーバフローフラグの排他的論理和の結果およびゼロフラグの内容がともに のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスにジャンプします (5 サイクル ) サインとオーバフローフラグの排他的論理和の結果またはゼロフラグの内容が のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (3 サイクル ) RA Page 53

56 2.5 ジャンプ TLCS-87/C フラグニモニックオブジェクトコード (2 進 ) サイクルオペレーション d d d d d d d d 5/3(t/f) if VF= the PC PC+d else ull オーバフローフラグが のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して JR VS,$+3+d ( 28~+27) 加算した値で指定されるアドレスにジャンプします (5 サイクル ) オーバフローフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (3 サイクル ) d d d d d d d d 5/3(t/f) if VF= the PC PC+d else ull オーバフローフラグが のとき プログラムカウンタ PC の内容に オブジェクトコード中の 8 ビットディスプレースメント d を符号拡張して JR VC,$+3+d ( 28~+27) 加算した値で指定されるアドレスにジャンプします (5 サイクル ) オーバフローフラグが のときは ジャンプステータスフラグを にセットし 次命令の実行に移ります (3 サイクル ) d d d d d d d d 4 PC PC+d プログラムカウンタ PC の内容 (JR 命令の置かれているアドレスの 2 番地先を示しています ) に オブジェクトコード中の 8 ビットディスプレー JR $+2+d スメント d を符号拡張して ( 28~+27) 加算した値で指定されるアドレスに無条件にジャンプします 例 : xd5a7 番地に置かれた JR $+x73 命令を実行すると xd6c 番地にジャンプします m m m m m m m m 4 PC m JP m オブジェクトコード中の 6 ビットデータ m で直接指定されるアドレスに無条件にジャンプします g g g 3 PC gg JP gg 6 ビットレジスタ gg で指定されるアドレスに無条件にジャンプします 例 : HL = xe325 のとき JP HL 命令を実行すると xe325 番地にジャンプします x x x x x x x x 6 PC (x+,x) JP (x) オブジェクトコード中の x で直接指定されるアドレス (x ~ xff 番地 ) から連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします 例 : x85, x86 番地の内容がそれぞれ x27, xc3 のとき JP (x85) 命令を実行すると xc327 番地にジャンプします JP (vw) JP (DE) JP (HL) JP (IX) JP (IY) JP (IX+d) JP (IY+d) JP (SP+d) JP (HL+d) JP (HL+C) JP (+SP) JP (PC+A) ) w w w w w w w w v v v v v v v v 7 PC (vw+,vw) オブジェクトコード中の vw で直接指定されるアドレス (x ~ xffff 番地 ) から連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします 5 PC (DE+,DE) レジスタペア DE で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします 例 : DE = x25 で x25, x26 番地の内容がそれぞれ x87, xe5 のとき JP (DE) 命令を実行すると xe587 番地にジャンプします 5 PC (HL+,HL) レジスタペア HL で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします 例 : HL= x25 で x25, x26 番地の内容がそれぞれ x87, xe5 のとき JP (HL) 命令を実行すると xe587 番地にジャンプします 5 PC (IX+,IX) インデックスレジスタ IX で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします 例 : IX = x25 で x25, x26 番地の内容がそれぞれ x87, xe5 のとき JP (IX) 命令を実行すると xe587 番地にジャンプします 5 PC (IY+,IY) インデックスレジスタ IY で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします 例 : IY = x25 で x25, x26 番地の内容がそれぞれ x87, xe5 のとき JP (IY) 命令を実行すると xe587 番地にジャンプします d d d d d d d d 7 PC (IX+d+,IX+d) インデックスレジスタ IX の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします d d d d d d d d 7 PC (IY+d+,IY+d) インデックスレジスタ IY の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします d d d d d d d d 7 PC (SP+d+,SP+d) スタックポインタ SP の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします d d d d d d d d 7 PC (HL+d+,HL+d) レジスタペア HL の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします 7 PC (HL+C+,HL+C) レジスタペア HL の内容に C レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに無条件にジャンプします 6 SP SP+:PC (SP+,SP) スタックポインタ SP をインクリメントし その値で指定されるアドレスから連続する 2 バイトのメモリに格納されているアドレスに 無条件にジャンプします 7 PC (PC+A+,PC+A) プログラムカウンタ PC の内容 (JP 命令の置かれているアドレスの 2 番地先を示しています ) に A レジスタの内容を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのプログラムメモリに格納されているアドレスに無条件にジャンプします この命令は 多方向分岐処理に適しています (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 54

57 TLCS-87/C 2.6 サブルーチンコール リターン ソフトウエア割り込み ノーオペレーション ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション 7 (SP,SP-) NxtOp:SP SP-2: PC ( 2+ ベクタコール領域の先頭アドレス値 +, 2+ ベクタコール領域の先頭アドレス値 ) ベクタ方式のサブルーチンコールを行います 戻り番地 NxtOp(CALLV 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順に CALLV スタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 オブジェクトコード中の 4 ビット即値 (~5) を 2 倍した値にベクタコール領域の先頭アドレス値を加えた値で指定されるアドレスから 連続する 2 バイトのプログラムメモリの内容 ( ベクタ ) をプログラムカウンタ PC に入れます この命令は プログラムの圧縮に便利です 例 : SP = x23 で 4 2+ ベクタコール領域の先頭アドレス値 +,4 2+ ベクタコール領域の先頭アドレス値の内容がそれぞれ x45, xe6 のとき xda4 番地に置かれた CALLV 4H 命令を実行すると x23, x22 番地にそれぞれ xd, xa5 が書き込まれ SP = x2 となり xe645 番地をコールします m m m m m m m m 6 (SP,SP-) NxtOp:SP SP-2: PC m アブソリュート方式のサブルーチンコールを行います 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイト CALL m の順にスタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 オブジェクトコード中の 6 ビット絶対アドレス m をプログラムカウンタ PC に入れます 例 : SP = x38 のとき xe273 番地に置かれた CALL xce5 命令を実行すると x38, x37 番地にそれぞれ xe2, x76 が書き込 まれ SP = x36 となり xce5 番地をコールします g g g 6 (SP,SP-) NxtOp:SP SP-2: PC gg 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスの CALL gg データメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 6 ビットレジスタ gg の内容をプログラムカ ウンタ PC に入れます 例 : SP = x26, HL = xc8a7 のとき xd49 番地に置かれた CALL HL 命令を実行すると x26, x25 番地にそれぞれ xd4, x93 が書き込まれ SP = x24 となり xc8a7 番地をコールします x x x x x x x x 8 (SP,SP-) NxtOp:SP SP-2: PC (x+,x) CALL (x) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 オブジェクトコード中の x で直接指定される アドレス (x ~ xff 番地 ) から連続する 2 バイトのメモリ内容 ( サブルーチンのエントリーアドレス ) をプログラムカウンタ PC に 入れます w w w w w w w w v v v v v v v v 9 (SP,SP-) NxtOp:SP SP-2: PC (vw+,vw) CALL (vw) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスの データメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 オブジェクトコード中の vw で直接指定され るアドレス (x ~ xffff 番地 ) から連続する 2 バイトのメモリ内容をプログラムカウンタ PC に入れます 7 (SP,SP-) NxtOp:SP SP-2: PC (DE+,DE) CALL (DE) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスの データメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 レジスタペア DE の内容で指定されるアドレ スから連続する 2 バイトのメモリ内容をプログラムカウンタ PC に入れます 7 (SP,SP-) NxtOp:SP SP-2: PC (HL+,HL) CALL (HL) CALL (IX) CALL (IY) CALL (IX+d) CALL (IY+d) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 レジスタペア HL の内容で指定されるアドレスから連続する 2 バイトのメモリ内容をプログラムカウンタ PC に入れます 7 (SP,SP-) NxtOp:SP SP-2: PC (IX+,IX) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 インデックスレジスタ IX の内容で指定されるアドレスから連続する 2 バイトのメモリ内容をプログラムカウンタ PC に入れます 7 (SP,SP-) NxtOp:SP SP-2: PC (IY+,IY) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 インデックスレジスタ IY の内容で指定されるアドレスから連続する 2 バイトのメモリ内容をプログラムカウンタ PC に入れます d d d d d d d d 9 (SP,SP-) NxtOp:SP SP-2: PC (IX+d+,IX+d) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 インデックスレジスタ IX の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容をプログラムカウンタ PC に入れます d d d d d d d d 9 (SP,SP-) NxtOp:SP SP-2: PC (IY+d+,IY+d) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 インデックスレジスタ IY の内容に オブジェクトコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容をプログラムカウンタ PC に入れます RA Page 55

58 2.6 サブルーチンコール リターン ソフトウエア割り込み ノーオペレーション TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション d d d d d d d d 9 (SP,SP-) NxtOp:SP SP-2: PC (SP+d+,SP+d) CALL (SP+d) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 スタックポインタ SP の内容に オブジェク トコード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容をプログラムカウンタ PC に入れます d d d d d d d d 9 (SP,SP-) NxtOp:SP SP-2: 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスの CALL (HL+d) データメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 レジスタペア HL の内容に オブジェクト コード中の 8 ビットデータ d を符号拡張して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容をプログラムカウンタ PC に入れます 8 SP SP+:(SP-) NxtOp L : PC L (SP):(SP) NxtOp H : PC H (SP+):SP SP-2 CALL (+SP) スタックポインタ SP の内容をインクリメントします 次に 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) の下位バイトをス タックポインタ SP の内容 - で指定されるアドレスのメモリにセーブし スタックポインタ SP の内容で指定されるアドレスのメモリの内 容をプログラムカウンタ PC の下位バイトに入れます さらに 戻り番地 NxtOP(CALL 命令の次の命令の先頭アドレス ) の上位バイトをス タックポインタ SP の内容で指定されるアドレスのメモリにセーブし スタックポインタ SP+ の内容で指定されるアドレスのメモリの内 容をプログラムカウンタ PC の上位バイトに入れます その後 スタックポインタ SP の内容を 2 回デクリメントします 9 (SP,SP-) NxtOp:SP SP-2: PC (HL+C+,HL+C) CALL (HL+C) 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 レジスタペア HL の内容に C レジスタの内容 を符号拡張 ( 最上位ビットが符号ビットです ) して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容をプログラムカウ ンタ PC に入れます 9 (SP,SP-) NxtOp:SP SP-2: 戻り番地 NxtOp(CALL 命令の次の命令の先頭アドレス ) を上位バイト 下位バイトの順にスタックポインタ SP で指定されるアドレスの CALL (PC+A) データメモリにセーブし スタックポインタ SP の内容を 2 回デクリメントします その後 プログラムカウンタ PC の内容に A レジスタ の内容を符号拡張 ( 最上位ビットが符号ビットです ) して加算した値で指定されるアドレスから連続する 2 バイトのメモリ内容をプログラ ムカウンタ PC に入れます 6 SP SP+2:PC (SP,SP-) サブルーチンからのリターンを行います すなわち スタックポインタ SP の内容を 2 回インクリメントし その値で指定されるアドレス RET のデータメモリ内容 ( 戻り番地 ) を下位バイト 上位バイトの順にプログラムカウンタ PC にロードします 例 : SP = x23 で x24, x25 番地の内容がそれぞれ x3e, xc8 のとき この命令を実行すると SP = x25 となり xc83e 番 地にジャンプします * * * * * * 6 SP SP+2:PC (SP,SP-): SP SP+:PSW (SP): IMF (SP). RETI マスカブル割り込みサービスルーチンからのリターンを行います すなわち スタックポインタ SP の内容を 2 回インクリメントし その 値で指定されるアドレスのデータメモリ内容 ( 戻り番地 ) をプログラムカウンタ PC に入れます その後 さらにスタックポインタ SP の 内容をインクリメントし その値で指定されるアドレスのメモリ内容をプログラムステータスワード PSW および割り込みマスタ許可フラ グ IMF に入れます ( ビット 7~ が PSW に ビット が IMF に入ります ) * * * * * * 7 SP SP+2:PC (SP,SP-): SP SP+:PSW (SP): IMF (SP). RETN ノンマスカブル割り込みサービスルーチンからのリターンを行います すなわち スタックポインタ SP の内容を 2 回インクリメントし その値で指定されるアドレスのデータメモリ内容 ( 戻り番地 ) をプログラムカウンタ PC に入れます その後 さらにスタックポインタ SP の内容をインクリメントし その値で指定されるアドレスの内容をプログラムステータスワード PSW および割り込みマスタ許可フラグ IMF に入れます ( ビット 7~ が PSW に ビット が IMF に入ります ) 9 (SP) PSW:(SP). IMF: (SP-,SP-2) NxtOp: PC (SWI ベクタアドレス +,SWI ベクタアドレス ) ソフトウエア割り込みを行います すなわち プログラムステータスワード PSW および割り込みマスタ許可フラグ IMF の内容をスタック ポインタ SP の内容で指定されるアドレスのデータメモリにセーブし (PSW の内容がメモリのビット 7~ に IMF の内容がメモリのビット SWI にセーブされます ) スタックポインタ SP の内容をデクリメントします 次に戻り番地 NxtOp(SWI 命令の次の命令の先頭アドレス ) を 上位バイト 下位バイトの順にスタックポインタ SP の内容で指定されるアドレスのデータメモリにセーブし スタックポインタ SP の内 容をさらに 2 回デクリメントします 割り込みマスタ許可フラグ IMF は にクリアされます その後 SWI ベクタアドレスと SWI ベク タアドレス + のプログラムメモリの内容 ( ベクタ ) をプログラムカウンタ PC に入れます 例 : SP = x28, PSW = x46 で SWI ベクタアドレスと SWI ベクタアドレス + の内容がそれぞれ x3, xe7 のとき xca74 番地に置 かれた SWI 命令を実行すると x28, x27, x26 番地にそれぞれ x46, x75, xca が書き込まれ SP = x25, IMF = となり xe73 番地にジャンプします NOP o Operatio ノーオペレーション ( 何も実行せず 次の命令の実行に移ります ) ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 56

59 TLCS-87/C 第 3 章 TLCS-87/C 命令一覧 3. 転送 交換 ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション LD A,r r r r Z A r LD r,a r r r Z r A LD r,g g g g r r r Z 2 r g LD rr,gg g g g r r r 2 rr gg LD A,(x) x x x x x x x x Z 3 A (x) LD A,(HL) Z 2 A (HL) LD r,(x) x x x x x x x x r r r Z 4 r (x) LD r,(vw) w w w w w w w w v v v v v v v v Z 5 r (vw) r r r LD r,(de) r r r Z 3 r (DE) LD r,(hl) r r r Z 3 r (HL) LD r,(ix) r r r Z 3 r (IX) LD r,(iy) r r r Z 3 r (IY) LD r,(ix+d) d d d d d d d d r r r Z 5 r (IX+d) LD r,(iy+d) d d d d d d d d r r r Z 5 r (IY+d) LD r,(sp+d) d d d d d d d d r r r Z 5 r (SP+d) LD r,(hl+d) d d d d d d d d r r r Z 5 r (HL+d) LD r,(hl+c) r r r Z 5 r (HL+C) LD r,(+sp) r r r Z 4 SP SP+:r (SP) LD r,(pc+a) r r r Z 5 r (PC+A) LD rr,(x) x x x x x x x x r r r 5 rr (x+,x) LD rr,(vw) w w w w w w w w v v v v v v v v 6 rr (vw+,vw) r r r LD rr,(de) r r r 4 rr (DE+,DE) LD rr,(hl) r r r 4 rr (HL+,HL) LD rr,(ix) r r r 4 rr (IX+,IX) LD rr,(iy) r r r 4 rr (IY+,IY) LD rr,(ix+d) d d d d d d d d r r r 6 rr (IX+d+,IX+d) LD rr,(iy+d) d d d d d d d d r r r 6 rr (IY+d+,IY+d) LD rr,(sp+d) d d d d d d d d r r r 6 rr (SP+d+,SP+d) LD rr,(hl+d) d d d d d d d d r r r 6 rr (HL+d+,HL+d) LD rr,(hl+c) r r r 6 rr (HL+C+,HL+C) LD rr,(+sp) r r r 5 SP SP+:rr (SP+,SP) LD rr,(pc+a) r r r 6 rr (PC+A+,PC+A) LD (x),a x x x x x x x x 3 (x) A LD (HL),A 2 (HL) A LD (x),r x x x x x x x x r r r 4 (x) r LD (vw),r w w w w w w w w v v v v v v v v 5 (vw) r r r r LD (DE),r r r r 3 (DE) r LD (HL),r r r r 3 (HL) r LD (IX),r r r r 3 (IX) r LD (IY),r r r r 3 (IY) r LD (IX+d),r d d d d d d d d r r r 4 (IX+d) r LD (IY+d),r d d d d d d d d r r r 4 (IY+d) r LD (SP+d),r d d d d d d d d r r r 4 (SP+d) r LD (HL+d),r d d d d d d d d r r r 4 (HL+d) r LD (HL+C),r r r r 5 (HL+C) r LD (SP ),r r r r 4 (SP) r:sp SP LD (x),rr x x x x x x x x r r r 5 (x+,x) rr LD (vw),rr w w w w w w w w v v v v v v v v 6 (vw+,vw) rr r r r LD (DE),rr r r r 4 (DE+,DE) rr LD (HL),rr r r r 4 (HL+,HL) rr LD (IX),rr r r r 4 (IX+,IX) rr LD (IY),rr r r r 4 (IY+,IY) rr LD (IX+d),rr d d d d d d d d r r r 5 (IX+d+,IX+d) rr LD (IY+d),rr d d d d d d d d r r r 5 (IY+d+,IY+d) rr LD (SP+d),rr d d d d d d d d r r r 5 (SP+d+,SP+d) rr LD (HL+d),rr d d d d d d d d r r r 5 (HL+d+,HL+d) rr LD (HL+C),rr r r r 6 (HL+C+,HL+C) rr LD (SP ),rr r r r 5 (SP+,SP) rr:sp SP RA Page 57

60 第 3 章 TLCS-87/C 命令一覧 3. 転送 交換 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション LD r, r r r 2 r LD rr,m r r r mmmm mmmm 3 rr m LD (x), x x x x x x x x 4 (x) LD (vw), w w w w w w w w v v v v v v v v 6 (vw) LD (DE), 4 (DE) LD (HL), 3 (HL) LD (IX), 4 (IX) LD (IY), 4 (IY) LD (IX+d), d d d d d d d d 5 (IX+d) LD (IY+d), d d d d d d d d 5 (IY+d) LD (SP+d), d d d d d d d d 5 (SP+d) LD (HL+d), d d d d d d d d 5 (HL+d) LD (HL+C), 6 (HL+C) LD (SP ), 5 (SP) :SP SP LDW (x),m x x x x x x x x 6 (x+,x) m mmmm mmmm LDW (HL),m mmmm mmmm 5 (HL+,HL) m PUSH rr # r r 3 (SP, SP ) rr:sp SP 2 PUSH gg #2 g g g 4 (SP, SP ) gg:sp SP 2 POP rr # r r 4 SP SP+2:rr (SP, SP ) POP gg #2 g g g 5 SP SP+2:gg (SP, SP ) PUSH PSW 3 (SP) PSW:SP SP POP PSW * * * * * * 4 SP SP+:PSW (SP) LD PSW, * * * * * * 3 PSW LD RBS, 2 RBS LD RBS, 2 RBS LD SP,SP+d d d d d d d d d 2 SP SP+d LD SP,SP d d d d d d d d d 2 SP SP d XCH r,g g g g r r r Z 3 r g XCH rr,gg g g g r r r 3 rr gg XCH r,(x) x x x x x x x x r r r Z 5 r (x) XCH r,(vw) w w w w w w w w v v v v v v v v Z 6 r (vw) r r r XCH r,(de) r r r Z 4 r (DE) XCH r,(hl) r r r Z 4 r (HL) XCH r,(ix) r r r Z 4 r (IX) XCH r,(iy) r r r Z 4 r (IY) XCH r,(ix+d) d d d d d d d d r r r Z 6 r (IX+d) XCH r,(iy+d) d d d d d d d d r r r Z 6 r (IY+d) XCH r,(sp+d) d d d d d d d d r r r Z 6 r (SP+d) XCH r,(hl+d) d d d d d d d d r r r Z 6 r (HL+d) XCH r,(hl+c) r r r Z 6 r (HL+C) XCH r,(+sp) r r r Z 5 SP SP+:r (SP) XCH r,(pc+a) r r r Z 6 r (PC+A) XCH rr,(x) x x x x x x x x r r r 7 rr (x+,x) XCH rr,(vw) w w w w w w w w v v v v v v v v 8 rr (vw+,vw) r r r XCH rr,(de) r r r 6 rr (DE+,DE) XCH rr,(hl) r r r 6 rr (HL+,HL) XCH rr,(ix) r r r 6 rr (IX+,IX) XCH rr,(iy) r r r 6 rr (IY+,IY) XCH rr,(ix+d) d d d d d d d d r r r 8 rr (IX+d+, IX+d) XCH rr,(iy+d) d d d d d d d d r r r 8 rr (IY+d+, IY+d) XCH rr,(sp+d) d d d d d d d d r r r 8 rr (SP+d+,SP+d) XCH rr,(hl+d) d d d d d d d d r r r 8 rr (HL+d+,HL+d) XCH rr,(hl+c) r r r 8 rr (HL+C+,HL+C) XCH rr,(+sp) r r r 7 SP SP+:rr (SP+,SP) XCH rr,(pc+a) r r r 8 rr (PC+A+,PC+A) # rr は WA, BC, DE, HL のみ #2 gg は IX,IY のみ ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 58

61 TLCS-87/C 3.2 演算 ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション CMP A, Z Z C H S V 2 A CMP g, g g g Z Z C H S V 3 g CMP gg,m g g g Z Z C U S V 4 gg m mmmm mmmm CMP r,g g g g r r r Z Z C H S V 2 r g CMP rr,gg g g g r r r Z Z C U S V 3 rr gg CMP r,(x) x x x x x x x x r r r Z Z C H S V 4 r (x) CMP r,(vw) w w w w w w w w v v v v v v v v Z Z C H S V 5 r (vw) r r r CMP r,(de) r r r Z Z C H S V 3 r (DE) CMP r,(hl) r r r Z Z C H S V 3 r (HL) CMP r,(ix) r r r Z Z C H S V 3 r (IX) CMP r,(iy) r r r Z Z C H S V 3 r (IY) CMP r,(ix+d) d d d d d d d d r r r Z Z C H S V 5 r (IX+d) CMP r,(iy+d) d d d d d d d d r r r Z Z C H S V 5 r (IY+d) CMP r,(sp+d) d d d d d d d d r r r Z Z C H S V 5 r (SP+d) CMP r,(hl+d) d d d d d d d d r r r Z Z C H S V 5 r (HL+d) CMP r,(hl+c) r r r Z Z C H S V 5 r (HL+C) CMP r,(+sp) r r r Z Z C H S V 4 SP SP+:r (SP) CMP r,(pc+a) r r r Z Z C H S V 5 r (PC+A) CMP (x), x x x x x x x x Z Z C H S V 4 (x) CMP (vw), w w w w w w w w v v v v v v v v Z Z C H S V 6 (vw) CMP (DE), Z Z C H S V 4 (DE) CMP (HL), Z Z C H S V 4 (HL) CMP (IX), Z Z C H S V 4 (IX) CMP (IY), Z Z C H S V 4 (IY) CMP (IX+d), d d d d d d d d Z Z C H S V 6 (IX+d) CMP (IY+d), d d d d d d d d Z Z C H S V 6 (IY+d) CMP (SP+d), d d d d d d d d Z Z C H S V 6 (SP+d) CMP (HL+d), d d d d d d d d Z Z C H S V 6 (HL+d) CMP (HL+C), Z Z C H S V 6 (HL+C) CMP (+SP), Z Z C H S V 5 SP SP+:(SP) CMP (PC+A), Z Z C H S V 6 (PC+A) CMP rr,(x) x x x x x x x x r r r Z Z C U S V 5 rr (x) CMP rr,(vw) w w w w w w w w v v v v v v v v Z Z C U S V 6 rr (vw) r r r CMP rr,(de) r r r Z Z C U S V 4 rr (DE) CMP rr,(hl) r r r Z Z C U S V 4 rr (HL) CMP rr,(ix) r r r Z Z C U S V 4 rr (IX) CMP rr,(iy) r r r Z Z C U S V 4 rr (IY) CMP rr,(ix+d) d d d d d d d d r r r Z Z C U S V 6 rr (IX+d) CMP rr,(iy+d) d d d d d d d d r r r Z Z C U S V 6 rr (IY+d) CMP rr,(sp+d) d d d d d d d d r r r Z Z C U S V 6 rr (SP+d) CMP rr,(hl+d) d d d d d d d d r r r Z Z C U S V 6 rr (HL+d) CMP rr,(hl+c) r r r Z Z C U S V 6 rr (HL+C) CMP rr,(+sp) r r r Z Z C U S V 5 SP SP+:rr (SP) CMP rr,(pc+a) r r r Z Z C U S V 6 rr (PC+A) ADD A, C Z C H S V 2 A A+ ADD g, g g g C Z C H S V 3 g g+ ADD gg,m g g g C Z C U S V 4 gg gg+m mmmm mmmm ADD r,g g g g r r r C Z C H S V 2 r r+g ADD rr,gg g g g r r r C Z C U S V 3 rr rr+gg ADD r,(x) x x x x x x x x r r r C Z C H S V 4 r r+(x) ADD r,(vw) w w w w w w w w v v v v v v v v C Z C H S V 5 r r+(vw) r r r ADD r,(de) r r r C Z C H S V 3 r r+(de) ADD r,(hl) r r r C Z C H S V 3 r r+(hl) ADD r,(ix) r r r C Z C H S V 3 r r+(ix) ADD r,(iy) r r r C Z C H S V 3 r r+(iy) ADD r,(ix+d) d d d d d d d d r r r C Z C H S V 5 r r+(ix+d) ADD r,(iy+d) d d d d d d d d r r r C Z C H S V 5 r r+(iy+d) ADD r,(sp+d) d d d d d d d d r r r C Z C H S V 5 r r+(sp+d) RA Page 59

62 3.2 演算 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション ADD r,(hl+d) d d d d d d d d r r r C Z C H S V 5 r r+(hl+d) ADD r,(hl+c) r r r C Z C H S V 5 r r+(hl+c) ADD r,(+sp) r r r C Z C H S V 4 SP SP+:r r+(sp) ADD r,(pc+a) r r r C Z C H S V 5 r r+(pc+a) ADD (x), x x x x x x x x C Z C H S V 6 (x) (x)+ ADD (vw), w w w w w w w w v v v v v v v v C Z C H S V 7 (vw) (vw)+ ADD (DE), C Z C H S V 5 (DE) (DE)+ ADD (HL), C Z C H S V 5 (HL) (HL)+ ADD (IX), C Z C H S V 5 (IX) (IX)+ ADD (IY), C Z C H S V 5 (IY) (IY)+ ADD (IX+d), d d d d d d d d C Z C H S V 7 (IX+d) (IX+d)+ ADD (IY+d), d d d d d d d d C Z C H S V 7 (IY+d) (IY+d)+ ADD (SP+d), d d d d d d d d C Z C H S V 7 (SP+d) (SP+d)+ ADD (HL+d), d d d d d d d d C Z C H S V 7 (HL+d) (HL+d)+ ADD (HL+C), C Z C H S V 7 (HL+C) (HL+C)+ ADD (+SP), C Z C H S V 6 SP SP+:(SP) (SP)+ ADD (PC+A), C Z C H S V 7 (PC+A) (PC+A)+ ADD rr,(x) x x x x x x x x r r r C Z C U S V 5 rr rr+(x+, x) ADD rr,(vw) w w w w w w w w v v v v v v v v C Z C U S V 6 rr rr+(vw+, vw) r r r ADD rr,(de) r r r C Z C U S V 4 rr rr+(de+, DE) ADD rr,(hl) r r r C Z C U S V 4 rr rr+(hl+, HL) ADD rr,(ix) r r r C Z C U S V 4 rr rr+(ix+, IX) ADD rr,(iy) r r r C Z C U S V 4 rr rr+(iy+, IY) ADD rr,(ix+d) d d d d d d d d r r r C Z C U S V 6 rr rr+(ix+d+, IX+d) ADD rr,(iy+d) d d d d d d d d r r r C Z C U S V 6 rr rr+(iy+d+, IY+d) ADD rr,(sp+d) d d d d d d d d r r r C Z C U S V 6 rr rr+(sp+d+, SP+d) ADD rr,(hl+d) d d d d d d d d r r r C Z C U S V 6 rr rr+(hl+d+, HL+d) ADD rr,(hl+c) r r r C Z C U S V 6 rr rr+(hl+c+, HL+C) ADD rr,(+sp) r r r C Z C U S V 5 SP SP+:rr rr+(sp+, SP) ADD rr,(pc+a) r r r C Z C U S V 6 rr rr+(pc+a+, PC+A) ADDC A, C Z C H S V 2 A A++CF ADDC g, g g g C Z C H S V 3 g g++cf ADDC gg,m g g g C Z C U S V 4 gg gg+m+cf mmmm mmmm ADDC r,g g g g r r r C Z C H S V 2 r r+g+cf ADDC rr,gg g g g r r r C Z C U S V 3 rr rr+gg+cf ADDC r,(x) x x x x x x x x r r r C Z C H S V 4 r r+(x)+cf ADDC r,(vw) w w w w w w w w v v v v v v v v C Z C H S V 5 r r+(vw)+cf r r r ADDC r,(de) r r r C Z C H S V 3 r r+(de)+cf ADDC r,(hl) r r r C Z C H S V 3 r r+(hl)+cf ADDC r,(ix) r r r C Z C H S V 3 r r+(ix)+cf ADDC r,(iy) r r r C Z C H S V 3 r r+(iy)+cf ADDC r,(ix+d) d d d d d d d d r r r C Z C H S V 5 r r+(ix+d)+cf ADDC r,(iy+d) d d d d d d d d r r r C Z C H S V 5 r r+(iy+d)+cf ADDC r,(sp+d) d d d d d d d d r r r C Z C H S V 5 r r+(sp+d)+cf ADDC r,(hl+d) d d d d d d d d r r r C Z C H S V 5 r r+(hl+d)+cf ADDC r,(hl+c) r r r C Z C H S V 5 r r+(hl+c)+cf ADDC r,(+sp) r r r C Z C H S V 4 SP SP+:r r+(sp)+cf ADDC r,(pc+a) r r r C Z C H S V 5 r r+(pc+a)+cf ADDC (x), x x x x x x x x C Z C H S V 6 (x) (x)++cf ADDC (vw), w w w w w w w w v v v v v v v v C Z C H S V 7 (vw) (vw)++cf ADDC (DE), C Z C H S V 5 (DE) (DE)++CF ADDC (HL), C Z C H S V 5 (HL) (HL)++CF ADDC (IX), C Z C H S V 5 (IX) (IX)++CF ADDC (IY), C Z C H S V 5 (IY) (IY)++CF ADDC (IX+d), d d d d d d d d C Z C H S V 7 (IX+d) (IX+d)++CF ADDC (IY+d), d d d d d d d d C Z C H S V 7 (IY+d) (IY+d)++CF ADDC (SP+d), d d d d d d d d C Z C H S V 7 (SP+d) (SP+d)++CF ADDC (HL+d), d d d d d d d d C Z C H S V 7 (HL+d) (HL+d)++CF RA Page 6

63 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション ADDC (HL+C), C Z C H S V 7 (HL+C) (HL+C)++CF ADDC (+SP), C Z C H S V 6 SP SP+:(SP) (SP)++CF ADDC (PC+A), C Z C H S V 7 (PC+A) (PC+A)++CF ADDC rr,(x) x x x x x x x x r r r C Z C U S V 5 rr rr+(x+, x)+cf ADDC rr,(vw) w w w w w w w w v v v v v v v v C Z C U S V 6 rr rr+(vw+, vw)+cf r r r ADDC rr,(de) r r r C Z C U S V 4 rr rr+(de+, DE)+CF ADDC rr,(hl) r r r C Z C U S V 4 rr rr+(hl+, HL)+CF ADDC rr,(ix) r r r C Z C U S V 4 rr rr+(ix+, IX)+CF ADDC rr,(iy) r r r C Z C U S V 4 rr rr+(iy+, IY)+CF ADDC rr,(ix+d) d d d d d d d d r r r C Z C U S V 6 rr rr+(ix+d+, IX+d)+CF ADDC rr,(iy+d) d d d d d d d d r r r C Z C U S V 6 rr rr+(iy+d+, IY+d)+CF ADDC rr,(sp+d) d d d d d d d d r r r C Z C U S V 6 rr rr+(sp+d+, SP+d)+CF ADDC rr,(hl+d) d d d d d d d d r r r C Z C U S V 6 rr rr+(hl+d+, HL+d)+CF ADDC rr,(hl+c) r r r C Z C U S V 6 rr rr+(hl+c+, HL+C)+CF ADDC rr,(+sp) r r r C Z C U S V 5 SP SP+:rr rr+(sp+, SP)+CF ADDC rr,(pc+a) r r r C Z C U S V 6 rr rr+(pc+a+, PC+A)+CF SUB A, C Z C H S V 2 A A- SUB g, g g g C Z C H S V 3 g g- SUB gg,m g g g C Z C U S V 4 gg gg-m mmmm mmmm SUB r,g g g g r r r C Z C H S V 2 r r-g SUB rr,gg g g g r r r C Z C U S V 3 rr rr-gg SUB r,(x) x x x x x x x x r r r C Z C H S V 4 r r-(x) SUB r,(vw) w w w w w w w w v v v v v v v v C Z C H S V 5 r r-(vw) r r r SUB r,(de) r r r C Z C H S V 3 r r-(de) SUB r,(hl) r r r C Z C H S V 3 r r-(hl) SUB r,(ix) r r r C Z C H S V 3 r r-(ix) SUB r,(iy) r r r C Z C H S V 3 r r-(iy) SUB r,(ix+d) d d d d d d d d r r r C Z C H S V 5 r r-(ix+d) SUB r,(iy+d) d d d d d d d d r r r C Z C H S V 5 r r-(iy+d) SUB r,(sp+d) d d d d d d d d r r r C Z C H S V 5 r r-(sp+d) SUB r,(hl+d) d d d d d d d d r r r C Z C H S V 5 r r-(hl+d) SUB r,(hl+c) r r r C Z C H S V 5 r r-(hl+c) SUB r,(+sp) r r r C Z C H S V 4 SP SP+:r r-(sp) SUB r,(pc+a) r r r C Z C H S V 5 r r-(pc+a) SUB (x), x x x x x x x x C Z C H S V 6 (x) (x)- SUB (vw), w w w w w w w w v v v v v v v v C Z C H S V 7 (vw) (vw)- SUB (DE), C Z C H S V 5 (DE) (DE)- SUB (HL), C Z C H S V 5 (HL) (HL)- SUB (IX), C Z C H S V 5 (IX) (IX)- SUB (IY), C Z C H S V 5 (IY) (IY)- SUB (IX+d), d d d d d d d d C Z C H S V 7 (IX+d) (IX+d)- SUB (IY+d), d d d d d d d d C Z C H S V 7 (IY+d) (IY+d)- SUB (SP+d), d d d d d d d d C Z C H S V 7 (SP+d) (SP+d)- SUB (HL+d), d d d d d d d d C Z C H S V 7 (HL+d) (HL+d)- SUB (HL+C), C Z C H S V 7 (HL+C) (HL+C)- SUB (+SP), C Z C H S V 6 SP SP+:(SP) (SP)- SUB (PC+A), C Z C H S V 7 (PC+A) (PC+A)- SUB rr,(x) x x x x x x x x r r r C Z C U S V 5 rr rr-(x+, x) SUB rr,(vw) w w w w w w w w v v v v v v v v C Z C U S V 6 rr rr-(vw+, vw) r r r SUB rr,(de) r r r C Z C U S V 4 rr rr-(de+, DE) SUB rr,(hl) r r r C Z C U S V 4 rr rr-(hl+, HL) SUB rr,(ix) r r r C Z C U S V 4 rr rr-(ix+, IX) SUB rr,(iy) r r r C Z C U S V 4 rr rr-(iy+, IY) SUB rr,(ix+d) d d d d d d d d r r r C Z C U S V 6 rr rr-(ix+d+, IX+d) SUB rr,(iy+d) d d d d d d d d r r r C Z C U S V 6 rr rr-(iy+d+, IY+d) SUB rr,(sp+d) d d d d d d d d r r r C Z C U S V 6 rr rr-(sp+d+, SP+d) SUB rr,(hl+d) d d d d d d d d r r r C Z C U S V 6 rr rr-(hl+d+, HL+d) SUB rr,(hl+c) r r r C Z C U S V 6 rr rr-(hl+c+, HL+C) SUB rr,(+sp) r r r C Z C U S V 5 SP SP+:rr rr-(sp+, SP) SUB rr,(pc+a) r r r C Z C U S V 6 rr rr-(pc+a+, PC+A) SUBB A, C Z C H S V 2 A A--CF RA Page 6

64 3.2 演算 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション SUBB g, g g g C Z C H S V 3 g g--cf SUBB gg,m g g g C Z C U S V 4 gg gg-m-cf mmmm mmmm SUBB r,g g g g r r r C Z C H S V 2 r r-g-cf SUBB rr,gg g g g r r r C Z C U S V 3 rr rr-gg-cf SUBB r,(x) x x x x x x x x r r r C Z C H S V 4 r r-(x)-cf SUBB r,(vw) w w w w w w w w v v v v v v v v C Z C H S V 5 r r-(vw)-cf r r r SUBB r,(de) r r r C Z C H S V 3 r r-(de)-cf SUBB r,(hl) r r r C Z C H S V 3 r r-(hl)-cf SUBB r,(ix) r r r C Z C H S V 3 r r-(ix)-cf SUBB r,(iy) r r r C Z C H S V 3 r r-(iy)-cf SUBB r,(ix+d) d d d d d d d d r r r C Z C H S V 5 r r-(ix+d)-cf SUBB r,(iy+d) d d d d d d d d r r r C Z C H S V 5 r r-(iy+d)-cf SUBB r,(sp+d) d d d d d d d d r r r C Z C H S V 5 r r-(sp+d)-cf SUBB r,(hl+d) d d d d d d d d r r r C Z C H S V 5 r r-(hl+d)-cf SUBB r,(hl+c) r r r C Z C H S V 5 r r-(hl+c)-cf SUBB r,(+sp) r r r C Z C H S V 4 SP SP+:r r-(sp)-cf SUBB r,(pc+a) r r r C Z C H S V 5 r r-(pc+a)-cf SUBB (x), x x x x x x x x C Z C H S V 6 (x) (x)--cf SUBB (vw), w w w w w w w w v v v v v v v v C Z C H S V 7 (vw) (vw)--cf SUBB (DE), C Z C H S V 5 (DE) (DE)--CF SUBB (HL), C Z C H S V 5 (HL) (HL)--CF SUBB (IX), C Z C H S V 5 (IX) (IX)--CF SUBB (IY), C Z C H S V 5 (IY) (IY)--CF SUBB (IX+d), d d d d d d d d C Z C H S V 7 (IX+d) (IX+d)--CF SUBB (IY+d), d d d d d d d d C Z C H S V 7 (IY+d) (IY+d)--CF SUBB (SP+d), d d d d d d d d C Z C H S V 7 (SP+d) (SP+d)--CF SUBB (HL+d), d d d d d d d d C Z C H S V 7 (HL+d) (HL+d)--CF SUBB (HL+C), C Z C H S V 7 (HL+C) (HL+C)--CF SUBB (+SP), C Z C H S V 6 SP SP+:(SP) (SP)--CF SUBB (PC+A), C Z C H S V 7 (PC+A) (PC+A)--CF SUBB rr,(x) x x x x x x x x r r r C Z C U S V 5 rr rr-(x+, x)-cf SUBB rr,(vw) w w w w w w w w v v v v v v v v C Z C U S V 6 rr rr-(vw+,vw)-cf r r r SUBB rr,(de) r r r C Z C U S V 4 rr rr-(de+, DE)-CF SUBB rr,(hl) r r r C Z C U S V 4 rr rr-(hl+, HL)-CF SUBB rr,(ix) r r r C Z C U S V 4 rr rr-(ix+, IX)-CF SUBB rr,(iy) r r r C Z C U S V 4 rr rr-(iy+, IY+d)-CF SUBB rr,(ix+d) d d d d d d d d r r r C Z C U S V 6 rr rr-(ix+d+, IX+d)-CF SUBB rr,(iy+d) d d d d d d d d r r r C Z C U S V 6 rr rr-(iy+d+, IY+d)-CF SUBB rr,(sp+d) d d d d d d d d r r r C Z C U S V 6 rr rr-(sp+d+, SP+d)-CF SUBB rr,(hl+d) d d d d d d d d r r r C Z C U S V 6 rr rr-(hl+d+, HL+d)-CF SUBB rr,(hl+c) r r r C Z C U S V 6 rr rr-(hl+c+, HL+C)-CF SUBB rr,(+sp) r r r C Z C U S V 5 SP SP+:rr rr-(sp+, SP)-CF SUBB rr,(pc+a) r r r C Z C U S V 6 rr rr-(pc+a+, PC+A)-CF AND A, Z Z 2 A A& AND g, g g g Z Z 3 g g& AND gg,m g g g Z Z 4 gg gg&m mmmm mmmm AND r,g g g g r r r Z Z 2 r r&g AND rr,gg g g g r r r Z Z 3 rr rr&gg AND r,(x) x x x x x x x x r r r Z Z 4 r r&(x) AND r,(vw) w w w w w w w w v v v v v v v v Z Z 5 r r&(vw) r r r AND r,(de) r r r Z Z 3 r r&(de) AND r,(hl) r r r Z Z 3 r r&(hl) AND r,(ix) r r r Z Z 3 r r&(ix) AND r,(iy) r r r Z Z 3 r r&(iy) AND r,(ix+d) d d d d d d d d r r r Z Z 5 r r&(ix+d) AND r,(iy+d) d d d d d d d d r r r Z Z 5 r r&(iy+d) AND r,(sp+d) d d d d d d d d r r r Z Z 5 r r&(sp+d) AND r,(hl+d) d d d d d d d d r r r Z Z 5 r r&(hl+d) AND r,(hl+c) r r r Z Z 5 r r&(hl+c) AND r,(+sp) r r r Z Z 4 SP SP+:r r&(sp) AND r,(pc+a) r r r Z Z 5 r r&(pc+a) RA Page 62

65 TLCS-87/C ニモニックオブジェクトコード (2 進 ) フラグサイクル オペレーション AND (x), x x x x x x x x Z Z 6 (x) (x)& AND (vw), w w w w w w w w v v v v v v v v Z Z 7 (vw) (vw)& AND (DE), Z Z 5 (DE) (DE)& AND (HL), Z Z 5 (HL) (HL)& AND (IX), Z Z 5 (IX) (IX)& AND (IY), Z Z 5 (IY) (IY)& AND (IX+d), d d d d d d d d Z Z 7 (IX+d) (IX+d)& AND (IY+d), d d d d d d d d Z Z 7 (IY+d) (IY+d)& AND (SP+d), d d d d d d d d Z Z 7 (SP+d) (SP+d)& AND (HL+d), d d d d d d d d Z Z 7 (HL+d) (HL+d)& AND (HL+C), Z Z 7 (HL+C) (HL+C)& AND (+SP), Z Z 6 SP SP+:(SP) (SP)& AND (PC+A), Z Z 7 (PC+A) (PC+A)& AND rr,(x) x x x x x x x x r r r Z Z 5 rr rr&(x+,x) AND rr,(vw) w w w w w w w w v v v v v v v v Z Z 6 rr rr&(vw+,vw) r r r AND rr,(de) r r r Z Z 4 rr rr&(de+,de) AND rr,(hl) r r r Z Z 4 rr rr&(hl+,hl) AND rr,(ix) r r r Z Z 4 rr rr&(ix+,ix) AND rr,(iy) r r r Z Z 4 rr rr&(iy+,iy) AND rr,(ix+d) d d d d d d d d r r r Z Z 6 rr rr&(ix+d+,ix+d) AND rr,(iy+d) d d d d d d d d r r r Z Z 6 rr rr&(iy+d+,iy+d) AND rr,(sp+d) d d d d d d d d r r r Z Z 6 rr rr&(sp+d+,sp+d) AND rr,(hl+d) d d d d d d d d r r r Z Z 6 rr rr&(hl+d+,hl+d) AND rr,(hl+c) r r r Z Z 6 rr rr&(hl+c+,hl+c) AND rr,(+sp) r r r Z Z 5 SP SP+:rr rr&(sp+,sp) AND rr,(pc+a) r r r Z Z 6 rr rr&(pc+a+,pc+a) OR A, Z Z 2 A A OR g, g g g Z Z 3 g g OR gg,m g g g Z Z 4 gg gg m mmmm mmmm OR r,g g g g r r r Z Z 2 r r g OR rr,gg g g g r r r Z Z 3 rr rr gg OR r,(x) x x x x x x x x r r r Z Z 4 r r (x) OR r,(vw) w w w w w w w w v v v v v v v v Z Z 5 r r (vw) r r r OR r,(de) r r r Z Z 3 r r (DE) OR r,(hl) r r r Z Z 3 r r (HL) OR r,(ix) r r r Z Z 3 r r (IX) OR r,(iy) r r r Z Z 3 r r (IY) OR r,(ix+d) d d d d d d d d r r r Z Z 5 r r (IX+d) OR r,(iy+d) d d d d d d d d r r r Z Z 5 r r (IY+d) OR r,(sp+d) d d d d d d d d r r r Z Z 5 r r (SP+d) OR r,(hl+d) d d d d d d d d r r r Z Z 5 r r (HL+d) OR r,(hl+c) r r r Z Z 5 r r (HL+C) OR r,(+sp) r r r Z Z 4 SP SP+:r r (SP) OR r,(pc+a) r r r Z Z 5 r r (PC+A) OR (x), x x x x x x x x Z Z 6 (x) (x) OR (vw), w w w w w w w w v v v v v v v v Z Z 7 (vw) (vw) OR (DE), Z Z 5 (DE) (DE) OR (HL), Z Z 5 (HL) (HL) OR (IX), Z Z 5 (IX) (IX) OR (IY), Z Z 5 (IY) (IY) OR (IX+d), d d d d d d d d Z Z 7 (IX+d) (IX+d) OR (IY+d), d d d d d d d d Z Z 7 (IY+d) (IY+d) OR (SP+d), d d d d d d d d Z Z 7 (SP+d) (SP+d) OR (HL+d), d d d d d d d d Z Z 7 (HL+d) (HL+d) OR (HL+C), Z Z 7 (HL+C) (HL+C) OR (+SP), Z Z 6 SP SP+:(SP) (SP) RA Page 63

66 3.2 演算 TLCS-87/C ニモニックオブジェクトコード (2 進 ) フラグサイクル オペレーション OR (PC+A), Z Z 7 (PC+A) (PC+A) OR rr,(x) x x x x x x x x r r r Z Z 5 rr rr (x+,x) OR rr,(vw) w w w w w w w w v v v v v v v v Z Z 6 rr rr (vw+,vw) r r r OR rr,(de) r r r Z Z 4 rr rr (DE+,DE) OR rr,(hl) r r r Z Z 4 rr rr (HL+,HL) OR rr,(ix) r r r Z Z 4 rr rr (IX+,IX) OR rr,(iy) r r r Z Z 4 rr rr (IY+,IY) OR rr,(ix+d) d d d d d d d d r r r Z Z 6 rr rr (IX+d+,IX+d) OR rr,(iy+d) d d d d d d d d r r r Z Z 6 rr rr (IY+d+,IY+d) OR rr,(sp+d) d d d d d d d d r r r Z Z 6 rr rr (SP+d+,SP+d) OR rr,(hl+d) d d d d d d d d r r r Z Z 6 rr rr (HL+d+,HL+d) OR rr,(hl+c) r r r Z Z 6 rr rr (HL+C+,HL+C) OR rr,(+sp) r r r Z Z 5 SP SP+:rr rr (SP+,SP) OR rr,(pc+a) r r r Z Z 6 rr rr (PC+A+,PC+A) XOR A, Z Z 2 A A ^ XOR g, g g g Z Z 3 g g ^ XOR gg,m g g g Z Z 4 gg gg ^ m mmmm mmmm XOR r,g g g g r r r Z Z 2 r r ^ g XOR rr,gg g g g r r r Z Z 3 rr rr ^ gg XOR r,(x) x x x x x x x x r r r Z Z 4 r r ^ (x) XOR r,(vw) w w w w w w w w v v v v v v v v Z Z 5 r r ^ (vw) r r r XOR r,(de) r r r Z Z 3 r r ^ (DE) XOR r,(hl) r r r Z Z 3 r r ^(HL) XOR r,(ix) r r r Z Z 3 r r ^ (IX) XOR r,(iy) r r r Z Z 3 r r ^ (IY) XOR r,(ix+d) d d d d d d d d r r r Z Z 5 r r ^ (IX+d) XOR r,(iy+d) d d d d d d d d r r r Z Z 5 r r ^ (IY+d) XOR r,(sp+d) d d d d d d d d r r r Z Z 5 r r ^ (SP+d) XOR r,(hl+d) d d d d d d d d r r r Z Z 5 r r ^ (HL+d) XOR r,(hl+c) r r r Z Z 5 r r ^ (HL+C) XOR r,(+sp) r r r Z Z 4 SP SP+:r r ^ (SP) XOR r,(pc+a) r r r Z Z 5 r r ^ (PC+A) XOR (x), x x x x x x x x Z Z 6 (x) (x) ^ XOR (vw), w w w w w w w w v v v v v v v v Z Z 7 (vw) (vw) ^ XOR (DE), Z Z 5 (DE) (DE) ^ XOR (HL), Z Z 5 (HL) (HL) ^ XOR (IX), Z Z 5 (IX) (IX) ^ XOR (IY), Z Z 5 (IY) (IY) ^ XOR (IX+d), d d d d d d d d Z Z 7 (IX+d) (IX+d) ^ XOR (IY+d), d d d d d d d d Z Z 7 (IY+d) (IY+d) ^ XOR (SP+d), d d d d d d d d Z Z 7 (SP+d) (SP+d) ^ XOR (HL+d), d d d d d d d d Z Z 7 (HL+d) (HL+d) ^ XOR (HL+C), Z Z 7 (HL+C) (HL+C) ^ XOR (+SP), Z Z 6 SP SP+:(SP) (SP) ^ XOR (PC+A), Z Z 7 (PC+A) (PC+A) ^ XOR rr,(x) x x x x x x x x r r r Z Z 5 rr rr ^ (x+,x) XOR rr,(vw) w w w w w w w w v v v v v v v v Z Z 6 rr rr ^ (vw+,vw) r r r XOR rr,(de) r r r Z Z 4 rr rr ^ (DE+,DE) XOR rr,(hl) r r r Z Z 4 rr rr ^ (HL+,HL) XOR rr,(ix) r r r Z Z 4 rr rr ^(IX+,IX) XOR rr,(iy) r r r Z Z 4 rr rr ^ (IY+,IY) XOR rr,(ix+d) d d d d d d d d r r r Z Z 6 rr rr ^ (IX+d+,IX+d) XOR rr,(iy+d) d d d d d d d d r r r Z Z 6 rr rr ^ (IY+d+,IY+d) XOR rr,(sp+d) d d d d d d d d r r r Z Z 6 rr rr ^ (SP+d+,SP+d) XOR rr,(hl+d) d d d d d d d d r r r Z Z 6 rr rr ^ (HL+d+,HL+d) XOR rr,(hl+c) r r r Z Z 6 rr rr ^ (HL+C+,HL+C) XOR rr,(+sp) r r r Z Z 5 SP SP+:rr rr ^ (SP+,SP) XOR rr,(pc+a) r r r Z Z 6 rr rr ^ (PC+A+,PC+A) INC r r r r C Z r r+ INC rr r r r C Z 2 rr rr+ INC (x) x x x x x x x x C Z 5 (x) (x)+ RA Page 64

67 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション INC (vw) w w w w w w w w v v v v v v v v C Z 6 (vw) (vw)+ INC (DE) C Z 4 (DE) (DE)+ INC (HL) C Z 4 (HL) (HL)+ INC (IX) C Z 4 (IX) (IX)+ INC (IY) C Z 4 (IY) (IY)+ INC (IX+d) d d d d d d d d C Z 6 (IX+d) (IX+d)+ INC (IY+d) d d d d d d d d C Z 6 (IY+d) (IY+d)+ INC (SP+d) d d d d d d d d C Z 6 (SP+d) (SP+d)+ INC (HL+d) d d d d d d d d C Z 6 (HL+d) (HL+d)+ INC (HL+C) C Z 6 (HL+C) (HL+C)+ INC (+SP) C Z 5 SP SP+:(SP) (SP)+ INC (PC+A) C Z 6 (PC+A) (PC+A)+ DEC r r r r C Z r r DEC rr r r r C Z 2 rr rr DEC (x) x x x x x x x x C Z 5 (x) (x) DEC (vw) w w w w w w w w v v v v v v v v C Z 6 (vw) (vw) DEC (DE) C Z 4 (DE) (DE) DEC (HL) C Z 4 (HL) (HL) DEC (IX) C Z 4 (IX) (IX) DEC (IY) C Z 4 (IY) (IY) DEC (IX+d) d d d d d d d d C Z 6 (IX+d) (IX+d) DEC (IY+d) d d d d d d d d C Z 6 (IY+d) (IY+d) DEC (SP+d) d d d d d d d d C Z 6 (SP+d) (SP+d) DEC (HL+d) d d d d d d d d C Z 6 (HL+d) (HL+d) DEC (HL+C) C Z 6 (HL+C) (HL+C) DEC (+SP) C Z 5 SP SP+:(SP) (SP) DEC (PC+A) C Z 6 (PC+A) (PC+A) DAA g g g g C Z C H 2 g を十進補正 ( 加算後 ) DAS g g g g C Z C H 2 g を十進補正 ( 減算後 ) MUL W,A Z Z 3 WA W A MUL B,C Z Z 3 BC B C MUL D,E Z Z 3 DE D E MUL H,L Z Z 3 HL H L DIV WA,C Z Z C 3 A WA C,W 余り DIV DE,C Z Z C 3 E DE C,D 余り DIV HL,C Z Z C 3 L HL C,H 余り NEG CS,gg g g g 3 if CF = the gg -gg else ull ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 65

68 3.2 演算 TLCS-87/C RA Page 66

69 TLCS-87/C 3.3 シフト ローテート ニブル処理 フラグサイニモニックオブジェクトコード (2 進 ) クル SHLC g g g g C Z * 2 SHRC g g g g C Z * 2 ROLC g g g g C Z * 2 RORC g g g g C Z * 2 SHLCA gg g g g C Z * S V 3 オペレーション CF CF CF CF gg CF SHRCA gg g g g C Z * S 3 gg CF SWAP g g g g 7 ROLD A,(x) x x x x x x x x 9 ROLD A,(vw) w w w w w w w w v v v v v v v v ROLD A,(DE) 8 ROLD A,(HL) 8 ROLD A,(IX) 8 ROLD A,(IY) 8 ROLD A,(IX+d) d d d d d d d d ROLD A,(IY+d) d d d d d d d d ROLD A,(SP+d) d d d d d d d d ROLD A,(HL+d) d d d d d d d d ROLD A,(HL+C) ROLD A,(+SP) 9 ROLD A,(PC+A) RORD A,(x) x x x x x x x x 9 RORD A,(vw) w w w w w w w w v v v v v v v v RORD A,(DE) 8 RORD A,(HL) 8 RORD A,(IX) 8 RORD A,(IY) 8 RORD A,(IX+d) d d d d d d d d RORD A,(IY+d) d d d d d d d d RORD A,(SP+d) d d d d d d d d RORD A,(HL+d) d d d d d d d d RORD A,(HL+C) RORD A,(+SP) 9 RORD A,(PC+A) ( 4 4 ) A A (4 ) ) (+SP) SP SP + (Memory) (4 ) ) (+SP) SP SP + (Memory) ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 67

70 3.3 シフト ローテート ニブル処理 TLCS-87/C RA Page 68

71 TLCS-87/C 3.4 ビット操作 フラグ操作 ニモニック オブジェクトコード (2 進 ) フラグサイクル オペレーション SET g.b g g g b b b Z * 3 ZF g.b:g.b SET (x).b b b b x x x x x x x x Z * 4 ZF (x).b:(x).b SET (vw).b w w w w w w w w v v v v v v v v Z * 6 ZF (vw).b:(vw).b b b b SET (DE).b b b b Z * 4 ZF (DE).b:(DE).b SET (HL).b b b b Z * 4 ZF (HL).b:(HL).b SET (IX).b b b b Z * 4 ZF (IX).b:(IX).b SET (IY).b b b b Z * 4 ZF (IY).b:(IY).b SET (IX+d).b d d d d d d d d b b b Z * 6 ZF (IX+d).b:(IX+d).b SET (IY+d).b d d d d d d d d b b b Z * 6 ZF (IY+d).b:(IY+d).b SET (SP+d).b d d d d d d d d b b b Z * 6 ZF (SP+d).b:(SP+d).b SET (HL+d).b d d d d d d d d b b b Z * 6 ZF (HL+d).b:(HL+d).b SET (HL+C).b b b b Z * 6 ZF (HL+C).b:(HL+C).b SET (+SP).b b b b Z * 5 SP SP+:ZF (SP).b:(SP).b SET (PC+A).b b b b Z * 6 ZF (PC+A).b:(PC+A).b SET (x).a x x x x x x x x Z * 5 ZF (x).a:(x).a SET (vw).a w w w w w w w w v v v v v v v v Z * 6 ZF (vw).a:(vw).a SET (DE).A Z * 4 ZF (DE).A:(DE).A SET (HL).A Z * 4 ZF (HL).A:(HL).A SET (IX).A Z * 4 ZF (IX).A:(IX).A SET (IY).A Z * 4 ZF (IY).A:(IY).A SET (IX+d).A d d d d d d d d Z * 6 ZF (IX+d).A:(IX+d).A SET (IY+d).A d d d d d d d d Z * 6 ZF (IY+d).A:(IY+d).A SET (SP+d).A d d d d d d d d Z * 6 ZF (SP+d).A:(SP+d).A SET (HL+d).A d d d d d d d d Z * 6 ZF (HL+d).A:(HL+d).A SET (HL+C).A Z * 6 ZF (HL+C).A:(HL+C).A SET (+SP).A Z * 5 SP SP+:ZF (SP).A:(SP).A SET (PC+A).A Z * 6 ZF (PC+A).A:(PC+A).A CLR g.b g g g b b b Z * 3 ZF g.b:g.b CLR (x).b b b b x x x x x x x x Z * 4 ZF (x).b:(x).b CLR (vw).b w w w w w w w w v v v v v v v v Z * 6 ZF (vw).b:(vw).b b b b CLR (DE).b b b b Z * 4 ZF (DE).b:(DE).b CLR (HL).b b b b Z * 4 ZF (HL).b:(HL).b CLR (IX).b b b b Z * 4 ZF (IX).b:(IX).b CLR (IY).b b b b Z * 4 ZF (IY).b:(IY).b CLR (IX+d).b d d d d d d d d b b b Z * 6 ZF (IX+d).b:(IX+d).b CLR (IY+d).b d d d d d d d d b b b Z * 6 ZF (IY+d).b:(IY+d).b CLR (SP+d).b d d d d d d d d b b b Z * 6 ZF (SP+d).b:(SP+d).b CLR (HL+d).b d d d d d d d d b b b Z * 6 ZF (HL+d).b:(HL+d).b CLR (HL+C).b b b b Z * 6 ZF (HL+C).b:(HL+C).b CLR (+SP).b b b b Z * 5 SP SP+:ZF (SP).b:(SP).b CLR (PC+A).b b b b Z * 6 ZF (PC+A).b:(PC+A).b CLR (x).a x x x x x x x x Z * 5 ZF (x).a:(x).a CLR (vw).a w w w w w w w w v v v v v v v v Z * 6 ZF (vw).a:(vw).a CLR (DE).A Z * 4 ZF (DE).A:(DE).A CLR (HL).A Z * 4 ZF (HL).A:(HL).A CLR (IX).A Z * 4 ZF (IX).A:(IX).A CLR (IY).A Z * 4 ZF (IY).A:(IY).A CLR (IX+d).A d d d d d d d d Z * 6 ZF (IX+d).A:(IX+d).A CLR (IY+d).A d d d d d d d d Z * 6 ZF (IY+d).A:(IY+d).A CLR (SP+d).A d d d d d d d d Z * 6 ZF (SP+d).A:(SP+d).A CLR (HL+d).A d d d d d d d d Z * 6 ZF (HL+d).A:(HL+d).A CLR (HL+C).A Z * 6 ZF (HL+C).A:(HL+C).A CLR (+SP).A Z * 5 SP SP+:ZF (SP).A:(SP).A CLR (PC+A).A Z * 6 ZF (PC+A).A:(PC+A).A LD CF,g.b g g g b b b C * 2 CF g.b LD CF,(x).b b b b x x x x x x x x C * 3 CF (x).b LD CF,(vw).b w w w w w w w w v v v v v v v v C * 5 CF (vw).b b b b LD CF,(DE).b b b b C * 3 CF (DE).b LD CF,(HL).b b b b C * 3 CF (HL).b LD CF,(IX).b b b b C * 3 CF (IX).b LD CF,(IY).b b b b C * 3 CF (IY).b LD CF,(IX+d).b d d d d d d d d b b b C * 5 CF (IX+d).b RA Page 69

72 3.4 ビット操作 フラグ操作 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグサイクル オペレーション LD CF,(IY+d).b d d d d d d d d b b b C * 5 CF (IY+d).b LD CF,(SP+d).b d d d d d d d d b b b C * 5 CF (SP+d).b LD CF,(HL+d).b d d d d d d d d b b b C * 5 CF (HL+d).b LD CF,(HL+C).b b b b C * 5 CF (HL+C).b LD CF,(+SP).b b b b C * 4 SP SP+:CF (SP).b LD CF,(PC+A).b b b b C * 5 CF (PC+A).b LD CF,(x).A x x x x x x x x C * 4 CF (x).a LD CF,(vw).A w w w w w w w w v v v v v v v v C * 5 CF (vw).a LD CF,(DE).A C * 3 CF (DE).A LD CF,(HL).A C * 3 CF (HL).A LD CF,(IX).A C * 3 CF (IX).A LD CF,(IY).A C * 3 CF (IY).A LD CF,(IX+d).A d d d d d d d d C * 5 CF (IX+d).A LD CF,(IY+d).A d d d d d d d d C * 5 CF (IY+d).A LD CF,(SP+d).A d d d d d d d d C * 5 CF (SP+d).A LD CF,(HL+d).A d d d d d d d d C * 5 CF (HL+d).A LD CF,(HL+C).A C * 5 CF (HL+C).A LD CF,(+SP).A C * 4 SP SP+:CF (SP).A LD CF,(PC+A).A C * 5 CF (PC+A).A TEST g.b # g g g b b b * J 2 JF g.b TEST (x).b # b b b x x x x x x x x * J 3 JF (x).b TEST (vw).b # w w w w w w w w v v v v v v v v * J 5 JF (vw).b b b b TEST (DE).b # b b b * J 3 JF (DE).b TEST (HL).b # b b b * J 3 JF (HL).b TEST (IX).b # b b b * J 3 JF (IX).b TEST (IY).b # b b b * J 3 JF (IY).b TEST (IX+d).b # d d d d d d d d b b b * J 5 JF (IX+d).b TEST (IY+d).b # d d d d d d d d b b b * J 5 JF (IY+d).b TEST (SP+d).b # d d d d d d d d b b b * J 5 JF (SP+d).b TEST (HL+d).b # d d d d d d d d b b b * J 5 JF (HL+d).b TEST (HL+C).b # b b b * J 5 JF (HL+C).b TEST (+SP).b # b b b * J 4 SP SP+:JF (SP).b TEST (PC+A).b # b b b * J 5 JF (PC+A).b TEST (x).a # x x x x x x x x * J 4 JF (x).a TEST (vw).a # w w w w w w w w v v v v v v v v * J 5 JF (vw).a TEST (DE).A # * J 3 JF (DE).A TEST (HL).A # * J 3 JF (HL).A TEST (IX).A # * J 3 JF (IX).A TEST (IY).A # * J 3 JF (IY).A TEST (IX+d).A # d d d d d d d d * J 5 JF (IX+d).A TEST (IY+d).A # d d d d d d d d * J 5 JF (IY+d).A TEST (SP+d).A # d d d d d d d d * J 5 JF (SP+d).A TEST (HL+d).A # d d d d d d d d * J 5 JF (HL+d).A TEST (HL+C).A # * J 5 JF (HL+C).A TEST (+SP).A # * J 4 SP SP+:JF (SP).A TEST (PC+A).A # * J 5 JF (PC+A).A LD g.b,cf g g g b b b 2 g.b CF LD (x).b,cf x x x x x x x x b b b 5 (x).b CF LD (vw).b,cf w w w w w w w w v v v v v v v v 6 (vw).b CF b b b LD (DE).b,CF b b b 4 (DE).b CF LD (HL).b,CF b b b 4 (HL).b CF LD (IX).b,CF b b b 4 (IX).b CF LD (IY).b,CF b b b 4 (IY).b CF LD (IX+d).b,CF d d d d d d d d b b b 6 (IX+d).b CF LD (IY+d).b,CF d d d d d d d d b b b 6 (IY+d).b CF LD (SP+d).b,CF d d d d d d d d b b b 6 (SP+d).b CF LD (HL+d).b,CF d d d d d d d d b b b 6 (HL+d).b CF LD (HL+C).b,CF b b b 6 (HL+C).b CF LD (+SP).b,CF b b b 5 SP SP+:(SP).b CF LD (PC+A).b,CF b b b 6 (PC+A).b CF LD (x).a,cf x x x x x x x x 5 (x).a CF LD (vw).a,cf w w w w w w w w v v v v v v v v 6 (vw).a CF LD (DE).A,CF 4 (DE).A CF RA Page 7

73 TLCS-87/C ニモニック オブジェクトコード (2 進 ) フラグサイクル オペレーション LD (HL).A,CF 4 (HL).A CF LD (IX).A,CF 4 (IX).A CF LD (IY).A,CF 4 (IY).A CF LD (IX+d).A,CF d d d d d d d d 6 (IX+d).A CF LD (IY+d).A,CF d d d d d d d d 6 (IY+d).A CF LD (SP+d).A,CF d d d d d d d d 6 (SP+d).A CF LD (HL+d).A,CF d d d d d d d d 6 (HL+d).A CF LD (HL+C).A,CF 6 (HL+C).A CF LD (+SP).A,CF 5 SP SP+:(SP).A CF LD (PC+A).A,CF 6 (PC+A).A CF CPL g.b g g g b b b Z * 3 ZF g.b:g.b g.b CPL (x).b x x x x x x x x b b b Z * 5 ZF (x).b:(x).b (x).b CPL (vw).b w w w w w w w w v v v v v v v v Z * 6 ZF (vw).b:(vw).b (vw).b b b b CPL (DE).b b b b Z * 4 ZF (DE).b:(DE).b (DE).b CPL (HL).b b b b Z * 4 ZF (HL).b:(HL).b (HL).b CPL (IX).b b b b Z * 4 ZF (IX).b:(IX).b (IX).b CPL (IY).b b b b Z * 4 ZF (IY).b:(IY).b (IY).b CPL (IX+d).b d d d d d d d d b b b Z * 6 ZF (IX+d).b:(IX+d).b (IX+d).b CPL (IY+d).b d d d d d d d d b b b Z * 6 ZF (IY+d).b:(IY+d).b (IY+d).b CPL (SP+d).b d d d d d d d d b b b Z * 6 ZF (SP+d).b:(SP+d).b (SP+d).b CPL (HL+d).b d d d d d d d d b b b Z * 6 ZF (HL+d).b:(HL+d).b (HL+d).b CPL (HL+C).b b b b Z * 6 ZF (HL+C).b:(HL+C).b (HL+C).b CPL (+SP).b b b b Z * 5 SP SP+:ZF (SP).b: (SP).b (SP).b CPL (PC+A).b b b b Z * 6 ZF (PC+A).b:(PC+A).b (PC+A).b CPL (x).a x x x x x x x x Z * 5 ZF (x).a:(x).a (x).a CPL (vw).a w w w w w w w w v v v v v v v v Z * 6 ZF (vw).a:(vw).a (vw).a CPL (DE).A Z * 4 ZF (DE).A:(DE).A (DE).A CPL (HL).A Z * 4 ZF (HL).A:(HL).A (HL).A CPL (IX).A Z * 4 ZF (IX).A:(IX).A (IX).A CPL (IY).A Z * 4 ZF (IY).A:(IY).A (IY).A CPL (IX+d).A d d d d d d d d Z * 6 ZF (IX+d).A:(IX+d).A (IX+d).A CPL (IY+d).A d d d d d d d d Z * 6 ZF (IY+d).A:(IY+d).A (IY+d).A CPL (SP+d).A d d d d d d d d Z * 6 ZF (SP+d).A:(SP+d).A (SP+d).A CPL (HL+d).A d d d d d d d d Z * 6 ZF (HL+d).A:(HL+d).A (HL+d).A CPL (HL+C).A Z * 6 ZF (HL+C).A:(HL+C).A (HL+C).A CPL (+SP).A Z * 5 SP SP+:ZF (SP).A: (SP).A (SP).A CPL (PC+A).A Z * 6 ZF (PC+A).A:(PC+A).A (PC+A).A XOR CF,g.b g g g b b b C * 2 CF CF ^ g.b XOR CF,(x).b x x x x x x x x b b b C * 4 CF CF ^ (x).b XOR CF,(vw).b w w w w w w w w v v v v v v v v C * 5 CF CF ^ (vw).b b b b XOR CF,(DE).b b b b C * 3 CF CF ^ (DE).b XOR CF,(HL).b b b b C * 3 CF CF ^ (HL).b XOR CF,(IX).b b b b C * 3 CF CF ^ (IX).b XOR CF,(IY).b b b b C * 3 CF CF ^ (IY).b XOR CF,(IX+d).b d d d d d d d d b b b C * 5 CF CF ^ (IX+d).b XOR CF,(IY+d).b d d d d d d d d b b b C * 5 CF CF ^ (IY+d).b XOR CF,(SP+d).b d d d d d d d d b b b C * 5 CF CF ^ (SP+d).b XOR CF,(HL+d).b d d d d d d d d b b b C * 5 CF CF ^ (HL+d).b XOR CF,(HL+C).b b b b C * 5 CF CF ^ (HL+C).b XOR CF,(+SP).b b b b C * 4 SP SP+:CF CF ^ (SP).b XOR CF,(PC+A).b b b b C * 5 CF CF ^ (PC+A).b SET CF CF CLR CF CF CPL CF * * JF CF:CF CF DI # Z * 4 ZF IMF:IMF EI # Z * 4 ZF IMF:IMF # アセンブラ用拡張命令 ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 7

74 3.4 ビット操作 フラグ操作 TLCS-87/C RA Page 72

75 TLCS-87/C 3.5 ジャンプ ニモニック オブジェクトコード (2 進 ) フラグ サイクル オペレーション JRS T,$+2+d d d d d d 4/2(t/f) if JF = the PC PC+d else ull JRS F,$+2+d d d d d d 4/2(t/f) if JF = the PC PC+d else ull JR T,$+2+d d d d d d d d d 4/2(t/f) if JF = the PC PC+d else ull JR F,$+2+d d d d d d d d d 4/2(t/f) if JF = the PC PC+d else ull JR EQ,$+2+d d d d d d d d d 4/2(t/f) if ZF = the PC PC+d else ull JR Z,$+2+d JR NE,$+2+d d d d d d d d d 4/2(t/f) if ZF = the PC PC+d else ull JR NZ,$+2+d JR CS,$+2+d d d d d d d d d 4/2(t/f) if CF = the PC PC+d else ull JR LT,$+2+d JR CC,$+2+d d d d d d d d d 4/2(t/f) if CF = the PC PC+d else ull JR GE,$+2+d JR LE,$+2+d d d d d d d d d 4/2(t/f) if (CF ZF) = the PC PC+d else ull JR GT,$+2+d d d d d d d d d 4/2(t/f) if (CF ZF) = the PC PC+d else ull JR M,$+3+d d d d d d d d d 5/3(t/f) if SF = the PC PC+d else ull JR P,$+3+d d d d d d d d d 5/3(t/f) if SF = the PC PC+d else ull JR SLT,$+3+d d d d d d d d d 5/3(t/f) if (SF ^ VF) = the PC PC+d else ull JR SGE,$+3+d d d d d d d d d 5/3(t/f) if (SF ^ VF) = the PC PC+d else ull JR SLE,$+3+d d d d d d d d d 5/3(t/f) if ZF (SF ^ VF) = the PC PC+d else ull JR SGT,$+3+d d d d d d d d d 5/3(t/f) if ZF (SF ^ VF) = the PC PC+d else ull JR VS,$+3+d d d d d d d d d 5/3(t/f) if VF = the PC PC+d else ull JR VC,$+3+d d d d d d d d d 5/3(t/f) if VF = the PC PC+d else ull JR $+2+d d d d d d d d d 4 PC PC+d JP m mmmm mmmm 4 PC m JP gg g g g 3 PC gg JP (x) x x x x x x x x 6 PC (x+,x) JP (vw) w w w w w w w w v v v v v v v v 7 PC (vw+,vw) JP (DE) 5 PC (DE+,DE) JP (HL) 5 PC (HL+,HL) JP (IX) 5 PC (IX+,IX) JP (IY) 5 PC (IY+,IY) JP (IX+d) d d d d d d d d 7 PC (IX+d+,IX+d) JP (IY+d) d d d d d d d d 7 PC (IY+d+,IY+d) JP (SP+d) d d d d d d d d 7 PC (SP+d+,SP+d) JP (HL+d) d d d d d d d d 7 PC (HL+d+,HL+d) JP (HL+C) 7 PC (HL+C+,HL+C) JP (+SP) 6 SP SP+:PC (SP+,SP) JP (PC+A) 7 PC (PC+A+,PC+A) ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 73

76 3.5 ジャンプ TLCS-87/C RA Page 74

77 TLCS-87/C 3.6 サブルーチンコール リターン ソフトウエア割り込み ノーオペレーション ニモニック オブジェクトコード (2 進 ) フラグサイ クル オペレーション CALLV 7 (SP,SP-) NxtOp: SP SP-2: PC ( 2+ ベクタコール領域の先頭アドレス値 +, 2+ ベクタコール領域の先頭アドレス値 ) CALL m m m m m m m m m 6 (SP,SP-) NxtOp:SP SP-2: PC m CALL gg g g g 6 (SP,SP-) NxtOp:SP SP-2: PC gg CALL (x) x x x x x x x x 8 (SP,SP-) NxtOp:SP SP-2: PC (x+,x) CALL (vw) w w w w w w w w v v v v v v v v 9 (SP,SP-) NxtOp:SP SP-2: PC (vw+,vw) CALL (DE) 7 (SP,SP-) NxtOp:SP SP-2: PC (DE+,DE) CALL (HL) 7 (SP,SP-) NxtOp:SP SP-2: PC (HL+,HL) CALL (IX) 7 (SP,SP-) NxtOp:SP SP-2: PC (IX+,IX) CALL (IY) 7 (SP,SP-) NxtOp:SP SP-2: PC (IY+,IY) CALL (IX+d) d d d d d d d d 9 (SP,SP-) NxtOp:SP SP-2: PC (IX+d+,IX+d) CALL (IY+d) d d d d d d d d 9 (SP,SP-) NxtOp:SP SP-2: PC (IY+d+,IY+d) CALL (SP+d) d d d d d d d d 9 (SP,SP-) NxtOp:SP SP-2: PC (SP+d+,SP+d) CALL (HL+d) d d d d d d d d 9 (SP,SP-) NxtOp:SP SP-2: PC (HL+d+,HL+d) CALL (+SP) 8 SP SP+: (SP-) NxtOP L : PC L (SP): (SP) NxtOp H : PC H (SP+): SP SP-2 CALL (HL+C) 9 (SP,SP-) NxtOp:SP SP-2: PC (HL+C+,HL+C) CALL (PC+A) 9 (SP,SP-) NxtOp:SP SP-2: PC (PC+A+,PC+A) RET 6 SP SP+2:PC (SP,SP-) RETI * * * * * * 6 SP SP+2:PC (SP,SP-): SP SP+: PSW (SP): IMF (SP). RETN * * * * * * 7 SP SP+2:PC (SP,SP-): SP SP+: PSW (SP): IMF (SP). SWI 9 (SP) PSW:(SP). IMF: (SP-,SP-2) NxtOp: PC (SWI ベクタアドレス +,SWI ベクタアドレス ) NOP ノーオペレーション ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 75

78 3.6 サブルーチンコール リターン ソフトウエア割り込み ノーオペレーション TLCS-87/C RA Page 76

79 TLCS-87/C 第 4 章 TLCS-87/C 命令コードマップ 4. 第 オペコード 下位上位 A B C D E F NOP CLR CF SET CF CPL CF CMP LDW (mem), m LD (mem), LD A, (mem) LD (mem), A (x), (x) (HL) (x) (HL) (x) (HL) (x) (HL) LD A,r LD r, A W C B E D L H A W C B E D L H INC r DEC r A W C B E D L H A W C B E D L H INC rr DEC rr LD LD WA BC DE HL IX IY SP SP,SP+d WA BC DE HL IX IY SP SP,SP-d LD r,a LD rr,m (src) A W C B E D L H WA BC DE HL IX IY SP (PC+A) PUSH rr ( 4) (dst) LD CF,(x).b WA BC DE HL (IX+d) (IY+d) (SP+d) (HL+d) ADDC ADD SUBB SUB AND XOR OR CMP A, A, A, A, A, A, A, A, 7 CALLV 8 9 JRS T,a A B JRS F,a C D E F SET (x).b CLR (x).b POP rr ( 4) (src) JR cc, a WA BC DE HL (IX+d) (IY+d) (SP+d) (HL+d) EQ/Z NE/NZ LT/CS GE/CC LE GT T F source memory prefix: (src) register prefix: g/gg (x) (vw) (DE) (HL) (IX) (IY) (+SP) (HL+C) A/WA W/BC C/DE B/HL E/IX D/IY L/SP H/HL destiatio memory prefix: (dst) LD RET RETI JR a CALL JP m SWI RBS, (x) (vw) (DE) (HL) (IX) (IY) (SP-) (HL+C) m or ) 2) 3) 4) 網掛け位置のコードは未定義です register prefix 命令 (xe8 ~ xef) は 次のページの.7 (2) が第 2 オペコードです source/destiatio prefix 命令 (xe ~ xe7 / xf ~ xf7 / x54~x57 / xd4 ~ xd7 / x4f) は.7 (3) が第 2 オペコードです PUSH rr/pop rr 命令に使用できるレジスタ (rr) は WA, BC, DE, HL のみです RA Page 77

80 第 4 章 TLCS-87/C 命令コードマップ 4.2 第 2 オペコード ( レジスタプリフィックス ) TLCS-87/C 4.2 第 2 オペコード ( レジスタプリフィックス ) 下位上位 A B C D E F ADDC ADD SUBB SUB AND XOR OR CMP ADDC ADD SUBB SUB AND XOR OR CMP A, g A, g A, g A, g A, g A, g A, g A, g W, g W, g W, g W, g W, g W, g W, g W, g C, g C, g C, g C, g C, g C, g C, g C, g B, g B, g B, g B, g B, g B, g B, g B, g 2 E, g E, g E, g E, g E, g E, g E, g E, g D, g D, g D, g D, g D, g D, g D, g D, g L, g L, g L, g L, g L, g L, g L, g L, g H, g H, g H, g H, g H, g H, g H, g H, g LD r, g LD rr, gg A W C B E D L H WA BC DE HL IX IY SP XOR CF, g.b LD CF, g.b ADDC ADD SUBB SUB AND XOR OR CMP ADDC ADD SUBB SUB AND XOR OR CMP g, g, g, g, g, g, g, g, gg, m gg, m gg, m gg, m gg, m gg, m gg, m gg, m XCH r, g XCH rr, gg A W C B E D L H WA BC DE HL IX IY SP ADDC ADD SUBB SUB AND XOR OR CMP ADDC ADD SUBB SUB AND XOR OR CMP WA, gg WA, gg WA, gg WA, gg WA, gg WA, gg WA, gg WA, gg BC, gg BC, gg BC, gg BC, gg BC, gg BC, gg BC, gg BC, gg 9 DE, gg DE, gg DE, gg DE, gg DE, gg DE, gg DE, gg DE, gg HL, gg HL, gg HL, gg HL, gg HL, gg HL, gg HL, gg HL, gg A IX, gg IX, gg IX, gg IX, gg IX, gg IX, gg IX, gg IX, gg IY, gg IY, gg IY, gg IY, gg IY, gg IY, gg IY, gg IY, gg B C D E F SP, gg SP, gg SP, gg SP, gg SP, gg SP, gg SP, gg SP, gg HL, gg HL, gg HL, gg HL, gg HL, gg HL, gg HL, gg HL, gg SET g.b CLR g.b JR cc, a PUSH POP DAA DAS PUSH POP LD M P SLT SGE SLE SGT VS VC gg gg g g PSW PSW PSW, CPL g.b LD g.b, CF SHLCA SHRCA MUL DIV SHLC SHRC ROLC RORC NEG RETN CALL JP SWAP gg gg ggh, ggl gg, C g g g g CS, gg gg gg g ) 網掛け位置のコードは未定義です RA Page 78

81 TLCS-87/C 4.3 第 2 オペコード ( メモリプリフィックス ) 下位上位 A B C D E F ADDC ADD SUBB SUB AND XOR OR CMP ADDC ADD SUBB SUB AND XOR OR CMP A, (src) A, (src) A, (src) A, (src) A, (src) A, (src) A, (src) A, (src) W, (src) W, (src) W, (src) W, (src) W, (src) W, (src) W, (src) W, (src) C, (src) C, (src) C, (src) C, (src) C, (src) C, (src) C, (src) C, (src) B, (src) B, (src) B, (src) B, (src) B, (src) B, (src) B, (src) B, (src) 2 E, (src) E, (src) E, (src) E, (src) E, (src) E, (src) E, (src) E, (src) D, (src) D, (src) D, (src) D, (src) D, (src) D, (src) D, (src) D, (src) L, (src) L, (src) L, (src) L, (src) L, (src) L, (src) L, (src) L, (src) H, (src) H, (src) H, (src) H, (src) H, (src) H, (src) H, (src) H, (src) LD r, (src) LD rr, (src) A W C B E D L H WA BC DE HL IX IY SP XOR CF, (src).b LD CF, (src).b ADDC ADD SUBB SUB AND XOR OR CMP LD (dst), rr (src), (src), (src), (src), (src), (src), (src), (src), WA BC DE HL IX IY SP XCH r, (src) LD (dst), r A W C B E D L H A W C B E D L H ADDC ADD SUBB SUB AND XOR OR CMP ADDC ADD SUBB SUB AND XOR OR CMP WA, (src) WA, (src) WA, (src) WA, (src) WA, (src) WA, (src) WA, (src) WA, (src) BC, (src) BC, (src) BC, (src) BC, (src) BC, (src) BC, (src) BC, (src) BC, (src) 9 DE, (src) DE, (src) DE, (src) DE, (src) DE, (src) DE, (src) DE, (src) DE, (src) HL, (src) HL, (src) HL, (src) HL, (src) HL, (src) HL, (src) HL, (src) HL, (src) A IX, (src) IX, (src) IX, (src) IX, (src) IX, (src) IX, (src) IX, (src) IX, (src) IY, (src) IY, (src) IY, (src) IY, (src) IY, (src) IY, (src) IY, (src) IY, (src) B C D E F SP, (src) SP, (src) SP, (src) SP, (src) SP, (src) SP, (src) SP, (src) SP, (src) HL, (src) HL, (src) HL, (src) HL, (src) HL, (src) HL, (src) HL, (src) HL, (src) SET (src).b CLR (src).b XCH rr, (src) WA BC DE HL IX IY SP HL CPL (src).b LD (src).b, CF INC SET LD ROLD RORD DEC LD CLR CPL LD CALL JP (src) (src). A (src).a, CF A,(src) A,(src) (src) (dst), (src).a (src).a CF, (src).a (src) (src) ) 網掛け位置のコードは未定義です RA Page 79

82 第 4 章 TLCS-87/C 命令コードマップ 4.3 第 2 オペコード ( メモリプリフィックス ) TLCS-87/C ) レジスタプリフィックスの第 オペコードは 以下のとおりです g 第 オペコード gg 第 オペコード A E8 WA E8 W E9 BC E9 C EA DE EA B EB HL EB E EC IX EC D ED IY ED L EE SP EE H EF HL EF ) メモリプリフィックスの第 オペコードは 以下のとおりです (src) 第 オペコード (dst) 第 オペコード (x) E (x) F (vw) E (vw) F (DE) E2 (DE) F2 (HL) E3 (HL) F3 (IX) E4 (IX) F4 (IY) E5 (IY) F5 (+SP) E6 (SP-) F6 (HL+C) E7 (HL+C) F7 (IX+d) D4 (IX+d) 54 (IY+d) D5 (IY+d) 55 (SP+d) D6 (SP+d) 56 (HL+d) D7 (HL+d) 57 (PC+A) 4F RA Page 8

83 TLCS-87/C 第 5 章 修正履歴 5. 修正履歴 Rev RA 修正内容 6 進数の表記を H から x に 2 進数の表記を B から y に修正しました LD RBS, の記述を LD RBS, LD RBS, 記述に変更しました RA Page 8

84 第 5 章修正履歴 5. 修正履歴 TLCS-87/C RA Page 82

870C-INST.book.pdf

870C-INST.book.pdf 4 TLCS-87/C TLCS-87/C. TLCS-87/C 32 73 TLCS-87/ C 5 TLCS-87/C I/O 42 - / 7 49 6 / 7 43 / 4 4 SP 2 / 4 6 4 29 4 28 8 6 6 2 87 2 2 3 5 2 2 6 2 6 9 45 2 2 2 8 ( ) 2 2 / 6 ( ) 2 2 8 2 2 / 3 27 / / / / / 8

More information

TLCS-870/C1シリーズ CPU

TLCS-870/C1シリーズ CPU シリーズ CPU セミコンダクター社 CMOS 8 ビットマイクロコンピュータ TLCS-870/C1 シリーズ TLCS-870/C1 シリーズは 東芝オリジナルのコンパクトで高速 / 高機能, 低消費電力の 8 ビットシングルチップマイクロコンピュータです 特長 直交性のある豊富な命令セット : 133 種 732 命令東芝オリジナルマイクロコントローラ TLCS-870/C とバイナリレベルでのコンパチビリティを持たせており

More information

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c 第 11 回機械語とアーキテクチャ コンピュータは, 記号で組み立てられ, 記号で動く機械 : ソフトウェアソフトウェア としても理解されなければならない ソフトウェアの最も下位レベルのしくみが ( 命令セット ) アーキテクチャ である 講義では命令符号 ( 機械語 ) の構成と種類についてまとめる また, 機械語を効率良く実行するために採用されている技術について紹介する 機械語とアセンブリ言語

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンピュータアーキテクチャ 第 7 週命令セットアーキテクチャ ( 命令の表現 命令の実行の仕組 ) 2013 年 11 月 6 日 金岡晃 授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現

More information

Microsoft PowerPoint - ProcML-12-3.ppt

Microsoft PowerPoint - ProcML-12-3.ppt プロセッサと 年次前次前期 ( 第 回 ) 進数の加減算 (overflow( overflow) 演習 次の ビット演算の結果は overflow か? () + + () + + 答 答 中島克人 情報メディア学科 [email protected] () - = + + 答 進数の加減算 (overflow( overflow) 演習 次の ビット演算の結果は overflow

More information

目次 [ はじめに ] 1 [1] レジスタについて 1 [2] 8ビット転送命令 1 1. MOV 1, MOV,M 2 3. MOV M, 2 4. MVI,B MVI M,B LDAX B 2 7. LDAX D 2 8. LDA NN 2 9. STAX

目次 [ はじめに ] 1 [1] レジスタについて 1 [2] 8ビット転送命令 1 1. MOV 1, MOV,M 2 3. MOV M, 2 4. MVI,B MVI M,B LDAX B 2 7. LDAX D 2 8. LDA NN 2 9. STAX ND80ZⅢ 8080 命令説明書 ( 有 ) 中日電工 目次 [ はじめに ] 1 [1] レジスタについて 1 [2] 8ビット転送命令 1 1. MOV 1,2 1 2. MOV,M 2 3. MOV M, 2 4. MVI,B2 2 5. MVI M,B2 2 6. LDAX B 2 7. LDAX D 2 8. LDA NN 2 9. STAX B 2 10. STAX D 2 11. STA

More information

コンピュータ工学Ⅰ

コンピュータ工学Ⅰ コンピュータ工学 Ⅰ 中央処理装置 Rev. 2019.01.16 コンピュータの基本構成と CPU 内容 ➊ CPUの構成要素 ➋ 命令サイクル ➌ アセンブリ言語 ➍ アドレッシング方式 ➎ CPUの高速化 ➏ CPUの性能評価 コンピュータの構成装置 中央処理装置 (CPU) 主記憶装置から命令を読み込み 実行を行う 主記憶装置 CPU で実行するプログラム ( 命令の集合 ) やデータを記憶する

More information

主記憶の使われ方 システム領域 SP スタックポインタ システム用 スタック用 プログラム起動時に OS によって確 保される (SP が決められる ) プログラム用 メインルーチン プログラム領域 命令コードの列定数 変数用領域サブルーチン命令コードの列 先頭番地は リンク時に OS によって決め

主記憶の使われ方 システム領域 SP スタックポインタ システム用 スタック用 プログラム起動時に OS によって確 保される (SP が決められる ) プログラム用 メインルーチン プログラム領域 命令コードの列定数 変数用領域サブルーチン命令コードの列 先頭番地は リンク時に OS によって決め Copyright 守屋悦朗 2005 コンピュータの仕組み (2) ソフトウェア 3.3 アセンブラプログラミング (CASLⅡ) 情報処理技術者試験基本情報技術者試験 (http://www.jitec.jp/index.html) では 仮想コンピュータ (16ビットのワードマシン 主記憶容量 64KW)COMETⅡを定義し COMETⅡ のためのアセンブリ言語 CASLⅡを定めている COMETⅡとCASLⅡの仕様は情報処理技術者試験センターのウェブサイト

More information

CASL入門

CASL入門 4 章 機械語の設計 ここでは 機械語の設計をしてみましょう 機械語の設計! そんなことができるのでしょうか 情報処理技術者試験の CASLⅡ 説明書の参考資料には 命令後の構成は定義しないが と記載されています アセンブラ言語を理解するためには機械語の理解が非常に大切になりますし 自分で設計してみれば格段に理解が容易になります そこで 定義されていないなら 定義してしまおう というわけです CASLⅡが動くコンピュータである

More information

ソフトウェア基礎技術研修

ソフトウェア基礎技術研修 算術論理演算ユニットの設計 ( 教科書 4.5 節 ) yi = fi (x, x2, x3,..., xm) (for i n) 基本的な組合せ論理回路 : インバータ,AND ゲート,OR ゲート, y n 組合せ論理回路 ( 復習 ) 組合せ論理回路 : 出力値が入力値のみの関数となっている論理回路. 論理関数 f: {, } m {, } n を実現.( フィードバック ループや記憶回路を含まない

More information

1 8 Z80 Z GBA ASIC 2 WINDOWS C 1

1 8 Z80 Z GBA ASIC 2 WINDOWS C 1 1 8 Z80 Z80 20 8080 GBA ASIC 2 WINDOWS C 1 2.1 Z-80 A 0 - A 15 CPU Z80 D 0- D 7 I/O Z80 1: 1 (1) CPU CPU Z80 CPU Z80 AND,OR,NOT, (2) CPU (3) I/O () Z80 (4) 2 Z80 I/O 16 16 A 0, A 1,, A 15 (5) Z80I/O 8

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 仮想マシン () 仮想マシン 復習 仮想マシンの概要 hsm 仮想マシン プログラム言語の処理系 ( コンパイラ ) 原始プログラム (Source program) コンパイラ (Compiler) 目的プログラム (Object code) 原始言語 (Source language) 解析 合成 目的言語 (Object Language) コンパイルする / 翻訳する (to compile

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 4 回目演算子 今日の講義で学ぶ内容 演算子とオペランド 式 様々な演算子 代表的な演算子の使用例 演算子とオペランド 演算子 演算の種類です例えば + - * / 掛け算の記号は ではなく *( アスタリスク ) を使います割り算の記号は ではなく /( スラッシュ ) を使います オペランド 演算の対象です例えば 5( 値 ) num( 変数 ) 式 演算子とオペランドの組み合わせにより構成される数式です式は演算結果をもちます

More information

Microsoft PowerPoint - 7.Arithmetic.ppt

Microsoft PowerPoint - 7.Arithmetic.ppt 第 7 章デジタル演算回路 1 デジタル信号処理音声, 音楽, 通信信号 信号 = 符号付き 2 進データ 負の数値の表現方法 2 2 進数 n ビット n-1 =Σb i 2 i 0 2 の補数 +=2 n n-1 n-1 2 n =1+Σb i 2 i +Σb i 2 i 0 0 n-1 =2 n ー =1+Σb i 2 i 0 3 2 進数の補数 2 の補数 各桁のビットを反転した後で最下位に

More information

main.dvi

main.dvi 20 II 7. 1 409, 3255 e-mail: [email protected] 2 1 1 1 4 2 203 2 1 1 1 5 503 1 3 1 2 2 Web http://www.icsd2.tj.chiba-u.jp/~namba/lecture/ 1 2 1 5 501 1,, \,", 2000 7. : 1 1 CPU CPU 1 Intel Pentium

More information

ND80ZⅢ応用プログラムq

ND80ZⅢ応用プログラムq Z80 命令説明書 ( 有 ) 中日電工 目次 [ はじめに ] 1 Ⅰ. レジスタについて 1 Ⅱ. 8 ビット転送命令 1 1.LD, 1 2.LD,(HL) 1 3.LD (HL), 1 4.LD,n 1 5.LD (HL),n 1 6.LD A,(BC) 2 7.LD A,(DE) 2 8.LD A,(nn) 2 9.LD (BC),A 2 10. LD (DE),A 2 11. LD (nn),a

More information

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の ) 割り込み / ポーリング /DMA/DTC(RL78 での周辺機能制御 ) 周辺機能を介してデータ転送を制御する方法には, 大きく分けて 3 つの方法があります その中で DMA や DTC は CPU を介することなく, 高速にデータを転送することができますが, 使用できるチャネル数が限られます そのため, たとえば,CSI のスレーブでの高速通信のように限られた時間内に転送が必要な場合に使用できます

More information

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx 2019 年 4 月 26 日ハードウエア設計論 :3 ハードウエアにおける設計表現 ハードウエア設計記述言語 VerilogHDL ~ 種々の記述 ~ ALU の実装とタイミングに関して always @(A or B or C) Ubuntu を起動し verilog が実行できる状態にしておいてください 79 演習 4: 簡単な演算器 1 入力 A:8 ビット 入力 B:8 ビット 出力 O:8

More information

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ

More information

                 ZB11W取扱説明書

                 ZB11W取扱説明書 KL5C8012(Z80) 命令説明書 ( 有 ) 中日電工 目次 Ⅰ. レジスタについて 1 Ⅱ. 8 ビット転送命令 2 1.LD, 2 2.LD,(HL) 2 3.LD (HL), 2 4.LD,n 2 5.LD (HL),n 2 6.LD A,(BC) 2 7.LD A,(DE) 3 8.LD A,(nn) 3 9.LD (BC),A 3 10. LD (DE),A 3 11. LD (nn),a

More information

PowerPoint Presentation

PowerPoint Presentation マイクロプロセッサ ( 第 1 回 ) P. Ravindra S De Silva [email protected] 1 はじめに 情報 知能工学系学生実験サイト http://www.cs.tut.ac.jp/jikken/ 実験の説明資料などはWeb 上で公開中 http://www.icd.cs.tut.ac.jp/~ravi/mp/index.html 受け取りは メールにて行う 宛先は [email protected]

More information

.,. 0. (MSB). =2, =1/2.,. MSB LSB, LSB MSB. MSB 0 LSB 0 0 P

.,. 0. (MSB). =2, =1/2.,. MSB LSB, LSB MSB. MSB 0 LSB 0 0 P , 0 (MSB) =2, =1/2, MSB LSB, LSB MSB MSB 0 LSB 0 0 P61 231 1 (100, 100 3 ) 2 10 0 1 1 0 0 1 0 0 100 (64+32+4) 2 10 100 2 5, ( ), & 3 (hardware), (software) (firmware), hardware, software 4 wired logic

More information

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE 差し替え版 第 7 回マイクロプロセッサの VHDL 記述 マイクロプロセッサ全体および主要な内部ユニットの,VHDL 記述の例を示す. 1)MPU(Micro Processor Uit) Module 1MPU のエンティティ記述とコントローラの例以下は, 簡単な MPU の VHDL 記述の例である ただし, アーキテクチャ部分は, 命令読み込みと実行の状態遷移のみを実現したステートマシンである

More information

ex05_2012.pptx

ex05_2012.pptx 2012 年度計算機システム演習第 5 回 2012.05.25 高水準言語 (C 言語 ) アセンブリ言語 (MIPS) 機械語 (MIPS) コンパイラ アセンブラ 今日の内容 サブルーチンの実装 Outline } ジャンプ 分岐命令 } j, jr, jal } レジスタ衝突 回避 } caller-save } callee-save 分岐命令 ( 復習 ) } j label } Jump

More information

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド RH850の割り込み / 例外実現方法 CC-RH アプリケーションガイド R20UT3546JJ0101 2018.10.12 ソフトウェア開発統括部 ソフトウェア技術部ルネサスエレクトロニクス株式会社 アジェンダ 概要ページ 03 割り込み / 例外発生時に実行する関数の定義ページ 10 直接ベクタ方式のベクタの定義ページ 17 テーブル参照方式のベクタの定義ページ 25 その他 割り込み制御ページ

More information

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが MPASM MPASM は Microchip Tecnology Inc. 社の開発した PIC のためのアセンブリ言語である ここでは MPASM の文法と使用法などについて記述する 1. 文法 ソースコードファイルは ASCII テキストファイルエディターを使って作成する そのように作られたソースコードは以下に示す基本的ガイドラインに従うべきである ソースファイルの各行は次の 4 つのタイプの情報を含んでよい

More information

CASL入門

CASL入門 2 章 システム COMETⅡ の仕様 ここでは 情報処理推進機構 (IPA) が発行している情報処理技術者試験のパンフレットにある アセンブラ言語の仕様 にそって説明していきます この資料では システム COMETⅡの仕様 の中に命令の説明が書かれており アセンブラ言語 CASLⅡの仕様 には命令の説明は記載されていません 何か奇異な感じがしますが アセンブラの命令はハードウェア命令そのものであるので

More information

Microsoft PowerPoint - H2.ppt [互換モード]

Microsoft PowerPoint - H2.ppt [互換モード] 力装置はじめに マイクロプロセッサ ( 第 回 ) 担当 : 佐竹純二 情報 知能工学系学生実験サイト http://www.cs.tut.ac.jp/jikken/ 実験の説明資料などは Web 上で公開中 http://www.aisl.cs.tut.ac.jp/~satake/class/ 実験レポートの受け取りはMoodle 上で行う https://moodle.imc.tut.ac.jp/course/view.php?id=285

More information

3 SIMPLE ver 3.2: SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE (main memo

3 SIMPLE ver 3.2: SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE (main memo 3 SIMPLE ver 3.2: 20190404 1 3 SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE 1 16 16 (main memory) 16 64KW a (C )*(a) (register) 8 r[0], r[1],...,

More information

目次 1. はじめに 1 2. マルチALUプロセッサ MAP MAP の構成 MAP 命令セットアーキテクチャ 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 次 Booth アルゴリズム 次 Bo

目次 1. はじめに 1 2. マルチALUプロセッサ MAP MAP の構成 MAP 命令セットアーキテクチャ 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 次 Booth アルゴリズム 次 Bo 目次 1. はじめに 1 2. マルチALUプロセッサ MAP 2 2.1 MAP の構成 2 2.2 MAP 命令セットアーキテクチャ 3 2.3 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 7 3.1 1 次 Booth アルゴリズム 7 3.2 2 次 Booth アルゴリズム 8 3.3 3 次 Booth アルゴリズム 10 4. シミュレーションによる並列化の評価

More information

<5A2D38308A E9197BF2E786C73>

<5A2D38308A E9197BF2E786C73> A.Z-80 レジスタ構成図 主レジスタ 補助レジスタ アキュームレータ A フラグレジスタ F アキュームレータ A' フラグレジスタ F' B C B' C' D E D' E' 汎用レジスタ H L H' L' インタラプトベクトルレジスタ I メモリリフレッシュレジスタ R インデックスレジスタ IX インデックスレジスタ IY 専用レジスタ スタックポインタ SP プログラムカウンタ PC

More information

ソフトウェア基礎技術研修

ソフトウェア基礎技術研修 命令と命令表現 ( 教科書 3.1 節 ~3.4 節 ) プロセッサの命令と命令セット 命令 : プロセッサへの指示 ( プロセッサが実行可能な処理 ) 加算命令 減算命令 論理演算命令 分岐命令 命令セット : プロセッサが実行可能な命令の集合 ( プログラマから見えるプロセッサの論理仕様 ) プロセッサ A 加算命令分岐命令 プロセッサ B 加算命令減算命令 命令セットに含まれない命令は直接実行できない!

More information

CASL入門

CASL入門 3 章 アセンブラ言語 CASLⅡ の仕様 ここでは アセンブラ言語の説明をします ちょっと待て 第 2 章の話は アセンブラ言語の話ではなかったのか と思われた人はいませんでしょうか 一般に プログラム という場合 その構成要素は次の 3 つに分かれます 1 動作のための命令加算 減算 比較などの命令 2 領域確保や定数定義など 動作しない部分 3 プログラム名の定義などこのうち 1が第 3 章で説明した部分にあたります

More information

Microsoft PowerPoint - NxLecture ppt [互換モード]

Microsoft PowerPoint - NxLecture ppt [互換モード] 011-05-19 011 年前学期 TOKYO TECH 命令処理のための基本的な 5 つのステップ 計算機アーキテクチャ第一 (E) 5. プロセッサの動作原理と議論 吉瀬謙二計算工学専攻 kise_at_cs.titech.ac.jp W61 講義室木曜日 13:0-1:50 IF(Instruction Fetch) メモリから命令をフェッチする. ID(Instruction Decode)

More information

4. 半角文字コード変換表 ここでは 半角文字のコード変換についての詳細な表を記載します の文字と文字コード (16 進数 ) には 表内で灰色の網掛けを設定しています 4.1 IBMカナ文字拡張からへの変換 16 進数 16 進数 16 進数 16 進数 16 進数 16 進数 SP 0x40 S

4. 半角文字コード変換表 ここでは 半角文字のコード変換についての詳細な表を記載します の文字と文字コード (16 進数 ) には 表内で灰色の網掛けを設定しています 4.1 IBMカナ文字拡張からへの変換 16 進数 16 進数 16 進数 16 進数 16 進数 16 進数 SP 0x40 S 2013 年 4 月 3 日 お客様各位 株式会社セゾン情報システムズ HULFT 事業部 コード変換機能での のサポート 拝啓貴社ますますご清祥のこととお慶び申し上げます 平素は格別のご高配を賜り 厚く御礼申し上げます idivo Ver.1.4.0 では コード変換機能で変換できるコード体系の 1 つとして をサポートしました ついては 次に示すコード変換のパターンにおける 文字と文字コード (16

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介安全機能 ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ 安全機能の概要 フラッシュ メモリ CRC 演算機能 RAM パリティ エラー検出機能 データの保護機能 RAM ガード機能 SFR ガード機能 不正メモリ アクセス機能 周辺機能を使用した安全機能 周波数検出機能 A/D

More information

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1 COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1 ここでは機械命令レベルプログラミングを学びます 機械命令の形式は学びましたね機械命令を並べたプログラムを作ります 2 その前に プログラミング言語について 4 プログラミング言語について 高級言語 (Java とか C とか ) と機械命令レベルの言語 ( アセンブリ言語 ) があります 5 プログラミング言語について

More information

MASM32 基本

MASM32 基本 MASM32 の基本 MASM 3 今回の課題項目 MASM(8086) の命令 転送命令 システムコール 今回の重点項目 MASM(8086) の命令 -1- 命令 各論 予備知識 実効アドレス EA(Effective Address) の計算方法 8086 で 処理速度 ( クロック数 ) は アドレッシング方法に依り異なる 各アドレッシングに依るクロック数を 下記の表に示す アドレッシングクロック数

More information

MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を

MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev:01 10.4.2013 PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を確認する方法 JTAG アクセスができるデバイス ( セキュリティ Fuse 断ではできません ) に対して

More information

Microsoft PowerPoint - Chap4 [Compatibility Mode]

Microsoft PowerPoint - Chap4 [Compatibility Mode] 計算機構成論 (Chap. ) @C01 http://www.ngc.is.ritsumei.ac.jp/~ger/lectures/comparch2012/index.html (user=ganbare, passwd = 初回の講義で言いました ) 講義に出るなら 分からないなら質問しよう 単位を取りたいなら 章末問題は自分で全部といておこう ( レポートと考えればいいんです!) ご意見

More information

DRAM SRAM SDRAM (Synchronous DRAM) DDR SDRAM (Double Data Rate SDRAM) DRAM 4 C Wikipedia 1.8 SRAM DRAM DRAM SRAM DRAM SRAM (256M 1G bit) (32 64M bit)

DRAM SRAM SDRAM (Synchronous DRAM) DDR SDRAM (Double Data Rate SDRAM) DRAM 4 C Wikipedia 1.8 SRAM DRAM DRAM SRAM DRAM SRAM (256M 1G bit) (32 64M bit) 2016.4.1 II ( ) 1 1.1 DRAM RAM DRAM DRAM SRAM RAM SRAM SRAM SRAM SRAM DRAM SRAM SRAM DRAM SRAM 1.2 (DRAM, Dynamic RAM) (SRAM, Static RAM) (RAM Random Access Memory ) DRAM 1 1 1 1 SRAM 4 1 2 DRAM 4 DRAM

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンピュータアーキテクチャ 第 13 週 割込みアーキテクチャ 2013 年 12 月 18 日 金岡晃 授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現 ) 演算アーキテクチャ ( 演算アルゴリズムと回路

More information

スライド 1

スライド 1 RX62N 周辺機能紹介データフラッシュ データ格納用フラッシュメモリ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ データフラッシュの概要 プログラムサンプル 消去方法 書き込み方法 読み出し方法 FCUのリセット プログラムサンプルのカスタマイズ 2 データフラッシュの概要 3 データフラッシュとは フラッシュメモリ

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介 SAU シリアル アレイ ユニット ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ SAU の概要 UART 通信機能のプログラム サンプル紹介 2 SAU の概要 3 SAU の機能 クロック同期式調歩同期式マスタ動作のみ チャネル 0: 送信チャネル 1: 受信 4 UART

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 部 内 向 けスキルアップ 研 修 組 込 みOS 自 作 入 門 2013 年 8 月 4thステップ 担 当 : 中 村 目 次 はじめに ブート ローダー シリアル 経 由 でのファイル 転 送 XMODEMを 実 装 する(もくもく 会 ) アセンブラ プログラミング はじめに 前 回 やったこと ROM RAM 自 動 変 数 静 的 変 数 データ 領 域 に 関 する 学 習 今 回

More information

MODBUS ユーザーズマニュアル 페이지 1 / 23

MODBUS ユーザーズマニュアル 페이지 1 / 23 MODBUS ユーザーズマニュアル 페이지 1 / 23 目次 1. 概要... 1 2. GX7 サポートファンクションコード... 1 3. GX7 サポートリファレンス... 1 4. GX7 サポートリファレンスとファンクションコードの関係... 2 5. XD+ 内プロジェクト設定でオプション別の機能... 4 6. トラブルシューティング... 9 A. APPENDIX... 12 1.

More information

Microsoft PowerPoint - 工学ゼミⅢLED1回_2018

Microsoft PowerPoint - 工学ゼミⅢLED1回_2018 工学ゼミ Ⅲ 安全 環境活動に役立つ LEDイルミネーションの製作 第 1 回 1. 概要 3~5 名の学生グループで安全 環境活動に役立つ LED イルミネーションを作製する 作品のデザイン画や部品リスト 回路図 動作フロー図等は事前に作成し 計画的に作業を行うことが求められる 2. 達成すべき目標 作品に係る資料を事前にまとめ それに基づいて製作が行える 集団の中で 自身の知識 技術を積極的に応用しながら

More information

Microsoft PowerPoint - Chap3 [Compatibility Mode]

Microsoft PowerPoint - Chap3 [Compatibility Mode] 計算機構成論 (Chap. 3) @C4 http://www.ngc.is.ritsumei.ac.jp/~ger/lectures/comparch22/index.html (user=ganbare, passwd = 初回の講義で言いました ) 講義に出るなら 分からないなら質問しよう 単位を取りたいなら 章末問題は自分で全部といておこう ( レポートと考えればいいんです!) ご意見 ご要望

More information

Microsoft PowerPoint - NxLec-2010-11-01.ppt

Microsoft PowerPoint - NxLec-2010-11-01.ppt 2010 年 後 学 期 レポート 問 題 計 算 機 アーキテクチャ 第 二 (O) 4. シングルサイクルプロセッサの 実 装 とパイプライン 処 理 大 学 院 情 報 理 工 学 研 究 科 計 算 工 学 専 攻 吉 瀬 謙 二 kise _at_ cs.titech.ac.jp S321 講 義 室 月 曜 日 5,6 時 限 13:20-14:50 1 1. 1から100までの 加 算

More information

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル IA-32 インテル アーキテクチャソフトウェア デベロッパーズ マニュアル 中巻 B: 命令セット リファレンス N-Z 注記 : IA-32 インテル アーキテクチャ ソフトウェア デベロッパーズ マニュアル は 次の 4 巻から構成されています 上巻 : 基本アーキテクチャ ( 資料番号 253665-013J) 中巻 A: 命令セット リファレンス A-M ( 資料番号 253666-013J)

More information

ディジタルシステム設計

ディジタルシステム設計 Z80 Z80 Z80 Z80 ROM RAM I/O 8255 8251 Z80PIO Z80CTC Z80SIO R C L Tr OP TTL MCB Z MC Z Z80 Z80 TMPZ84015BF KL5C8012 64180 H8 H8 PIC Microchip Technology PIC Z80 F A A' ALU B D H C E L IX IY SP PC C E L

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション マイコンプログラミング演習 I 第 04-05 回 LEDを用いたI/O 制御担当 : 植村 実験の目的 本実験ではマイコンシステムを用いた信号の入出力の制御方法を理解することを目的とし, マイコンのアーキテクチャを理解 実装するとともに, アセンブラによるプログラミング技術の習得を行う. 回路の構成として,PIC16F84A を用いてスイッチを入力とする LED の点灯 / 消灯の出力操作を行う回路ならびにアセンブラプログラムを実装する.

More information

アナログ・接点変換器

アナログ・接点変換器 LoRa/ 通信変換器 HLR-RS485 通信仕様書 (Modbus) インターフェース 2019 年 02 月 19 日 改訂履歴 日付改訂者改訂内容 2018/09/14 野村初版 2019/02/19 山下 改訂 1 P12 説明文修正 レジスタ割付修正 P13 キャリアセンス異常エラー追加 承認確認作成 ( 3 ) 目次 1 概要... 4 2 基本仕様... 4 3 通信モードについて...

More information

文字コード (2) 林部祐太 国立国会図書館関西館電子図書館課 2013/9/27 1

文字コード (2) 林部祐太 国立国会図書館関西館電子図書館課 2013/9/27 1 文字コード (2) 林部祐太 (NAIST) @ 国立国会図書館関西館電子図書館課 2013/9/27 1 参考書 プログラマのための文字コード技術入門 ( 技術評論社 2010 年 ) 特に注記がない場合, 本スライドの図表は本書からの引用 2 2 予定 第 1 回文字コードとは (2013-7) 文字とコンピュータ 文字コードの編成 ( 文字集合 符号化文字集合 文字符号化方式 ) 第 2 回代表的な符号化文字集合

More information

Microsoft PowerPoint - Sol7 [Compatibility Mode]

Microsoft PowerPoint - Sol7 [Compatibility Mode] ミニクイズ 4 E ハザード ( つ前の命令の結果を必要とする状況 ) が発生する条件を つ挙げよ. また それぞれの時に 制御線 ForwardA, ForwardB はどのように設定すれば良いか? ( 回答 ) E/.RegWrite= かつ E/.RegisterRd = ID/.RegisterRs この時,ForwardA = と制御すれば良い. E/.RegWrite= かつ E/.RegisterRd

More information

スライド 1

スライド 1 2. 転送命令を学ぼう 2004 年 8 月に本講義ノートを Web にアップして以来, とても多くの方の訪問を受けてきました. 内容が一部古くなっていたので,2012 年 5 月時点の情報に書き改めました. 主な変更点は以下の通りです. 第 0 章に本講座の準備のための章を設け, 以下の更新をしました. 1. プログラム開発環境 (MPLAB IDE) を v8.84 に更新しました. 2012

More information

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは? レジスタ アクセスの拡張機能 1. レジスタ アクセスの概要 Smart-USB Plus 製品で利用できるレジスタ アクセスとは FPGA 内にハードウエア レジスタを実装し ホスト PC の制御ソフトウエアから USB 経由でそれらのレジスタに値を設定したり レジスタの設定値を読み出すことができる機能です このレジスタ アクセス制御には USB バス仕様に基づく コントロール転送 を利用しています

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 03 変数と式 人間システム工学科井村誠孝 [email protected] 3.1 変数と型 変数とは p.60 C 言語のプログラム中で, 入力あるいは計算された数や文字を保持するには, 変数を使用する. 名前がついていて値を入れられる箱, というイメージ. 変数定義 : 変数は変数定義 ( 宣言 ) してからでないと使うことはできない. 代入 : 変数には値を代入できる.

More information

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー 初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コード生成を利用したプログラム作成 ( ポート入力 ) P47 次回 ( 第 4 回 ) は, 以下の内容を予定しています

More information

8ビットデータバスでアクセスする場合は、16ビットレジスタを上位バイト、下位バイトに分けてアクセスします

8ビットデータバスでアクセスする場合は、16ビットレジスタを上位バイト、下位バイトに分けてアクセスします はじめにこのたびは 弊社 T-IADA168 をお買い上げ頂きましてまことにありがとうございます このマニュアルは T-IADA168 の概要等について説明しています 各 LSI についての詳細は必要に応じてデータシートを参照してください ハードウエアの不具合に関しましてのサポートはいたしますが RTOS を含めたソフト面のサポートは基本的にはしておりません 注意事項 (1) 本書の内容に関しては将来予告なしに変更することがあります

More information