68000アセンブラプログラミング(スライド資料6回ほか)

【概要】 68000アセンブラ言語では,CPUとメモリの連携においてレジスタを介したデータ転送が基本となり,命令フェッチ・デコード・実行の各サイクルでプログラムカウンタを更新する.サブルーチン呼び出しではスタックを用いた状態管理を行い,割り込み処理では優先制御と状態の保存・復帰機能を提供する.

大学で使用した自作の資料等を,手直しの上公開している. クリエイティブ・コモンズ BY NC SA.

実習資料

  1. 第1回実習資料 [PDF], [MS-Word]

    【概要】 UNIXシステムにおけるログイン・ログアウト,ウィンドウ操作,emacsエディタの基本操作,ファイル管理コマンド(ls,cat,mv,rm)の基本を学ぶ実習内容である.特にemacsでは文字入力,カーソル移動,ファイル保存,日本語入力などの基本機能を習得し,UNIXの基本的な操作スキルを身につける.

  2. 第2回実習資料 [PDF], [MS-Word]

    【概要】 68000プロセッサのアセンブラプログラミングにおいて,ソースファイル作成からm68k-asによるアセンブル,m68k-emuエミュレータでの実行までの開発フローを学ぶ.メモリ操作やレジスタの働きをステップ実行で確認し,プログラムの動作原理を実践的に理解する実習である.

  3. 第3回実習資料 [PDF], [MS-Word]

    【概要】 アセンブラプログラミングにおけるデバッグスキルを習得する実習である.m68k-asのエラーメッセージを手がかりにプログラムの誤りを発見・修正する過程を通じて問題解決能力を養い,同時にemacsエディタの削除,カット&ペースト,検索,アンドゥなどの実用的な編集機能の活用方法を学ぶ.

  4. 第4回実習資料 [PDF] [MS-Word]

    【概要】 68000CPUのアセンブラプログラミングにおける制御フローと命令実行を理解するための実習である.m68k-emuエミュレータを使用してレジスタ・メモリの値の変化を観察し,擬似命令equによるシンボル定義,分岐命令の動作,プログラムカウンタとステータスレジスタの関係性を実践的に学ぶ.ステップ実行による詳細な動作追跡を通じてCPUの基本的な仕組みを習得する.

  5. 第5回実習資料 [PDF], [MS-Word]

    【概要】 68000アセンブラプログラミングにおけるデバッグ技法を実践的に学ぶ実習である.階乗計算プログラムを例に,ブレークポイントを設定してレジスタやCCR(コンディションコードレジスタ)の値の変化を観察し,条件分岐命令の動作原理を理解する.特にbge命令とCCRの関係性を把握し,効率的なプログラム作成とデバッグ手法を習得する.

  6. 第6回実習資料 [PDF], [MS-Word]

    【概要】 68000アセンブラのサブルーチン機能を実践的に学ぶ実習である.jsr命令による呼び出しとrts命令による復帰時のスタック操作を理解し,movem.l命令を使用した複数レジスタの退避と復帰の仕組みを習得する.最小値探索プログラムを例に,プログラムカウンタとスタックポインタの変化を観察しながら,サブルーチンの動作原理を体系的に学ぶ.

  7. 第7回実習資料 [PDF], [MS-Word]

    【概要】 68000アセンブラでリングバッファ型キューを実装する実習である.256バイトのキューに対して,PUT_PTRとGET_PTRによる書き込み/読み出し位置の管理,PUT_FLGとGET_FLGによる状態管理,BF_START/BF_ENDによる循環バッファ処理を実装し,データ構造の実践的な実装方法を学ぶ.

説明資料

  1. 参考資料:68000 の主な命令と疑似命令のまとめ
  2. 第1回説明資料 [PDF],   [パワーポイント], [HTML]

    SlideShare: https://www.slideshare.net/slideshow/as1-250632873/250632873

    【概要】68000アセンブラ言語では,メモリへのデータアクセス,条件分岐,繰り返し処理が基本操作である.メモリは1バイト単位でアドレス指定され,データの読み出しと書き込みが可能である.条件分岐と繰り返し処理は比較命令とジャンプ命令を組み合わせて実現される.

    プログラム例   branch.c,   branch.s,   loop.c,

  3. 第2回説明資料 [PDF],   [パワーポイント], [HTML]

    SlideShare: https://www.slideshare.net/kunihikokaneko1/as2-cpu

    【概要】CPUとメモリの連携において,メモリから読み出されたデータは一時的にCPU内のレジスタに格納され,演算処理後に再びメモリに書き込まれる.この過程でアドレスバスとデータバスを介してデータ転送が行われ,R/W信号により読み書きが制御される.

    演習問題   [PDF],   [MS-Word]

    プログラム例   add.c,   add.s

  4. 第3回説明資料 [PDF],   [パワーポイント], [HTML]

    SlideShare: https://www.slideshare.net/slideshow/as3-250632884/250632884

    【概要】プログラムカウンタは,プログラム命令をメモリから読み出すために使用され,命令フェッチ・デコード・実行の各サイクルで適切に更新される.命令デコード時にプログラムカウンタは次の命令をポイントするように進み,分岐命令では新しい値に書き換えられることで,プログラムの実行フローを制御している.

    演習問題   [PDF],   [MS-Word]

    プログラム例   add.c,   add.s,   sum.s

  5. 第4回説明資料 [PDF],   [パワーポイント], [HTML]

    SlideShare: https://www.slideshare.net/slideshow/as4-250632887/250632887

    【概要】68000アセンブラにおける条件分岐と繰り返しの制御は,コンディションコードレジスタの値に基づいて実行される.プログラムカウンタの値を変更することで分岐を実現し,比較命令と分岐命令の組み合わせによって条件分岐と繰り返し処理を実現する仕組みである.

    演習問題   [PDF],   [MS-Word]

    プログラム例   branch.c,   branch.s,   loop.c,   array.c,   array2.s,   str.c,   str2.s

  6. 第5回説明資料 [PDF],   [パワーポイント], [HTML]

    SlideShare: https://www.slideshare.net/slideshow/as5-250632892/250632892

    【概要】68000アセンブラ言語における関数呼び出しでは,リターンアドレスのプッシュ,動的メモリ管理,パラメータ渡し,戻り値返却が厳密に制御される.システムスタックを用いて関数実行に必要な処理を実現し,レジスタとメモリの連携によってサブルーチン機能を実装している.

    演習問題   [PDF],   [MS-Word]

    プログラム例   func1.c

  7. 第6回説明資料 [PDF],   [パワーポイント], [HTML]

    SlideShare: https://www.slideshare.net/slideshow/as6/250632901

    【概要】CPUの割り込みでは,現在の処理を一時中断し,スーパーバイザモードへの自動切り替えと例外処理の呼び出しを行う.処理の中断時には状態を保存し,例外処理完了後に元の状態に復帰する.割り込みレベルによる優先制御と割り込み禁止機能を備えている.

    演習問題   [PDF],   [MS-Word]

レポート

  1. レポート1
  2. レポート2

その他

68000 開発環境を作る

関連する外部ページ