PowerPoint プレゼンテーション



Similar documents
設定フロー ★印は必須の設定です

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

「給与・年金の方」からの確定申告書作成編

Microsoft Word - tb01.doc

Microsoft Word - 311Tools_END

2016 年 度 情 報 リテラシー 三 科 目 合 計 の 算 出 関 数 を 用 いて 各 教 科 の 平 均 点 と 最 高 点 を 求 めることにする この2つの 計 算 は [ホーム]タブのコマ ンドにも 用 意 されているが 今 回 は 関 数 として 作 成 する まず 表 に 三 科

Microsoft PowerPoint - 04_H26material_practice_No3-3.pptx

研究者情報データベース

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順 アドレス 帳 の 操 作 手 順 フォルダーの 操 作 手 順 メール 発 信 者 登 録 署 名 登 録 手 順 基 本 的 な 設 定

平成22年12月27日

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

目 次 1. 大 学 情 報 データベースシステムの 使 用 方 法 について EXCEL 一 括 登 録 EXCEL ダウンロード 検 索 条 件 の 指 定 プレビュー EXCEL ダウンロード(データ 抽 出 あ

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

同 期 を 開 始 する( 初 期 設 定 ) 2 1 Remote Link PC Sync を 起 動 する 2 1 接 続 機 器 の [PIN コード ] [ ユーザー 名 ] [ パスワード ] を 入 力 する [PIN コード ] などの 情 報 は 接 続 機 器 の 設 定 画 面

財団法人○○会における最初の評議員の選任方法(案)

決 算 時 の 流 れ-1 1 年 間 の 仕 訳 入 力 が 終 了 したら 以 下 の 手 順 で 決 算 書 を 作 成 します Step1 精 算 表 を 印 刷 する 1.[F2 入 力 ]タブより 合 計 表 を 選 択 し 月 度 の 指 定 で 期 首 ~12ヶ 月 目 を 指 定

工事記録写真チェックシステム 操作説明書

活用ガイド-編集しよう

電子納品チェックシステム利用マニュアル

端 末 型 払 い 出 しの 場 合 接 続 構 成 図 フレッツ グループから 払 出 されたIPアドレス /32 NTT 西 日 本 地 域 IP 網 フレッツ グループ フレッツ グループから 払 出 されたIPアドレス /

1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合

電子申告直前研修会(所得税編)

Microsoft Word - 第3章.doc

文科省様式3-2集計オプションマニュアル

2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e

WATCH LOGGER

Microsoft Word - 203MSWord2013

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

事前チェック提出用現況報告書作成ツール入力マニュアル(法人用)

4 参 加 資 格 要 件 本 提 案 への 参 加 予 定 者 は 以 下 の 条 件 を 全 て 満 たすこと 1 地 方 自 治 法 施 行 令 ( 昭 和 22 年 政 令 第 16 号 ) 第 167 条 の4 第 1 項 各 号 の 規 定 に 該 当 しない 者 であること 2 会 社

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

<4D F736F F D203193FA8AD45F95CA8E86325F89898F4B315F94F093EF8AA98D AD97DF914F82CC8FEE95F182CC8EFB8F C28E8B89BB2E646F63>

第1回

03_主要処理画面.xlsx

「1 所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編

PowerPoint プレゼンテーション

あいち電子調達共同システム

2. ど の 様 な 経 緯 で 発 覚 し た の か ま た 遡 っ た の を 昨 年 4 月 ま で と し た の は 何 故 か 明 ら か に す る こ と 回 答 3 月 17 日 に 実 施 し た ダ イ ヤ 改 正 で 静 岡 車 両 区 の 構 内 運 転 が 静 岡 運

1

<4D F736F F F696E74202D B E E88E68C9A90DD8BC65F E DC58F4994C52E >

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

定款  変更

SoftBank 202F 取扱説明書

電子申告簡易マニュアル【所得税実践編】

計算式の取り扱い

Microsoft Office Excel2007(NO.2エクセル初級後編)

Microsݯft Word - 91 forܠ2009November.docx

の 購 入 費 又 は 賃 借 料 (2) 専 用 ポール 等 機 器 の 設 置 工 事 費 (3) ケーブル 設 置 工 事 費 (4) 防 犯 カメラの 設 置 を 示 す 看 板 等 の 設 置 費 (5) その 他 設 置 に 必 要 な 経 費 ( 補 助 金 の 額 ) 第 6 条 補

R4財務対応障害一覧

返還同意書作成支援 操作説明書

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

PowerPoint Presentation

Taro-契約条項(全部)

Microsoft Word - ML_ListManager_10j.doc

養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者 とし 死 亡 保 険 金 及 び 満 期 保 険 金 のいずれも 会 社 を 受 取 人 とする 養 老 保 険 に 加 入 してい る 場 合 を 解 説 します 資 金 繰 りの 都

U/Cサーバ 業務システム間転送プログラムインターフェース仕様書

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

eol 操 作 マニュアル 目 次 基 本 機 能 トップページとナビゲーション 構 成 基 本 機 能 タブメニュー と プルダウンメニュー について 基 本 機 能 ダイレクト 企 業 検 索 について 企 業 検 索 企 業 基 本 情 報 企 業 情 報 の 閲 覧 ダウンロード 有 報 メ

01_07_01 データのインポート_エクスポート_1

目 次 必 ずお 読 みください 接 続 方 法 WEB ブラウザ 操 作 方 法 閲 覧 用 PC で 直 接 ZERO 本 体 と 接 続 する 場 合 各 ページについて 発 電 状 況 画 面 表 示... 3

スライド 1

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

ez_meishi.ppt

Ⅰ 調 査 の 概 要 1 目 的 義 務 教 育 の 機 会 均 等 その 水 準 の 維 持 向 上 の 観 点 から 的 な 児 童 生 徒 の 学 力 や 学 習 状 況 を 把 握 分 析 し 教 育 施 策 の 成 果 課 題 を 検 証 し その 改 善 を 図 るもに 学 校 におけ

目 次 JAVIS Appli の 基 本 機 能... 3 JAVIS Appli について... 3 音 声 確 認 機 能 JAVIS Appli( 有 償 版 )の 機 能... 4 音 声 で 読 みの 確 認 をする... 4 辞 書 機 能... 5 単 語 を 登 録 する... 5

<819A955D89BF92B28F BC690ED97AA8EBA81418FA48BC682CC8A8890AB89BB816A32322E786C7378>

その 他 事 業 推 進 体 制 平 成 20 年 3 月 26 日 に 石 垣 島 国 営 土 地 改 良 事 業 推 進 協 議 会 を 設 立 し 事 業 を 推 進 ( 構 成 : 石 垣 市 石 垣 市 議 会 石 垣 島 土 地 改 良 区 石 垣 市 農 業 委 員 会 沖 縄 県 農

贈与税 faq

「シンセツくん」簡易マニュアル 低圧新増設 街灯一括申込み編

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が

医療費控除の入力編

の 基 礎 の 欄 にも 記 載 します ア 法 人 税 の 中 間 申 告 書 に 係 る 申 告 の 場 合 は 中 間 イ 法 人 税 の 確 定 申 告 書 ( 退 職 年 金 等 積 立 金 に 係 るものを 除 きます ) 又 は 連 結 確 定 申 告 書 に 係 る 申 告 の 場

参 考 1 無 線 局 情 報 入 力 支 援 ( 基 地 局 と 固 定 局 の 事 項 書 のみに 対 応 ) 無 線 局 情 報 入 力 支 援 機 能 とは 過 去 に 申 請 したデータをダウンロードし 無 線 局 インターネット 申 請 アプリケーション で 利 用 できる 便 利 な

H28記入説明書(納付金・調整金)8

スライド 1

は 固 定 流 動 及 び 繰 延 に 区 分 することとし 減 価 償 却 を 行 うべき 固 定 の 取 得 又 は 改 良 に 充 てるための 補 助 金 等 の 交 付 を 受 けた 場 合 にお いては その 交 付 を 受 けた 金 額 に 相 当 する 額 を 長 期 前 受 金 とし

Q3 どのようなデータを 見 ることができるのですか A3 分 析 ツール を 実 行 するとマクロが 作 動 し 図 1のような 分 析 ツールトップ 画 面 が 表 示 されます ( 例 : 佐 賀 市 立 佐 賀 小 学 校 ) 今 回 新 たに 追 加 された 分 析 ツールトップ 画 面

目 次 1.はじめに 1-1. はじめに 2. 操 作 2-1. 概 要 2-2. 操 作 方 法 ( 調 査 依 頼 の 確 認 ) 2-3. 操 作 方 法 ( 回 答 登 録 ) 2-4. 操 作 方 法 (ワークシート 出 力 ) 2-5. 操 作 方 法 (ワークシート 取 込 ) 3.

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

第1章 簿記の一巡

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

<947A957A8E9197BF C E786C73>

スライド 1

住宅改修の手引き(初版)

PowerPoint プレゼンテーション

もくじ はじめに 本 書 はスマートフォンやタブレットのアプリ LINE の 設 定 を 行 うためのマニュアルとなります 詳 しい 操 作 方 法 については メーカーホームページ 上 の 基 本 的 な 使 い 方 を 参 照 ください LINE 基 本 的 な 使 い 方

(3) 小 単 元 の 指 導 と 評 価 の 計 画 小 単 元 第 11 章 税 のあらまし の 指 導 と 評 価 の 計 画 ( 四 次 確 定 申 告 制 度 抜 粋 ) 関 心 意 欲 態 度 思 考 判 断 技 能 表 現 知 識 理 解 小 単 元 の 評 価 規 準 税 に 関 す

PowerPoint プレゼンテーション

2. 会 計 規 程 の 業 務 (1) 規 程 と 実 際 の 業 務 の 調 査 規 程 や 運 用 方 針 に 規 定 されている 業 務 ( 帳 票 )が 実 際 に 行 われているか( 作 成 されている か)どうかについて 調 べてみた 以 下 の 表 は 規 程 の 条 項 とそこに

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

3. [ 送 信 ]をクリックすると パスワード 作 成 画 面 が 表 示 されます 4. [パスワードを 作 成 ]フィールドにパスワードを 入 力 します パスワードを 入 力 すると プライベートなファイルが 保 護 されます パスワードの 強 度 は 選 択 した 基 準 によ って 決

<4D F736F F D CB4907D817A936497CD8AC7979D835C E64976C8F915F E646F63>

入 札 参 加 資 格 申 請 システム 操 作 マニュアル 入 札 参 加 資 格 の 資 格 有 効 ( 変 更 ) 日 を 迎 えると 追 加 届 の 登 録 ができるようになります ( 入 札 参 加 資 格 申 請 の 定 時 受 付 では いずれかの 申 請 先 団 体 から 入 札 参

インストール インストール ダウンロードしたファイルをダブルクリックすると 下 記 のファイルが 展 開 されます JigenApp.exe JigenRestart.exe JIGENctrl.dll PC 内 の 任 意 の 同 一 フォルダに 上 記 ファイル 全 てコピーします インストール

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Taro-2220(修正).jtd

Transcription:

部 内 向 けスキルアップ 研 修 組 込 みOS 自 作 入 門 2013 年 8 月 4thステップ 担 当 : 中 村

目 次 はじめに ブート ローダー シリアル 経 由 でのファイル 転 送 XMODEMを 実 装 する(もくもく 会 ) アセンブラ プログラミング

はじめに 前 回 やったこと ROM RAM 自 動 変 数 静 的 変 数 データ 領 域 に 関 する 学 習 今 回 やること ブート ローダー XMODEMプロトコル アセンブラ プログラミング

4.1 ブート ローダー 4.1.1 ブート ローダーの 必 要 性 これまでは 作 成 したプログラムをフラッシュ ROMへ 書 き 込 んでROM 上 で 実 行 してきたが 実 はROMは 書 き 込 み 回 数 に 上 限 がある メーカー 保 証 は100 回 程 度 ( 通 常 利 用 の 範 囲 ならば1000 回 程 度 ) 電 源 OFFしても 消 えないので 電 源 ONと 同 時 に 起 動 するOSが 作 成 できるが 短 所 がある

4.1.1 ブートローダの 必 要 性 そこで OSの 実 行 形 式 ファイルを 直 接 フラッ シュROMに 書 き 込 む 代 わりに OSの 実 行 形 式 ファイルをシリアル 経 由 でダウンロードし そ れをRAM 上 に 展 開 して 起 動 するプログラムを フラッシュROMに 書 き 込 む ブート ローダー(boot loader) ブート ストラップ(bootstrap) 電 源 ONでブート ローダーを 起 動 し ブー ト ローダーでOSをダウンロードしてRAM 上 でOSを 展 開 し 起 動 するという2 段 構 成

4.1.1 ブートローダの 必 要 性 良 いところ 気 軽 にOSのダウンロードが 繰 り 返 せる 効 率 よく 開 発 をすすめることができる 悪 いところ RAMは 電 源 OFFにすると 内 容 が 消 えるので 起 動 の 度 にOSをダウンロードしなければなら ない

4.1.1 ブートローダの 必 要 性 ROM 化 開 発 中 はブートローダーを 利 用 してRAM 上 に 展 開 して 起 動 し 製 品 化 の 段 階 でフラッシュ ROMに 書 き 込 んでROM 上 から 起 動 する 今 回 はOSのROM 化 まではやらない OSをダウンロードしてRAM 上 で 展 開 し 起 動 す るブート ローダーを 作 成 する

4.2 シリアル 経 由 でのファイル 転 送 ブート ローダーの 機 能 シリアル 経 由 でOSの 実 行 形 式 ファイルをダウ ンロードし RAM 上 に 一 旦 保 存 保 存 した 実 行 形 式 ファイルを RAM 上 に 展 開 RAM 上 に 展 開 したOSを 実 行 シリアル 通 信 には XMODEMプロトコルを 使 用 する

4.2.1 XMODEMプロトコル 仕 様 送 信 側 1. 受 信 側 から 定 期 的 に 送 信 されるNAKを 受 け たら 送 信 を 開 始 する 2. ブロック 単 位 でデータ 送 信 3. ACKが 返 ってきたら 次 を 送 信 NAKが 返 っ てきたら 再 送 4. データ 終 わりはEOTを 送 信 し ACKが 返 っ てきたら 終 了 5. 中 断 したい 場 合 はCANを 送 信 し CANを 受 信 したら 中 断

4.2.1 XMODEMプロトコル 仕 様 受 信 側 1. 準 備 ができたらNAKを 送 信 し 受 信 開 始 2. SOHを 受 けたら ブロックとして 受 信 成 功 したらACKを 返 し 失 敗 したらNAKを 返 す 3. EOTを 受 けたらACKを 返 して 終 了 4. 中 断 したい 場 合 はCANを 送 信 し CANを 受 信 したら 中 断

4.2.1 XMODEMプロトコル 仕 様 フィールド サイズ 意 味 a 1バイト SOH (Start Of Header) b 1バイト ブロック 番 号 c 1バイト チェック ブロック 番 号 を 反 転 d 128バイト データ 部 空 きはEOFで 埋 める e 1バイト データ 部 のチェックサム データ 部 を256で 割 った 余 り a b c d e XMODEMのブロック フォーマット

4.2.1 XMODEMプロトコル 仕 様 ACK(ACKnowledge) 受 信 成 功 時 の 応 答 として 送 信 されるコード NAK(NegativeAcKnowledge) エラー 時 の 応 答 として 送 信 されるコード

XMODEMデータフロー 概 略 図 受 信 側 送 信 側 NAK ( 送 信 開 始 を 要 求 ) SOH (ブロック 開 始 ) 01 (ブロック 番 号 ) FE (ブロック 番 号 を 反 転 させたもの) ( 実 際 のデータ 128 バイト) sum (チェックサム) ACK SOH (ブロック 開 始 ) 02 (ブロック 番 号 ) FD (ブロック 番 号 を 反 転 させたもの) ( 上 記 手 順 を データがなくなるまで 繰 り 返 す) EOT ( 転 送 終 了 ) ACK

4.3 XMODEMを 実 装 する もくもく 会 今 回 追 加 するファイル xmodem.h, xmodem.c 今 回 修 正 するファイル main.c コマンド 動 作 を 実 装 ld.scr バッファ 領 域 を 追 加 serial.h,serial.c 文 字 の 受 信 を 実 装 lib.h, lib.c ライブラリ 関 数 を 追 加 Makefile

4.3 XMODEMを 実 装 する 手 順 1. 前 回 のフォルダ 3.2 をコピーして 4.1 を 作 成 2. ファイルの 追 加 修 正 3. make make image 4. ディップスイッチを 書 き 込 みモード (1,1,0,1)に 設 定 後 make write 5. Tera termを 起 動 して ディップスイッチを 実 行 モード(1,0,1,0)に 設 定 後 電 源 ON 6. リセットボタンを 押 すとプロンプト kzload > が 出 るので load を 入 力

4.3 XMODEMを 実 装 する 手 順 6.リセットボタンを 押 すとプロンプト kzload > が 出 るので load を 入 力 7. 直 ちに メニューから ファイル- 転 送 - XMODEM- 送 信 を 選 択 する ファイル 選 択 ウィンドウが 開 くので とりあえず defines.h を 転 送 してみる 8. 間 に 合 わなかった 場 合 は 再 度 リセットボタ ンを 押 してやり 直 す 9. 完 了 したら dumpコマンドを 使 って 転 送 し たファイルを 確 認

4.3 XMODEMを 実 装 する 手 順 10. cygwinで 転 送 元 ファイルを 表 示 し 転 送 し たファイルを 比 較 $ hexdump c defines.h 11. 転 送 データはブロック 単 位 で 送 信 されるた め 受 信 したファイルは 余 った 部 分 が0x1aで 埋 められている 事 を 確 認 して 下 さい (XMODEMの 仕 様 気 にしない!)

アセンブラ プログラミング OSを 自 作 する 場 合 アセンブラ(assembler) の 知 識 は 必 須 スタート アップ 割 り 込 みの 入 口 と と 出 口 スレッドのディスパッチ の3 箇 所 はアセンブラでないと 書 けない! とりあえず 処 理 の 目 的 を 意 識 して 内 容 にアタリをつけて 読 むと 理 解 しやすい ( 全 部 命 令 を 覚 える 必 要 はない)

4.5.1 スタック C 言 語 でプログラムを 書 くとき すべての 変 数 を 静 的 変 数 にするのはムダ 常 時 メモリを 占 有 し 続 けるのはムダ 関 数 に 入 った 時 のみ 獲 得 され returnによっ て 関 数 から 抜 けるときには 捨 てられ メモリ 領 域 が 使 いまわせる 自 動 変 数 が 必 要

4.5.1 スタック 効 率 よくメモリを 利 用 する 手 順 1. ある 程 度 の 容 量 の 領 域 を 予 め 確 保 2. 現 在 領 域 のどこまでを 利 用 しているかを 示 す ポインタを 用 意 3. 関 数 呼 び 出 しにより 自 動 変 数 のための 領 域 が 必 要 になった 場 合 には 必 要 分 だけポインタをず らす 4. さらに 関 数 呼 び 出 しされた 場 合 には 更 にポイ ンタを 必 要 分 だけずらす 5. 関 数 から 戻 るときには ポインタを 戻 す

4.5.1 スタック スタックを 管 理 するために 利 用 されるポイ ンタをスタック ポインタ 関 数 単 位 でスタック 上 に 確 保 される 領 域 を スタック フレーム

4.5.2 アセンブラ CPUはメモリ 上 にある 機 械 語 命 令 を 逐 次 実 行 して いく しかしメモリ 上 には 数 値 しか 保 存 できない したがって 機 械 語 命 令 とは 数 値 のことで 数 値 が 命 令 としての 意 味 を 持 っている

4.5.3 CPUのレジスタ レジスタとは CPU 内 部 にある 記 憶 領 域 のこと CPUは 加 算 や 減 算 などの 数 値 計 算 を 行 うための 回 路 を 持 っているが これらの 回 路 の 入 力 や 出 力 は レジスタに 接 続 CPU(RISC)は メモリ 上 の 値 を 直 接 操 作 できず CPU 上 のレジスタに 読 み 込 んでから 処 理

4.5.3 CPUのレジスタ c = a + b の 演 算 の 場 合 1. 変 数 aが 配 置 されている 位 置 のメモリの 値 を レジスタ 1に 読 み 込 む 2. 変 数 bが 配 置 されている 位 置 のメモリの 値 を レジスタ 2に 読 み 込 む 3. レジスタ1とレジスタ2を 加 算 し 結 果 をレジスタ3に 格 納 する 4. レジスタ3の 値 を 変 数 cが 配 置 されている 位 置 のメモ リに 書 き 込 む

4.5.3 CPUのレジスタ メモリ 上 の 値 をレジスタに 読 み 込 むことをロード レジスタの 値 をメモリ 上 に 書 き 込 むことをストア メモリ 上 のデータのロードやストア 演 算 など 汎 用 的 に 利 用 されるレジスタを 汎 用 レジスタと 呼 ぶ

4.5.4 プログラム カウンタ(PC) 汎 用 レジスタとは 別 の 重 要 なレジスタで プロ グラム カウンタ(program counter) がある CPUが 現 在 実 行 中 の 命 令 アドレスを 指 す ( 正 確 には 次 の 命 令 のアドレス) CPUはPCを 加 算 しつつPCの 指 すメモリ 先 の 命 令 を 逐 次 実 行 しながら 処 理 を 進 めていく PCは 次 の 命 令 を 指 す 位 置 まで 自 動 で 加 算 される PCの 役 割 は いわゆるジャンプ 命 令 (C 言 語 でいうところのgoto)

4.5.5 ニーモニックとアセンブラ オペコードとオペランド アセンブリの 命 令 を 表 す 部 分 をオペコードと 呼 ぶ 命 令 に 対 する 引 数 に 相 当 する 部 分 をオペランドと 呼 ぶ 機 械 語 を 数 値 で 表 すのは 人 間 には 読 みづらいので 適 当 な 単 語 を 使 って 人 間 がわかりやすいようにしたのがニー モニック c = a + b の 機 械 語 プログラム 例 01 01 80 00 1 番 レジスタに 変 数 a(アドレス:0x8000)の 値 をロード 01 02 80 04 2 番 レジスタに 変 数 a(アドレス:0x8004)の 値 をロード 03 03 01 02 1 番 レジスタと2 番 レジスタを 加 算 し3 番 レジスタに 格 納 02 03 80 10 3 番 レジスタの 値 を 変 数 c(アドレス:0x8010)にストア

4.5.5 ニーモニックとアセンブラ ニーモニック 0x01は ロード を 行 う 機 械 語 命 令 なので ld 0x02は ストア を 行 う 機 械 語 命 令 なので st 0x03は 加 算 を 行 う 機 械 語 命 令 なので add 以 上 のように 定 義 した 場 合 の c = a + b の 機 械 語 プ ログラムのニーモニック 表 記 ld r1, 0x8000 1 番 レジスタに 変 数 a(アドレス:0x8000)の 値 をロード ld r2, 0x8004 2 番 レジスタに 変 数 a(アドレス:0x8004)の 値 をロード add r3, r1, r2 1 番 レジスタと2 番 レジスタを 加 算 し3 番 レジスタに 格 納 st r3,0x8010 3 番 レジスタの 値 を 変 数 c(アドレス:0x8010)にストア

4.5.5 ニーモニックとアセンブラ インストラクション 機 械 語 の 命 令 はインストラクションとも 呼 ばれる どの 数 値 がどの 命 令 として 動 作 するかという 決 まりを 命 令 セット インストラクション セット と 呼 ぶ 命 令 セットはCPUごとに 違 う (H8の 命 令 セットとPentium 系 の 命 令 セットは 異 なる)

4.5.5 ニーモニックとアセンブラ アセンブリ 言 語 アセンブル ニーモニックで 表 した 機 械 語 プログラム 表 記 をアセンブ リ 言 語 という アセンブリ 言 語 で 書 いたコードを 機 械 語 コードに 変 換 す る 作 業 をアセンブルという アセンブル 変 換 するプログラムをアセンブラと 呼 ぶ 機 械 語 コードをアセンブラに 逆 変 換 することを 逆 アセン ブルと 呼 ぶ

4.5.6 H8のアセンブラ 実 際 にアセンブラを 読 んでみよう 方 法 はいくつかあるが 今 回 は 最 後 に 生 成 された 実 行 形 式 ファイルを 逆 アセンブルしたものを 確 認 する 手 順 先 程 作 成 したフォルダ 4.1 をコピーして 4.2 フォルダを 作 成 lib.cファイルに 関 数 を 追 記 (P.155 リスト4.13) main.cに 関 数 呼 び 出 しを 追 記 (P.155 リスト4.14) make を 実 行 Cygwinで 以 下 のコマンドを 実 行 $ /usr/local/h8300-elf/bin/objdump d kzload.elf

逆 アセンブルの 結 果 0000010c <_main>: main 関 数 の 先 頭 000004f8 <_func>: func() 関 数 の 先 頭 00000162 jsr @0x4f8:24 func()の 呼 び 出 し 箇 所 だろうと 想 像 できる ニーモニックの 細 かい 文 法 は 気 にせず 想 像 で 読 んでいくことがコツ

逆 アセンブルの 結 果 0000015a: mov.w #0x2, r1 r1レジスタに2を 代 入 0000015e: mov.w #0x1, r0 r0レジスタに1を 代 入 H8はR0~R7という16ビットレジスタを8 個 持 っ ている 拡 張 レジスタとしてE0~E7という16 ビットレジスタがあり これらを 組 み 合 わせて ER0~ER7という32ビットレジスタとして 利 用 することができる(long 型 整 数 やポインタ)

main() 関 数 部 79 01 00 02 mov.w #0x2, r1 79 はオペコード 後 ろ3バイトがオペランドで 1バイト 目 は 値 の 格 納 先 レジスタ 後 は 代 入 値 R1に0x0002という 値 を 代 入 ビッグ エンディアンとリトル エンディアン 0x0002 を 格 納 するとき ビッグ エンディアン は 0x00 0x02 リトル エンディアンは 0x02 0x00 とひっくり 返 して 格 納 する CPUによって 異 なり H8はビッグ エンディアン Pentium 系 CPUはリトル エンディアン 近 年 の 多 く はビッグ エンディアン

main() 関 数 部 イミディエイト 値 ( 即 値 ) オペランドにレジスタに 代 入 する 0x0002 という 値 が そのまま 記 述 命 令 内 に 直 接 記 述 される 数 値

mov.l er6, @-er7 func() 関 数 部 H8ではER7がスタック ポインタとして 利 用 される スタック ポインタを 減 算 してスタック4バイト 領 域 を 確 保 してスタック ポインタの 指 す 先 にER6の 値 を 格 納 (ストア)する ER6が 上 書 きされてしまうので ER6の 値 ( 内 容 )を スタックに 退 避 している スタックを 獲 得 するのにER7の 値 を 減 算 している ア ドレス 値 が 少 なくなる 方 向 に 伸 びること( 下 方 伸 長 ) @er7 レジスタの 値 をアドレス 値 として アドレ スが 指 す 先 のメモリの 意 味 (レジスタ 間 接 ) メモリ 参 照 の 方 法 をアドレッシング モード

func() 関 数 部 アドレッシング モード H8は8 種 類 のアドレッシング モードを 持 つ No アドレッシングモード 記 号 (1) レジスタ 直 接 Rn (2) レジスタ 間 接 @ERn (3) ディスプレースメント 付 きレジスタ 間 接 @(d:16, ERn)/@ (d:24, ERn) (4) ポストインクリメントレジスタ 間 接 @ERn+ プリデクリメントレジスタ 間 接 @-ERn (5) 絶 対 アドレス @aa:8/@aa:16/@aa:24 (6) イミディエイト #xx:8/#xx:16/#xx:32 (7) プログラムカウンタ 相 対 @(d:8,pc) /@(d:16, PC) (8) メモリ 間 接 @@aa:8

func() 関 数 部 アドレッシング モード @-er7 レジスタの 加 減 算 とメモリ アクセスを1 命 令 で 同 時 に 行 う スタック 操 作 に2 命 令 が 利 用 されると その 命 令 の 間 で 割 り 込 みが 入 りスタック 操 作 された 時 に スタック の 整 合 性 が 取 れなく 可 能 性 がある スタック 操 作 は1 命 令 で 行 える 必 要 がある

mov.l er7,er6 func() 関 数 部 スタック ポインタであるER7の 値 をER6にコピーし ている ER6はフレーム ポインタと 呼 ばれる 使 われ 方 をして おり スタック フレームの 先 頭 を 指 している ER6もER7も ポインタとして 利 用 されるため アド レスを 保 持 する 必 要 があるので 32ビットレジスタ が 利 用 される

subs #4, er7 func() 関 数 部 スタック ポインタであるER7をさらに4バイトだけ 減 算 して 4バイトの 領 域 を 確 保 func()の 内 部 で 利 用 している 自 然 変 数 c の 領 域 #4 の4は 定 数 値 を 表 すイミディエイト 値 ( 即 値 )

add.w r1,r0 func() 関 数 部 R0とR1の 値 を 加 算 して R0に 代 入 a +b の 処 理 (1 + 2)をしている mov.w r0, @(0xfffe:16, er6) 加 算 結 果 はR0に 格 納 されているが 自 動 変 数 c はスタック 上 に 存 在 フレーム ポインタを 減 算 してアドレスを 計 算 して そこに 加 算 結 果 を 代 入

func() 関 数 部 mov.w @(0xfffe:16, er6), r0 スタック 上 に 格 納 されている 変 数 c の 値 をr0に 代 入 することでモリチの 準 備 をし R0を 関 数 の 戻 り 値 とする 元 々 R0に c の 値 が 入 っていたからムダな 処 理 c をvolatile 定 義 したため 最 適 化 処 理 が 行 われ ていない 加 算 して 結 果 をスタックに 保 存 して 戻 り 値 を 準 備 する という 一 連 の 処 理 が 最 適 化 されていない

adds #4, er7 func() 関 数 部 スタック ポインタを4バイト 加 算 することで 自 動 変 数 c の 為 に 確 保 していたスタックを 開 放 mov.l @er7+, er6 スタック 上 に 対 比 されていたER6の 値 をER6に 読 み 込 んで(ロード) ER6を 元 に 戻 す ロード 後 にスタック ポインタであるER7は4バイト 加 算 rts スタック 上 から 戻 り 先 アドレスを 取 得 し ジャンプし て 関 数 の 呼 び 出 し 元 に 戻 る

4.5.7 役 割 の 決 まっているレジスタ 関 数 の 呼 び 出 しは jsr 関 数 からの 復 帰 は rts jsrを 実 行 すると スタック ポインタである ER7の 指 す 先 にプログラム カウンタの 値 を 保 存 してから プログラム カウンタを 書 き 換 え てジャンプ rtsを 実 行 すると ER7の 指 す 先 の 値 をプログラ ム カウンタに 代 入 して 呼 び 出 し 元 に 戻 る ER7は jsrやrtsを 実 行 すると 自 動 的 に 利 用 され 値 も 変 更 される ER7は CPUがスタック ポインタとして 明 示 的 に 操 作 しているレジスタ

4.5.8 スタート アップ startup.sのソースコード _start: mov.l #_stack,sp jsr @_main _start はラベル(label)と 呼 ばれ アセン ブラ 内 でラベルが 利 用 されると 定 義 されてい る 位 置 のアドレスに 置 き 換 わる

4.5.8 スタート アップ スタート アップで 行 うべきことは スタッ ク ポインタの 初 期 値 設 定 スタック ポインタを 適 切 に 設 定 してから 出 な いと C 言 語 の 関 数 呼 び 出 しを 正 常 に 行 う 事 がで きない jsrでメイン 関 数 を 呼 び 出 しているので その 前 に mov.l でスタック ポインタを 設 定 _stack のアドレス 値 をspに 代 入 しているが spはer7ど 同 義 で stack pointer のこと

4.5.8 スタート アップ bra は 戻 り 先 アドレスをスタックに 保 存 しな い 単 純 なジャンプ 1: bra 1b 1b というラベルはない 1bが 書 かれた 箇 所 より 前 で 1: という 記 述 がある 最 も 近 い 物 を 指 す main()の 呼 び 出 しから 戻 ってきた 時 に 暴 走 しな いようにとりあえず 無 限 ループをおいて 実 行 がそれ 以 上 進 まないようにしている

今 日 やったこと XMODEMによるファイル 転 送 ができるように なった ブート ローダーから 起 動 できるまで あと 少 し! アセンブラに 関 する 学 習 アセンブラはアタリをつけて 読 む スタックの 確 保 レジスタの 退 避 自 動 変 数 の 作 成 レジスタの 復 旧 とスタックの 開 放 戻 り 先 へのジャン プ

次 回 の 開 催 予 定 日 時 9 月 10 日 ( 火 ) 13:00~ 場 所 技 術 支 援 室 担 当 山 田 さん