{{include unfinished_page}} ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[A R800 インストラクション表]] ,{BSIZE:0|RIGHT}[[C MSXView ファンクション一覧]] → !!B.1 R800のかけ算命令  R800には、以下のかけ算命令があります。 !B.1.1 8ビットのかけ算  8ビットレジスタ同士を乗算して、その結果をHLレジスタに返します。かけ算は符号なしで実行されます。インストラクションなどは以下の通りです。 ,演算,インストラクション,クロック数 ,HL←A*B,ED C1,14 ,HL←A*C,ED C9,14 ,HL←A*D,ED D1,14 ,HL←A*E,ED C9,14 !B.1.2 16ビットのかけ算  16ビットレジスタ同士を乗算して、その結果をDE:HLレジスタに返します。かけ算は符号なしで実行されます。インストラクションなどは以下のとおりです。 ,演算,インストラクション,クロック数 ,DE:HL←HL*BC,ED C3,36 ,DE:HL←HL*SP,ED F3,36 !!B.2 M80のかけ算用マクロ  M80でこれらのかけ算命令を使うときは、以下のようなマクロを定義します。 mult8 macro reg ifidn , defb 0edh, 0c1h else ifidn , defb 0edh, 0c1h else ifidn , defb 0edh, 0c9h else ifidn , defb 0edh, 0c9h else ifidn , defb 0edh, 0d1h else ifidn , defb 0edh, 0d1h else ifidn , defb 0edh, 0d9h else ifidn , defb 0edh, 0d9h else if1 .printx *MULT8: illegal argument* defb 00h, 00h err endif endif endif endif endif endif endif endif endif endm mult16 macro ifidn , defb 0edh, 0c3h else ifidn , defb 0edh, 0c3h else ifidn , defb 0edh, 0f3h else ifidn , defb 0edh, 0f3h else if1 .printx *MULT16: illegal argument* defb 00h, 00h err endif endif endif endif endif endm ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[A R800 インストラクション表]] ,{BSIZE:0|RIGHT}[[C MSXView ファンクション一覧]] →