TLCS-87/C シリーズ 命令セット セミコンダクター社
Page 2 TLCS-87/C
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 増減 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 62 ジャンプ 6 24 分岐 コール 4 6 リターン 3 3 その他ソフトウエア割り込み / その他 2 2 計 33 種 732 命令 表 -2 アドレッシングモード ( / 2) レジスタ間接 7 種 ダイレクト 2 レジスタ RA Page
第 章概要. 記号の説明 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
TLCS-87/C 表 -3 r, g 8 ビットレジスタ 2 3 4 5 6 7 A W C B E D L H 表 -4 rr, gg 2 3 4 5 6 7 6 ビットレジスタ 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
第 章概要.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
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), 命令 ) はデスティネーションより後に置きます 2 3 4 LD A, B opcode LD A, opcode LD WA, m opcode m LD (x), opcode x LDW (x), m opcode x m.3.2 2 バイトオペコード命令のコードフォーマット 第 バイトに第 オペコードを置き 次に第 オペコードで指定されたオペランドを置き その後に第 2 オペコードと第 2 オペコードで指定されたオペランドを置きます 第 オペコードは アドレッシングモード指定用のコードでプリフィックスコードとも呼びます プリフィックスには レジスタを指定するレジスタプリフィックスと ソースまたはデスティネーションメモリを指定するソース / デスティネーションメモリプリフィックスがあります なお 次の 5 命令の第 オペコードは 指定レジスタの内容を無視します RA Page 5
第 章概要.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 2 3 4 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 x23 75 75 A IX レジスタの内容で指定されるアドレスすなわち x23 番地のメモリの内容 x75 が A レジスタにロードされます RA Page 6
TLCS-87/C 3: LD A, (IY) IY 23 x23 9B 9B A IY レジスタの内容で指定されるアドレスすなわち x23 番地のメモリの内容 x9b が A レジスタにロードされます.4..2 8 ビットディスプレースメントオフセット付きレジスタ間接 (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 + 23 2 35 x35 C4 C4 A HL レジスタの内容 (x23) にディスプレースメント (x2) を符号拡張して (x2) 加算した値で指定されるアドレスすなわち x35 番地のメモリの内容 xc4 が A レジスタにロードされます 2: LD A, (IX + xd6) IX + 23 FF D6 F9 D4 D6 xf9 27 27 A RA Page 7
第 章概要.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 x8 36 36 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 4 3 2 SP の内容をインクリメントし その値で指定されるアドレスすなわち x432 番地のメモリの内容 xb7 が A レジスタにロードされます.4..5 スタックポインタ間接オートポストデクリメント (SP ) 実効アドレスは SP の内容となります データ処理後 SP の内容は自動的にデクリメントされます SP のデクリメントによるフラグ変化はありません このアドレッシングモードは デスティネーション ( 転送元 ) メモリのアドレス指定にのみ使用できます RA Page 8
TLCS-87/C : LD (SP ), A SP ( ) 3 x3 C C A SP ( ) 2 F F F SP の内容で指定されるアドレスすなわち x3 番地のメモリに A レジスタの内容 xc がストアされます その後 SP はデクリメントされ x2fff となります.4..6 8 ビットディスプレースメントオフセット付きスタックポインタ間接 (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 + 2 34 FF D6 48 2 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
第 章概要.4 アドレッシングモード TLCS-87/C アキュムレータ 符号拡張した値 x ~ x7f x ~ x7f (~+27) x8 ~ xff xff8 ~ xffff ( 28~ ) : LD A, (PC + A) PC C5 38 +2 xc536 xc537 3F 4 LD A, (PC + A) A ( ) 7 7 + 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 6 6 + 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 ダイレクト.4.2. 8 ビットダイレクト (x) オブジェクトコード中の 8 ビット値 x で直接指定される x ~ xff 番地のアドレス RA Page
TLCS-87/C : LD A, (x87) x87 9 9 A x C 87 LD A, (x87) オブジェクトコードの x (x87) で直接指定されるアドレスすなわち x87 番地の内容 x9 が A レジスタにロードされます.4.2.2 6 ビットダイレクト (vw) オブジェクトコード中の 6 ビット値 vw で直接指定される x ~ xffff 番地のアドレス : LD A, (x5678) x5678 24 24 A E/F w v 56 78 E 78 56 4 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
第 章概要.4 アドレッシングモード TLCS-87/C : LD A, x53 xc xc 8 53 53 A 2: LD WA, x234 xc xc xc2 48 34 2 2 34 W A m ) アセンブラソースプログラム記述上 即値をカッコで囲むことはできません カッコで囲んだ場合はダイレクトアドレッシングモードと見なされます.4.5 リラティブ ( 相対 ).4.5. 8 ビットディスプレースメントリラティブ プログラムカウンタの内容 ( 実行命令の先頭アドレス +2 または +3) に オブジェクトコード中の 8 ビットディスプレースメント値 d を符号拡張 ( 下表参照 ) して 加算した値で指定されるアドレス このアドレッシングモードを持つ命令は JR 命令のみです ディスプレースメント d 符号拡張した値 x ~ x7f x ~ x7f (~+27) x8 ~ xff xff8 ~ xffff ( 28~ ) d : JR $ + 2 + 35H JR xd578 +2 xd54 FC 35 JR PC + D5 43 35 D5 78 xd578 RA Page 2
TLCS-87/C プログラムカウンタの内容 (xd543) にディスプレースメント値 x35 を符号拡張して加算した値で指定されるアドレスすなわち xd578 番地にジャンプします ) $: 実行命令の先頭アドレス 2: JR M, $ + 3 + 35H JR M, xd579 +3 xd54 E8 D 35 JR M, a PC + D5 44 35 D5 79 xd579 サインフラグが なら プログラムカウンタの内容 (xd544) にディスプレースメント値 x35 を符号拡張して加算した値で指定されるアドレスすなわち xd579 番地にジャンプします ) $: 実行命令の先頭アドレス.4.5.2 5 ビットディスプレースメントリラティブ プログラムカウンタの内容 ( 実行命令の先頭アドレス +2) に オペコード中の 5 ビットディスプレースメント値 d を符号拡張 ( 下表参照 ) して 加算した値で指定されるアドレス このアドレッシングモードを持つ命令は JRS 命令のみです ディスプレースメント d 符号拡張した値 x ~xf x ~ xf (~+5) x ~ xf xfff ~ xffff ( 6~ ) 7 6 5 4 3 2 d : JRS T, $ + 2 + 4H JRS T, xe859 xe859 +2 xe863 94 JRS PC + E8 65 FF F4 E8 59 RA Page 3
第 章概要.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 x9 7 6 5 4 3 2 xd2 79 CALLV = 9 2 2 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
TLCS-87/C : SET A.3 A 3 "" A = = 3 2.4.8.2 メモリビット メモリビットアドレッシングモード (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). 3.4.9 レジスタ間接ビット メモリアドレッシングモード (HL), (DE), (IX), (IY), (HL + d), (IX + d), (IY + d), (HL + C), (+SP), (SP + d), (PC + A), (x), (vw) で指定されるアドレスの A レジスタの下位 3 ビットの内容で指定されるビットが操作対象となります : SET (HL). A 7 6 5 4 3 2 4 9C A HL 23 x23 HL レジスタの内容 (x23) で指定されるアドレスの内容 (y) の A レジスタの下位 3 ビットの内容 (y) で指定されるビット 4 が "" にセットされ y となります 2 (HL) SET (mem). A = 4 RA Page 5
第 章概要.4 アドレッシングモード TLCS-87/C RA Page 6
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
第 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
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
第 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
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
第 2 章命令の説明 2. 転送 交換 TLCS-87/C RA Page 22
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
2.2 演算 TLCS-87/C RA Page 4
TLCS-87/C 2.3 シフト ローテート ニブル処理 SHLC g SHRC g ニモニックオブジェクトコード (2 進 ) フラグ サイクル オペレーション g g g C Z * 2 CF 765432 8 ビットレジスタ g の内容を左へ ビットずつ論理シフトします ( レジスタ g の最下位ビットには が入ります キャリーフラグには レジスタ g の最上位ビットの内容が入ります ) シフト後のレジスタ g の内容が x のとき ゼロフラグが にセットされます 例 : A = y, CF = のとき この命令を実行すると A = y, CF =, ZF = となります g g g C Z * 2 765432 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 765432 8 ビットレジスタ 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 * 2 765432 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 9 765432 ( 4 4 ) A (x) 765432 765432 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 765432 765432 A (vw) (4 ) 765432 765432 A (DE) (4 ) (HL) 765432 765432 (4 ) RA Page 4
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 765432 765432 A (IX) (4 ) (IY) 765432 765432 (4 ) A (IX + d) 765432 765432 (4 ) A (IY + d) 765432 765432 (4 ) A (SP + d) 765432 765432 (4 ) A (HL + d) 765432 765432 (4 ) A (HL + C) 765432 765432 A (4 ) (+SP) 765432 765432 ROLD A,(PC+A) A (PC + A) 765432 765432 (4 ) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを左へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません x x x x x x x x 9 A (x) 765432 765432 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
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 ビットの内容は変化しません 9 765432 765432 (4 ) スタックポイントをインクリメントし その値で指定されるアドレスのメモリの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません A A (vw) (DE) 765432 765432 A (4 ) (HL) 765432 765432 A (4 ) (IX) 765432 765432 A (4 ) (IY) 765432 765432 (4 ) A (IX + d) 765432 765432 A (IY + d) 765432 765432 (4 ) A (SP + d) 765432 765432 A (HL + d) 765432 765432 A (HL + C) 765432 765432 A (4 ) (+SP) 765432 765432 (4 ) RA Page 43
2.3 シフト ローテート ニブル処理 TLCS-87/C ニモニックオブジェクトコード (2 進 ) フラグ サイクル オペレーション RORD A,(PC+A) ) A (PC + A) 765432 765432 (4 ) プログラムカウンタ PC の内容に A レジスタの内容を符号拡張して加算した値で指定されるアドレスの内容と A レジスタの下位 4 ビットの内容を連結した 2 ビットデータを右へ 4 ビット単位にローテーションします なお A レジスタの上位 4 ビットの内容は変化しません (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 44
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
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
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
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
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
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
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
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
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
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
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
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
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
第 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
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
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
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
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
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
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
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
3.2 演算 TLCS-87/C RA Page 66
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 765432 765432 CF 765432 765432 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) 765432 ( 4 4 ) A 765432 765432 A (4 ) ) (+SP) SP SP + (Memory) 765432 765432 (4 ) ) (+SP) SP SP + (Memory) ) (PC+A) を使用した命令には制限があります 詳細は TLCS-87/C シリーズ命令セット.4 アドレッシングモードを参照してください RA Page 67
3.3 シフト ローテート ニブル処理 TLCS-87/C RA Page 68
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
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
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
3.4 ビット操作 フラグ操作 TLCS-87/C RA Page 72
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
3.5 ジャンプ TLCS-87/C RA Page 74
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
3.6 サブルーチンコール リターン ソフトウエア割り込み ノーオペレーション TLCS-87/C RA Page 76
TLCS-87/C 第 4 章 TLCS-87/C 命令コードマップ 4. 第 オペコード 下位上位 2 3 4 5 6 2 3 4 5 6 7 8 9 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) 2 3 4 5 6 7 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 2 3 4 5 6 7 2 3 4 5 6 7 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
第 4 章 TLCS-87/C 命令コードマップ 4.2 第 2 オペコード ( レジスタプリフィックス ) TLCS-87/C 4.2 第 2 オペコード ( レジスタプリフィックス ) 下位上位 2 3 4 5 6 7 8 9 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 3 4 5 6 7 8 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 2 3 4 5 6 7 2 3 4 5 6 7 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 2 3 4 5 6 7 2 3 4 5 6 7 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 2 3 4 5 6 7 2 3 4 5 6 7 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
TLCS-87/C 4.3 第 2 オペコード ( メモリプリフィックス ) 下位上位 2 3 4 5 6 7 8 9 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) 3 4 5 6 7 8 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 2 3 4 5 6 7 2 3 4 5 6 7 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 2 3 4 5 6 7 2 3 4 5 6 7 XCH rr, (src) WA BC DE HL IX IY SP HL CPL (src).b LD (src).b, CF 2 3 4 5 6 7 2 3 4 5 6 7 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
第 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
TLCS-87/C 第 5 章 修正履歴 5. 修正履歴 Rev RA 修正内容 6 進数の表記を H から x に 2 進数の表記を B から y に修正しました LD RBS, の記述を LD RBS, LD RBS, 記述に変更しました RA Page 8
第 5 章修正履歴 5. 修正履歴 TLCS-87/C RA Page 82