MSX Datapack wiki化計画

A R800 インストラクション表の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{include unfinished_page}}

,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[5章 拡張BASIC]]                                                                  ,{BSIZE:0|RIGHT}[[B R800 かけ算命令マクロ]]                                                       →

 この表は、命令の種類ごとに分類して、R800のインストラクションをまとめたものです。表中の'''ニーモニック'''は各命令の名前を現わし、'''命令動作'''でその動作内容を簡単に示しています。
 命令動作の欄で←とあるのは、右側の内容を左側に代入することを、カッコでくくられたものは、くくられたレジスタなどで示されるメモリの内容を、それぞれ意味しています。例えば、
 r←[.hl]
とあるのは、.hlレジスタで示されるアドレスのメモリの内容を、8ビットレジスタに代入するということです。ただし、入出力命令の[n]と[.c]は、対応する入出力ポートの番号のことです。
 '''フラグ'''の欄は各フラグの動作を、'''オペコード'''はそれぞれの命令に対するマシン語コードを、2進数と16進数で記したものです。その右側の'''B'''と'''C'''は、各命令の長さ(バイト数)と、命令を実行するのに要するクロック数を、それぞれ表しています。
 このほか、インストラクション表に出てくる略号に関しては、次の凡例を参照して下さい。
 表に記載されたニーモニックはZ80のものと違っていますが、R800で追加された乗算命令や、Z80で正式に動作が保障されていなかった命令以外はZ80と命令動作はすべて同じです。

'''凡例'''
,{t},{BSIZE:1}
,{c},{SIZE:100|BSIZE:0 1},{BSIZE:0 1}
,         ,
,.a{7}  ,レジスター.aの最上位ビット
,.a{4-7},レジスター.aのビット4-7
,:        ,動作の区切り
,.de:.hl  ,上位16ビットが.de、下位16ビットが.hlに入る、32ビット整数
,[.ix+d]  ,.ixに8ビットの符号つき変位を足した値が示すアドレス
,C        ,キャリーフラグ
,Z        ,ゼロフラグ
,P/V      ,パリティ・オーバーフローフラグ
,S        ,サインフラグ
,N        ,減算フラグ
,H        ,ハーフキャリーフラグ
,・        ,フラグは変化しない
,↕        ,フラグは実行結果により変化する
,0        ,フラグは0
,1        ,フラグは1
,?        ,不定になる
,V        ,オーバーフローフラグとして使われる
,P        ,パリティーフラグとして使われる
,IFF      ,割り込みフリップフロップとして使われる
,"r,r'"   ,"8ビットレジスター、.a,.b,.c,.d,.e,.h,.l"
,"u,u'"   ,"8ビットレジスター、.a,.b,.c,.d,.e,.ixh,.ixl"
,"v,v'"   ,"8ビットレジスター、.a,.b,.c,.d,.e,.iyh,.iyl"
,p        ,"8ビットレジスター、.ixh,.ixl"
,q        ,"8ビットレジスター、.iyh,.iyl"
,ss       ,"16ビットレジスター、.bc,.de,.hl,.sp"
,pp       ,"16ビットレジスター、.bc,.de,.ix,.sp"
,rr       ,"16ビットレジスター、.bc,.de,.iy,.sp"
,qq       ,"16ビットレジスター、.bc,.de,.hl,.af"
,e        ,short br 系の命令の飛び先アドレスへの差分、8ビットの符号付き即値
,         ,(+127〜-128)
,k        ,"brk命令の飛び先アドレス、00h,08h,10h,18h,20h,28h,30h,38h"
,nn       ,16ビットの即値、もしくは絶対アドレス
,n        ,8ビットの即値
,b        ,ビット演算命令の第何ビットかを示す値
,NOT      ,ビットを反転する
,∨       ,ビットのORをとる
,⊻        ,ビットのXORをとる
,∧       ,ビットのANDをとる
,tmp      ,一時的に値を退避する
,B        ,命令のバイト数
,C        ,命令の実行に必要な最小クロック数

 分岐命令、コール命令でクロック数が2つ書いてあるものは、上が条件が成立しないとき、下が条件が成立した時を意味します。
 また、入出力命令でクロック数が2つ書いてあるものは、上がまだ転送が終わらないとき、下が転送が終わったときをそれぞれ意味します。
 ここに示す命令表のクロック数は、SYSCLK換算でXTALの発振周波数の4分の1です。また、ノーウエイトで実行したときの値で、DRAM上で実行した時はページブレークやリフレッシュにより、自動的にウエイトが挿入されます。

