Z80 CPU アセンブラ Program-Technic Ⅰ

機械語配列の処理

MC-8の様なSequencerではループを使って

配列データを使い、また、Dataは、ここでは3Byteごと、note、Step-time、gate-timeと言う、3Byteごとに、それぞれの配列に読み込むための、基本となるProgramです

Z80については、インターネット上に資料が載せられていますので、参考にしながら、動作を追ってみてください。

 

   機械語配列に書く

   Aレジスタに書き込みデータ

   Cレジスタに配列番号(0~0FFh)

           HLに配列先頭アドレス

                   LD      B,0

                   LD      HL,0A000h(先頭アドレス[任意])

                   ADD   HL,BC

                   LD      A,(HL)

           機械語配列から読み出す

   AレジスタにDataが読み出される

   Cレジスタに配列番号(0~0FFh)

           HLに配列先頭アドレス(先頭アドレス[任意])

                  LD       B,0

                  LD       HL,0A000h(先頭アドレス[任意])

                  ADD    HL,BC

                  LD       (HL),A

 

複数のData読み出しの仕方

                HLレジスタにData-Addressの入っている先頭アドレス

                CレジスタにDataのナンバー(チャンネルなど)

     0A000hが配列Dataの先頭アドレス1        

             0A100hが配列Dataの先頭アドレス2

                0A200hが配列Dataの先頭アドレス3 

                LD       B,0

                LD       HL,08000h  Data-Addressの入っている先頭番地

                ADD    HL,BC               Data-AddressをDEレジスタにSet

                ADD    HL,BC

                PUSH  HL

                LD       E,(HL)

                INC     HL

                LD       D,(HL)        

               

                LD       A,(DE)           DATAをAレジスタにSet     

               

                LD      HL,0A000h はじめのDataを、1番目の配列へ

                ADD   HL,BC

                LD      (HL),A 

                INC    DE

                LD      A,(DE)

                LD      (HL),A

               

                LD      HL,0A100h 次のDataを、2番目の配列へ

                ADD   HL,BC

                LD      (HL),A

                INC     DE

                LD      A,(DE)

                LD      (HL),A

               

                LD      HL,0A200h 次のDataを、3番目の配列へ

                ADD   HL,BC

                LD      A,(DE)

                LD      (HL),A

               

                INC     DE     次のデータ読み出しに備える

                POP    HL

                LD      (HL),E

                INC     HL

                LD      (HL),D

 

まず、上記のプログラムを追いかけて習得してください。

f:id:Analogue-Synthesizer:20200405075931j:plain