[PR]テレビ番組表
今夜の番組チェック

四歩目 基本プログラミング

 
   では前回 プログラミングしましたね
    今回はあのプログラミングの解説を何回かにわけてお送りします
注意:ここを読む前に 総合コウザ 進数 を見てください
    でないと意味不明になる
 
〜解説〜


	.CPU	300HA
	.SECTION	P,CODE,LOCATE=H'FF000
	MOV.B	#H'FF,R0L
	MOV.B	R0L,@H'FFFFC8
LOOP:	MOV.B	#H'FF,R0L
	MOV.B	R0L,@H'FFFFCA
	BRA	LOOP
	.END

   これだな で解説してくね
   まずH8のアセンブルプログラムには 僕が思うに最低限3つの命令が必要だ
   .CPU と .SECTION と .END だ
   .CPUは上のプログラミングを見ると .CPU  300HA となっている
   これはアセンブラに「このプログラムを使う(実行する)マイコンのCPUは300Hだ」と教えてるのだ
   (CPUというのは簡単に言うと マイコンの中にあるプログラムを実行する部分だ(すっごい大事なもの))
   で 実行するのは AKI-H8の3048Fだよね これのCPUは300Hだ
   だから .CPU  300HA にしてある
    それと 300Hには8個(0〜7)の動作モードがあります。H8はモード7(別名アドバンストモード)
    で動くようにしてあるので(自由に変えられるよ)
    そのしるしとして 300HA (Aはアドバンストモードの頭文字)で設定するのです
   
   .SECTION は上のプログラムでは .SECTION  P,CODE,LOCATE=H'FFEF10 となっています
   セクション(SECTION)とは この命令から下のプログラムを1つのまとまりの 
   セクション として セクションの名前や種類やどこにこのプログラムを書きこむかを宣言するものです
   上で P というのは僕がつけたセクションの名前です 別にこれは何でもいい 
      好きな名前をいれればいい(BAKAとか)
   次のCODE というのは 「このセクションのプログラムは
      プログラムを実行するための命令などが書いてある」 ということです つまりこのセクションの”種類”だ
      (他にもいろいろあるが今は知らなくていい)
   次のLOCATE=H'FFEF10 は このセクションのプログラムは RAMに書きこむということが書いてあります
   LOCATEというのはこのセクションを書きこむ場所(正しくは書きこみ始める場所)
      を示すもので 上の場合 H'FFEF10です これはRAMのことです(今は知らなくていい)
 
   .ENDは簡単 プログラムの終わりに書きます
 
   この3つが最低限必要な命令です
〜マイコンの仕組みをちょっと〜
   しっつこいけど 進数 見てね
 
   CPUというのが出てきたね これは上に書いたように すっごい大事だ
   車で言うとエンジン
   CPUはROMやRAMに書きこまれた命令を ROMやRAMから読み出して 
    その命令を実行するものだ
   僕らの使っているAKI-H8 3048FのCPUは300Hというものが搭載されている
   
   
 
   それから セクションでプログラムをRAMに書きこむってのがあったよね
   LOCATE=H'FF100 っての 
   よくわかんないよね H'FF100がRAMなんて
   さっきCPUがROMやRAMからプログラムを読み出して実行するってのはわかったよね
   じゃぁどうやって読み出してると思う?
   実はROMやRAMからちょっとずつ読み出して実行していたのだ
   そのちょっとずつってのは アセンブルプログラムの1行ずつを読み出していってる
   これを見て
   ※この図の数字は間違っています
   これは H8(モード7で)のROM RAMのアドレス
   
(アドレスというのはCPUからROMやRAMにアクセスするときに使うものです)
   緑色の部分がROM(H'0〜H'01FFFF)紫がRAM(H'FFEF10〜H'FFFF0F)
   たとえば H8は電源を入れるとH'0(H'000000)あたりから最初に読み出してCPUで実行していきます
     何らかの命令がない場合このように順番に読み出していきます
   
ROMやRAMはちょっとづつ数字で区切られ 区別されていたのです
    (ROMが本だったら H'000001 などは 1ページ目 2ページ目 といった感じです)
   でRAMの先頭がH'FFEF10ですから LOCATE=H'FF100 とすると
   このセクションの命令達はH8にパソコンから書きこまれるとき
         H'FF100から順番に書きこまれていくことになるのです
     
※ちなみにH' という数字はH8のアセンブル言語では「この数字は16進数である」ということです
 
   だからCPUにH'FFEF10 というとRAMの先頭のことであり 
     H'01FFFFというとROMの最後を意味するのです
〜後書き〜
   難しかったね ごめんうまく説明できなくて
 

まとめ

    .CPU・・・プログラムを実行するCPUの種類を宣言するもの

       .CPU   300HA

    .SECTION・・・プログラムをセクションとして宣言して いろいろな設定をする

      .SECTION   セクションの名前,セクションの種類,書きこむ(書きこみ始める)アドレス

    .END・・・プログラムの終わりを示す

戻る ホームへ コウザへ 次へ