!A.1 8ビット移動命令
,{c C},{CENTER}
,{c L},{LEFT}
,{c R},{RIGHT}
,{c R2},{ROWS:2}
,{c C3},{COLS:3}
,{c C8},{COLS:8}
,{c UD},{BSIZE:1 0}

,{t},{BSIZE:1}
,{c},{SIZE:100|BSIZE:0 1},{BSIZE:0 1}
,ニーモニック{R2},命令動作{C|R2} ,flags{COLS:6|C},,,,,,オペコード{COLS:9|C},,,,,,,       ,   ,B{R2} ,C{R2} 
,                ,             ,S,Z,H,{{sup P}}/{{sub V}},N,C     ,7  ,6  ,5  ,4  ,3  ,2  ,1  ,0   ,Hex,  ,  
,{c},{UD}        ,{UD}         ,{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD}
,                ,             , , , ,   , ,      ,   ,   ,   ,   ,   ,   ,   ,    ,   ,  ,  
,{c},{L}         ,{L}          ,{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{L},{R},{R}
,"ld r , r'"     ,r ← r'      ,・,・,・,・  ,・,・     ,0  ,1  ,{C3|C}r,,  ,{C3|C}r',,  ,   ,1 ,1 
,"ld r , n"      ,r ← n       ,・,・,・,・  ,・,・     ,0  ,0  ,{C3|C}r,,  ,1  ,1  ,0   ,   ,2 ,2 
,                ,             , , , ,   , ,      ,{C8|C}←  n  →,,,,,,,          ,   ,  ,  
,"ld r , [.hl]"  ,r ← [.hl]   ,・,・,・,・  ,・,・     ,0  ,1  ,{C3|C}r,,  ,1  ,1  ,0   ,   ,1 ,2 
,"ld r , [.ix+d]",r ← [.ix+d] ,・,・,・,・  ,・,・     ,1  ,1  ,0  ,1  ,1  ,1  ,0  ,1   ,DD ,3 ,5 
,                ,             , , , ,   , ,      ,0  ,1  ,{C3|C}r,,  ,1  ,1  ,0   ,   ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}←  d  →,,,,,,,          ,   ,  ,  
,"ld r, [.iy+d]" ,r ← [.iy+d] ,・,・,・,・  ,・,・     ,1  ,1  ,1  ,1  ,1  ,1  ,0  ,1   ,FD ,3 ,5 
,                ,             , , , ,   , ,      ,0  ,1  ,{C3|C}r,,  ,1  ,1  ,0   ,   ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}← d  →,,,,,,,           ,   ,  ,  
,"ld [.hl],r "   ,[.hl] ← r   ,・,・,・,・  ,・,・     ,0  ,1  ,1  ,1  ,0  ,{C3|C}r,,   ,   ,3 ,5 
,"ld [.ix+d],r"  ,[.ix+d] ← r ,・,・,・,・  ,・,・     ,1  ,1  ,0  ,1  ,1  ,1  ,0  ,1   ,DD ,3 ,5 
,                ,             , , , ,   , ,      ,0  ,1  ,1  ,1  ,0  ,{C3|C}r,,   ,   ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}← d  →,,,,,,,           ,   ,  ,  
,"ld [iy+d],r"   ,[iy+d] ← r  ,・,・,・,・  ,・,・     ,1  ,1  ,0  ,1  ,1  ,1  ,0  ,1   ,FD ,3 ,5 
,                ,             , , , ,   , ,      ,0  ,1  ,1  ,1  ,0  ,{C3|C}r,,   ,   ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}← d  →,,,,,,,           ,   ,  ,  
,"ld u, u'"      ,u ← u'      ,・,・,・,・  ,・,・     ,0  ,1  ,0  ,1  ,1  ,1  ,0  ,1   ,DD ,2 ,2 
,                ,             , , , ,   , ,      ,0  ,1  ,{C3|C}u,,  ,{C3|C}u',,  ,   ,  ,  
,"ld v, v'"      ,v ← v'      ,・,・,・,・  ,・,・     ,0  ,1  ,1  ,1  ,1  ,1  ,0  ,1   ,FD ,2 ,2 
,                ,             , , , ,   , ,      ,0  ,1  ,{C3|C}v,,  ,{C3|C}v',,  ,   ,  ,  
,"ld u, n"       ,u ← n       ,・,・,・,・  ,・,・     ,1  ,1  ,0  ,1  ,1  ,1  ,0  ,1   ,DD ,3 ,3 
,                ,             , , , ,   , ,      ,0  ,0  ,{C3|C}u,,  ,1  ,1  ,0   ,   ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}← n  →,,,,,,,           ,   ,  ,  
,"ld v, n"       ,v ← n       ,・,・,・,・  ,・,・     ,1  ,1  ,1  ,1  ,1  ,1  ,0  ,1   ,FD ,3 ,3 
,                ,             , , , ,   , ,      ,0  ,0  ,{C3|C}v,,  ,1  ,1  ,0   ,   ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}← n  →,,,,,,,           ,   ,  ,  
,"ld [.hl],n "   ,[.hl] ← n   ,・,・,・,・  ,・,・     ,0  ,0  ,1  ,1  ,0  ,1  ,1  ,0   ,36 ,2 ,3 
,                ,             , , , ,   , ,      ,{C8|C}← n  →,,,,,,,           ,   ,  ,  
,"ld [.ix+d],n"  ,[.ix+d] ← n ,・,・,・,・  ,・,・     ,1  ,1  ,0  ,1  ,1  ,1  ,0  ,1   ,DD ,4 ,5 
,                ,             , , , ,   , ,      ,0  ,0  ,1  ,1  ,0  ,1  ,1  ,0   ,36 ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}← d  →,,,,,,,           ,   ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}← n  →,,,,,,,           ,   ,  ,  
,"ld [iy+d],n"   ,[iy+d] ← n  ,・,・,・,・  ,・,・     ,1  ,1  ,1  ,1  ,1  ,1  ,0  ,1   ,FD ,4 ,5 
,                ,             , , , ,   , ,      ,0  ,0  ,1  ,1  ,0  ,1  ,1  ,0   ,36 ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}← d  →,,,,,,,           ,   ,  ,  
,                ,             , , , ,   , ,      ,{C8|C}← n  →,,,,,,,           ,   ,  ,  

,,000,001,010,011,100,101,110,111
,r,.b,.c,.d,.e,.h,.l,,.a
,u,.b,.c,.d,.e,.ixh,.ixl,,.a
,v,.b,.c,.d,.e,.iyh,.iyl,,.a

!A.2 16ビット移動命令
,{c C},{CENTER}
,{c L},{LEFT}
,{c R},{RIGHT}
,{c R2},{ROWS:2}
,{c C3},{COLS:3}
,{c C8},{COLS:8}
,{c UD},{BSIZE:1 0}

,{t},{BSIZE:1}
,{c},{SIZE:100|BSIZE:0 1},{BSIZE:0 1}
,ニーモニック{R2},命令動作{C|R2} ,flags{COLS:6|C},,,,,,オペコード{COLS:9|C},,,,,,,       ,   ,B{R2} ,C{R2} 
,                ,             ,S,Z,H,{{sup P}}/{{sub V}},N,C     ,7  ,6  ,5  ,4  ,3  ,2  ,1  ,0   ,Hex,  ,  
,{c},{UD}        ,{UD}         ,{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD}
,                ,             , , , ,   , ,      ,   ,   ,   ,   ,   ,   ,   ,    ,   ,  ,  
,{c},{L}         ,{L}          ,{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{L},{R},{R}
,"ld ss, nn",ss ← nn,        ・,・,・,・  ,・,・     ,0,0,{COLS:2|C}ss,,0,0,0,1  ,   ,3,3
,, ,  ,,,,,,  {C8|C}← nnl  →,,,,,,,,   ,  ,  
,, ,  ,,,,,,  {C8|C}← nnh →,,,,,,,,  ,  , 
,"ld .ix, nn",.ix ← nn,        ・,・,・,・  ,・,・     ,1,1,0,1,1,1,0,1  ,DD   ,4,4
,, ,  ,,,,,,  0,0,1,0,0,0,0,1   ,21  , ,  
,, ,  ,,,,,,  {C8|C}← nnl  →,,,,,,,,   ,  ,  
,, ,  ,,,,,,  {C8|C}← nnh →,,,,,,,,  ,  , 
,"ld .iy, nn",.iy ← nn,        ・,・,・,・  ,・,・     ,1,1,1,1,1,1,0,1  ,FD   ,4,4
,, ,  ,,,,,,  0,0,1,0,0,0,0,1   ,21  , ,  
,, ,  ,,,,,,  {C8|C}← nnl  →,,,,,,,,   ,  ,  
,, ,  ,,,,,,  {C8|C}← nnh →,,,,,,,,  ,  , 
,"ld .sp, .hl",.sp ← .bl,        ・,・,・,・  ,・,・     ,1,1,1,1,1,1,0,1  ,F9   ,1,1
,"ld .sp, .ix",.sp ← .ix,        ・,・,・,・  ,・,・     ,1,1,0,1,1,1,0,1  ,DD   ,2,2
,, ,  ,,,,,,  1,1,1,1,1,0,0,1   ,F9  , ,  
,"ld .sp, .iy",.sp ← .iy,        ・,・,・,・  ,・,・     ,1,1,1,1,1,1,0,1  ,FD   ,2,2
,, ,  ,,,,,,  1,1,1,1,1,0,0,1   ,F9  , ,  

,,00,01,10,11
,ss,.bc,.de,.hl,.sp

!A.3 交換命令

!A.4 スタック操作命令

!A.5 ブロック転送命令

!A.6 ブロックサーチ命令

!A.7 乗算命令

!A.8 加算命令

!A.9 減算命令

!A.10 比較命令

!A.11 論理演算命令

!A.12 ビット操作命令

!A.13 ローテイト命令

!A.14 シフト命令

!A.15 分岐命令

!A.16 コール命令
,{c C},{CENTER}
,{c L},{LEFT}
,{c R},{RIGHT}
,{c R2},{ROWS:2}
,{c C3},{COLS:3}
,{c C8},{COLS:8}
,{c UD},{BSIZE:1 0}

,{t},{BSIZE:1}
,{c},{SIZE:100|BSIZE:0 1},{BSIZE:0 1}
,ニーモニック{C|R2},命令動作{C|R2} ,flags{COLS:6|C},,,,,,オペコード{COLS:9|C},,,,,,,       ,   ,B{R2} ,C{R2} 
,                ,             ,S,Z,H,{{sup P}}/{{sub V}},N,C     ,7  ,6  ,5  ,4  ,3  ,2  ,1  ,0   ,Hex,  ,  
,{c},{UD}        ,{UD}         ,{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD}
,                ,             , , , ,   , ,      ,   ,   ,   ,   ,   ,   ,   ,    ,   ,  ,  
,{c},{L}         ,{L}          ,{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{L},{R},{R}
,"call nn", [.sp-2] ← .pcl;[.sp] ← pch,  ・,・,・,・,・,・,  1,1,0,0,1,1,0,1,  CD,  3,5 
,, .sp ← .sp-2;pc-nn,  ,,,,,,  {C8|C}← nni →,,,,,,,,  ,  , 
,, ,  ,,,,,,  {C8|C}← nnh  →,,,,,,,,  ,  , 
,"call nz,nn", if z=0,  ・,・,・,・,・,・,  1,1,0,0,0,1,0,0,  C4,  3,5 
,, [.sp-2] ← .pcl;[.sp] ← pch,  ,,,,,,  {C8|C}← nni →,,,,,,,,  ,  , 
,, .sp ← .sp-2;pc-nn,  ,,,,,,  {C8|C}← nnh  →,,,,,,,,  ,  , 
,"call z,nn", if z=1,  ・,・,・,・,・,・,  1,1,0,0,1,1,0,0,  CC,  3,3 
,, [.sp-2] ← .pcl;[.sp] ← pch,  ,,,,,,  {C8|C}← nni →,,,,,,,,  ,  ,5 
,, .sp ← .sp-2;pc-nn,  ,,,,,,  {C8|C}← nnh  →,,,,,,,,  ,  , 
,"call ne,nn", if c=0,  ・,・,・,・,・,・,  1,1,0,1,0,1,0,0,  D4,  3,3 
,, [.sp-2] ← .pcl;[.sp] ← pch,  ,,,,,,  {C8|C}← nni →,,,,,,,,  ,  ,5 
,, .sp ← .sp-2;pc-nn,  ,,,,,,  {C8|C}← nnh  →,,,,,,,,  ,  , 
,"call c,nn", if c=1,  ・,・,・,・,・,・,  1,1,0,1,1,1,0,0,  DC,  3,3 
,, [.sp-2] ← .pcl;[.sp] ← pch,  ,,,,,,  {C8|C}← nni →,,,,,,,,  ,  ,5 
,, .sp ← .sp-2;pc-nn,  ,,,,,,  {C8|C}← nnh  →,,,,,,,,  ,  , 
,"call po,nn", if F=0,  ・,・,・,・,・,・,  1,1,1,0,0,1,0,0,  E4,  3,3 
,, [.sp-2] ← .pcl;[.sp] ← pch,  ,,,,,,  {C8|C}← nni →,,,,,,,,  ,  ,5 
,, .sp ← .sp-2;pc-nn,  ,,,,,,  {C8|C}← nnh  →,,,,,,,,  ,  , 
,"call pe,nn", if F=1,  ・,・,・,・,・,・,  1,1,1,0,1,1,0,0,  EC,  3,5 
,, [.sp-2] ← .pcl;[.sp] ← pch,  ,,,,,,  {C8|C}← nni →,,,,,,,,  ,  ,5 
,, .sp ← .sp-2;pc-nn,  ,,,,,,  {C8|C}← nnh  →,,,,,,,,  ,  , 
,"call p,nn", if s=0,  ・,・,・,・,・,・,  1,1,1,1,0,1,0,0,  F4,  3,3 
,, [.sp-2] ← .pcl;[.sp] ← pch,  ,,,,,,  {C8|C}← nni →,,,,,,,,  ,  ,5 
,, .sp ← .sp-2;pc-nn,  ,,,,,,  {C8|C}← nnh  →,,,,,,,,  ,  , 
,"call m,nn", if s=1,  ・,・,・,・,・,・,  1,1,1,1,1,1,0,0,  FC,  3,3 
,, [.sp-2] ← .pcl;[.sp] ← pch,  ,,,,,,  {C8|C}← nni →,,,,,,,,  ,  ,5 
,, .sp ← .sp-2;pc-nn,  ,,,,,,  {C8|C}← nnh  →,,,,,,,,  ,  , 
,"ret", .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  1,1,0,0,1,0,0,1,  C9,  ,3 
,"ret", .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  1,1,0,0,1,0,0,1,  C9,  1,3 
,"ret nz", if z=0,  ・,・,・,・,・,・,  1,1,0,0,0,0,0,0,  C0,  1,1 
,, .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  ,,,,,,,,  ,  ,3 
,"ret z", if z=1,  ・,・,・,・,・,・,  1,1,0,0,1,0,0,0,  C8,  1,1 
,, .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  ,,,,,,,,  ,  ,3 
,"ret nc", if c=0,  ・,・,・,・,・,・,  1,1,0,1,0,0,0,0,  D0,  1,1 
,, .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  ,,,,,,,,  ,  ,3 
,"ret c", if c=1,  ・,・,・,・,・,・,  1,1,0,1,1,0,0,0,  D8,  1,1 
,, .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  ,,,,,,,,  ,  ,3 
,"ret po", if F=0,  ・,・,・,・,・,・,  1,1,1,0,0,0,0,0,  E0,  1,1 
,, .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  ,,,,,,,,  ,  ,3 
,"ret pe", if F=1,  ・,・,・,・,・,・,  1,1,1,0,1,0,0,0,  E8,  1,1 
,, .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  ,,,,,,,,  ,  ,3 
,"ret p", if s=0,  ・,・,・,・,・,・,  1,1,1,1,0,0,0,0,  F0,  1,1 
,, .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  ,,,,,,,,  ,  ,3 
,"ret m", if s=1,  ・,・,・,・,・,・,  1,1,1,1,1,0,0,0,  F8,  1,1 
,, .pcl ← [.sp];pch ← [.sp+1];.sp ← .sp+2,  ,,,,,,  ,,,,,,,,  ,  ,3 
,"reti", interrupt return,  ・,・,・,・,・,・,  1,1,1,0,1,1,0,1,  ED,  2,5 
,, ,  ,,,,,,  0,1,0,0,1,1,0,1,  4D,  , 
,"retn", Non Maskable Interrupt return,  ・,・,・,・,・,・,  1,1,1,0,1,0,0,0,  ED,  2,5 
,, ,  ,,,,,,  0,1,0,0,0,1,0,1,  45,  , 

!A.17 入出力命令
,{c C},{CENTER}
,{c L},{LEFT}
,{c R},{RIGHT}
,{c R2},{ROWS:2}
,{c C3},{COLS:3}
,{c C8},{COLS:8}
,{c UD},{BSIZE:1 0}

,{t},{BSIZE:1}
,{c},{SIZE:100|BSIZE:0 1},{BSIZE:0 1}
,ニーモニック{C|R2},命令動作{C|R2} ,flags{COLS:6|C},,,,,,オペコード{COLS:9|C},,,,,,,       ,   ,B{R2} ,C{R2} 
,                ,             ,S,Z,H,{{sup P}}/{{sub V}},N,C     ,7  ,6  ,5  ,4  ,3  ,2  ,1  ,0   ,Hex,  ,  
,{c},{UD}        ,{UD}         ,{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD}
,                ,             , , , ,   , ,      ,   ,   ,   ,   ,   ,   ,   ,    ,   ,  ,  
,{c},{L}         ,{L}          ,{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{L},{R},{R}
,"in .a,[n]",  .a ← [n],  ・,・,・,・,・,・,  1,1,0,1,1,0,1,1,  DB,  2,3 
,"in r,[.c]",  r ← [.c],  1,1,0,P,0,・,  ↕,↕,1,0,1,1,0,1,  ED,  2,3 
,"in .f,[.c]",  [.c],  1,1,0,P,0,・,  ↕,↕,1,0,1,1,0,1,  ED,  2,3 
,,  ,  ,,,,,,  0,1,1,1,0,0,0,0,  70,  , 
,"in [.hl++],[.c]",  [.hl] ← [.c];b ← .b-1,  ・,・,・,・,・,・,  1,↕,0,1,1,0,1,1,  ED,  2,4 
,,  .hl ← .hl+1,  ,,,,,,  1,0,1,0,0,0,1,0,  A2,  , 
,"in [.hl--],[.c]",  [.hl] ← [.c];b ← .b-1,  ・,・,・,・,・,・,  1,↕,0,1,1,0,1,1,  ED,  2,4 
,,  .hl ← .hl-1,  ?,1,?,?,1,・,  1,0,1,0,1,0,1,0,  AA,  , 
,"inm [.hl++],[.c]",  repeat;[.hl] ← [.c];b ← .b-1,  ・,・,・,・,・,・,  1,1,0,1,1,0,1,1,  ED,  2,4 
,,  .hl ← .hl+1;until .b=0,  ?,1,?,?,1,・,  1,0,1,1,0,0,1,0,  B2,  ,3 
,"inm [.hl--],[.c]",  repeat;[.hl] ← [.c];b ← .b-1,  ・,・,・,・,・,・,  1,1,0,1,1,0,1,1,  ED,  2,4 
,,  .hl ← .hl-1;until .b=0,  ?,1,?,?,1,・,  1,0,1,1,1,0,1,0,  BA,  ,3 
,"out [n],.a",  [n] ← .a,  ・,・,・,・,・,・,  1,1,0,1,0,0,1,1,  D3,  2,3 
,"out [.c],r",  [.c] ← r,  ・,・,・,・,・,・,  1,1,1,0,1,1,0,1,  ED,  2,3 
,"out [.c],[.hl++]",  [.c] ← [.hl];.b ← .b-1,  ?,1,?,?,1,・,  1,↕,1,0,1,1,0,1,  ED,  2,4 
,,  .hl ← .hl+1,  ,,,,,,  1,0,1,0,0,0,1,1,  A3,  , 
,"out [.c],[.hl--]",  [.c] ← [.hl];.b ← .b-1,  ?,1,?,?,1,・,  1,↕,0,1,1,0,1,1,  ED,  2,4 
,,  .hl ← .hl-1,  ,,,,,,  1,0,1,0,1,0,1,1,  AB,  , 
,"outm [.c],[.hl++]",  repeat;[.c] ← [.hl];.b ← .b-1,  ?,1,?,?,1,・,  1,1,0,1,1,0,1,1,  ED,  2,4 
,,  .hl ← .hl+1;until .b=0,  ,,,,,,  1,0,1,1,0,0,1,1,  B3,  ,3 
,"outm [.c],[.hl--]",  repeat;[.c] ← [.hl];.b ← .b-1,  ?,1,?,?,1,・,  1,1,0,1,1,0,1,1,  ED,  2,4 
,,  .hl ← .hl-1;until .b=0,  ,,,,,,  1,0,1,1,1,0,1,1,  BB,  ,3 

!A.18 CPU制御命令
,{c C},{CENTER|TOP}
,{c L},{LEFT}
,{c R},{RIGHT}
,{c R2},{ROWS:2}
,{c C3},{COLS:3}
,{c C8},{COLS:8}
,{c UD},{BSIZE:1 0}

,{t},{BSIZE:1}
,{c},{SIZE:100|BSIZE:0 1},{BSIZE:0 1}
,ニーモニック{C|R2},命令動作{C|R2} ,flags{COLS:6|C},,,,,,オペコード{COLS:9|C},,,,,,,       ,   ,B{R2} ,C{R2} 
,                ,             ,S,Z,H,{{sup P}}/{{sub V}},N,C     ,7  ,6  ,5  ,4  ,3  ,2  ,1  ,0   ,Hex,  ,  
,{c},{UD}        ,{UD}         ,{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD}
,                ,             , , , ,   , ,      ,   ,   ,   ,   ,   ,   ,   ,    ,   ,  ,  
,{c},{L}         ,{L}          ,{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{L},{R},{R}
,adj .a,  adjust to decimal,  ↕,↕,↕,P,・,↕,  0,1,0,0,0,1,1,1,  27,  1,1 
,not.a,  .a ← NOT .a,  ・,・,1,・,1,・,  0,1,0,0,1,1,1,1,  2F,  1,1 
,neg.a{R2},  .a ← NOT .a+1,  ↕,↕,↕,V,・,↕,  1,1,1,0,1,1,0,1,  ED,  2,2 
,,,  ,,,,,,  0,1,0,0,0,1,0,0,  44,, 
,notc,  C ← NOT c,  ・,・,?,・,0,↕,  0,0,1,1,1,1,1,1,  3F,  1,1 
,setc,  C ← 1,  ・,・,0,・,0,↕,  0,0,1,1,0,1,1,1,  37,  1,1 
,nop,  NO operation,  ・,・,・,・,・,・,  0,0,0,0,0,0,0,0,  00,  1,1 
,halt,  HALT,  ・,・,・,・,・,・,  0,1,1,1,0,1,1,0,  76,  1,2 
,di,  IFF ← 0,  ・,・,・,・,・,・,  1,1,1,1,0,0,1,1,  F3,  1,2 
,ei,  IFF ← 1,  ・,・,・,・,・,・,  1,1,1,1,1,0,1,1,  FB,  1,1 
,im 0,  interrupt mode 0,  ・,・,・,・,・,・,  1,1,1,0,1,1,0,1,  ED,  2,3 
,,,  ,,,,,,  0,1,0,0,0,1,1,0,  46,  , 
,im 1,  interrupt mode 1,  ・,・,・,・,・,・,  1,1,1,0,1,1,0,1,  ED,  2,3 
,,,  ,,,,,,  0,1,0,1,0,1,1,0,  56,  , 
,im 2,  interrupt mode 2,  ・,・,・,・,・,・,  1,1,1,0,1,1,0,1,  ED,  2,3 
,,,  ,,,,,,  0,1,0,1,1,1,1,0,  5E,  , 


,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[5章 拡張BASIC]]                                                                  ,{BSIZE:0|RIGHT}[[B R800 かけ算命令マクロ]]                                                       →