Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
sandai
PDF, PPTX
2,982 views
【学習メモ#4th】12ステップで作る組込みOS自作入門
12ステップで作る組込みOS自作入門 http://www.amazon.co.jp/dp/4877832394/ 坂井 弘亮(著) カットシステム
Technology
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 36
2
/ 36
3
/ 36
4
/ 36
5
/ 36
6
/ 36
7
/ 36
8
/ 36
9
/ 36
10
/ 36
11
/ 36
12
/ 36
13
/ 36
14
/ 36
15
/ 36
16
/ 36
17
/ 36
18
/ 36
19
/ 36
20
/ 36
21
/ 36
22
/ 36
23
/ 36
24
/ 36
25
/ 36
26
/ 36
27
/ 36
28
/ 36
29
/ 36
30
/ 36
31
/ 36
32
/ 36
33
/ 36
34
/ 36
35
/ 36
36
/ 36
More Related Content
PPTX
AMBA 5 COHERENT HUB INTERFACE.pptx
by
Sairam Chebrolu
PDF
【学習メモ#3rd】12ステップで作る組込みOS自作入門
by
sandai
PPTX
リアルタイムOSの必要性とTOPPERS/SSPの紹介
by
NSaitoNmiri
PPTX
小型安価なFPGAボードの紹介と任意波形発生器
by
uchan_nos
PDF
Message Signaled Interrupts
by
Anshuman Biswal
PPTX
Stateful Flow Table - SFT 2020 DPDK users pace summit
by
Andrey Vesnovaty
PDF
XRDPで怠惰な日々を送る
by
monochrojazz
PPTX
Unreal animation system
by
TonyCms
AMBA 5 COHERENT HUB INTERFACE.pptx
by
Sairam Chebrolu
【学習メモ#3rd】12ステップで作る組込みOS自作入門
by
sandai
リアルタイムOSの必要性とTOPPERS/SSPの紹介
by
NSaitoNmiri
小型安価なFPGAボードの紹介と任意波形発生器
by
uchan_nos
Message Signaled Interrupts
by
Anshuman Biswal
Stateful Flow Table - SFT 2020 DPDK users pace summit
by
Andrey Vesnovaty
XRDPで怠惰な日々を送る
by
monochrojazz
Unreal animation system
by
TonyCms
What's hot
PDF
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
by
Seungmo Koo
PDF
New Ways to Find Latency in Linux Using Tracing
by
ScyllaDB
PDF
CXL_説明_公開用.pdf
by
Yasunori Goto
PPTX
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
by
Gopi Krishnamurthy
PDF
Cilium - BPF & XDP for containers
by
Docker, Inc.
PPTX
Beyond porting
by
Cass Everitt
PPTX
PCI express
by
sarangaprabod
PDF
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
by
シスコシステムズ合同会社
PDF
Lock free queue
by
Bongseok Cho
PDF
24 b04 defensa alekhine variante moderna 4.cf3 p1
by
registromaestro
PPTX
The Next Linux Superpower: eBPF Primer
by
Sasha Goldshtein
PPTX
eBPF Workshop
by
Michael Kehoe
PPTX
PCIe
by
ChiaYang Tsai
PPTX
ゼロから始める自作 CPU 入門
by
Hirotaka Kawata
PDF
Meet cute-between-ebpf-and-tracing
by
Viller Hsiao
PDF
【CEDEC2013】20対20リアルタイム通信対戦オンラインゲームのサーバ開発&運営技法
by
モノビット エンジン
PDF
[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送
by
Google Cloud Platform - Japan
PDF
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
by
Linaro
PDF
FPGA+SoC+Linux実践勉強会資料
by
一路 川染
PPTX
plotnetcfg入門 | Introduction to plotnetcfg
by
Kentaro Ebisawa
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
by
Seungmo Koo
New Ways to Find Latency in Linux Using Tracing
by
ScyllaDB
CXL_説明_公開用.pdf
by
Yasunori Goto
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
by
Gopi Krishnamurthy
Cilium - BPF & XDP for containers
by
Docker, Inc.
Beyond porting
by
Cass Everitt
PCI express
by
sarangaprabod
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
by
シスコシステムズ合同会社
Lock free queue
by
Bongseok Cho
24 b04 defensa alekhine variante moderna 4.cf3 p1
by
registromaestro
The Next Linux Superpower: eBPF Primer
by
Sasha Goldshtein
eBPF Workshop
by
Michael Kehoe
PCIe
by
ChiaYang Tsai
ゼロから始める自作 CPU 入門
by
Hirotaka Kawata
Meet cute-between-ebpf-and-tracing
by
Viller Hsiao
【CEDEC2013】20対20リアルタイム通信対戦オンラインゲームのサーバ開発&運営技法
by
モノビット エンジン
[Cloud OnAir] GCP で誰でも始められる HPC 2019年5月9日 放送
by
Google Cloud Platform - Japan
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
by
Linaro
FPGA+SoC+Linux実践勉強会資料
by
一路 川染
plotnetcfg入門 | Introduction to plotnetcfg
by
Kentaro Ebisawa
Viewers also liked
PDF
【学習メモ#5th】12ステップで作る組込みOS自作入門
by
sandai
PDF
【学習メモ#1st】12ステップで作る組込みOS自作入門
by
sandai
PPTX
RoadAR v.2.3 english
by
Евгений Никольский
PDF
【学習メモ#8th】12ステップで作る組込みOS自作入門
by
sandai
PDF
【学習メモ#11th】12ステップで作る組込みOS自作入門
by
sandai
PDF
【学習メモ#9th】12ステップで作る組込みOS自作入門
by
sandai
PDF
【学習メモ#6th】12ステップで作る組込みOS自作入門
by
sandai
PDF
【学習メモ#7th】12ステップで作る組込みOS自作入門
by
sandai
PDF
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
by
Kishi Shundo
PDF
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
by
Hirotaka Kawata
PDF
QEMUでARM64bitベアメタルプログラミング
by
Yuma Ohgami
PDF
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
by
kozossakai
PDF
やってよかったOS作り
by
Hidemi Kawai
PDF
低レイヤー入門
by
demuyan
PPTX
人工知能概論 1
by
Tadahiro Taniguchi
PDF
【2000行弱!】x86用自作カーネルの紹介
by
Yuma Ohgami
PDF
Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ
by
Nisei Kimura
PDF
C++でできる!OS自作入門
by
uchan_nos
PDF
Ctfのためのpython入門
by
shiracamus
PDF
ハッキング実演
by
Ken Ogura
【学習メモ#5th】12ステップで作る組込みOS自作入門
by
sandai
【学習メモ#1st】12ステップで作る組込みOS自作入門
by
sandai
RoadAR v.2.3 english
by
Евгений Никольский
【学習メモ#8th】12ステップで作る組込みOS自作入門
by
sandai
【学習メモ#11th】12ステップで作る組込みOS自作入門
by
sandai
【学習メモ#9th】12ステップで作る組込みOS自作入門
by
sandai
【学習メモ#6th】12ステップで作る組込みOS自作入門
by
sandai
【学習メモ#7th】12ステップで作る組込みOS自作入門
by
sandai
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
by
Kishi Shundo
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
by
Hirotaka Kawata
QEMUでARM64bitベアメタルプログラミング
by
Yuma Ohgami
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
by
kozossakai
やってよかったOS作り
by
Hidemi Kawai
低レイヤー入門
by
demuyan
人工知能概論 1
by
Tadahiro Taniguchi
【2000行弱!】x86用自作カーネルの紹介
by
Yuma Ohgami
Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ
by
Nisei Kimura
C++でできる!OS自作入門
by
uchan_nos
Ctfのためのpython入門
by
shiracamus
ハッキング実演
by
Ken Ogura
Similar to 【学習メモ#4th】12ステップで作る組込みOS自作入門
PPTX
Arduino 入門
by
mitunaga
PDF
Bluetooth通信の仕組みと活用法紹介
by
Takehiko YOSHIDA
PDF
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
by
Yuto Takei
PDF
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
by
Hirotaka Kawata
PDF
V6 unix in okinawa
by
magoroku Yamamoto
PDF
2011.09.18 v7から始めるunix まとめ
by
Makiko Konoshima
PDF
PFI Seminar 2010/02/18
by
Preferred Networks
KEY
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
by
Yasuhiro Ishii
PDF
Arduinoで遊ぼう #1Processingと連携する
by
Yasunori Sannomiya
PPTX
as-5. サブルーチン呼び出しのメカニズム
by
kunihikokaneko1
PDF
Arduinoでプログラミングに触れてみよう 続編
by
Hiromu Yakura
PPT
d-kami x86-2
by
Daisuke Kamikawa
PDF
さわってみようTOPPERS/SSP
by
NSaitoNmiri
PDF
d-kami x86-1
by
Daisuke Kamikawa
PDF
Presentation on your terminal
by
Takuya ASADA
PDF
デバドラを書いてみよう!
by
Masami Ichikawa
PDF
2011.06.11 v7から始めるunix まとめ
by
Makiko Konoshima
PDF
初めてのCPUを作ってみた
by
Eric Sartre
PDF
V6read#3
by
magoroku Yamamoto
PDF
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
by
7shi
Arduino 入門
by
mitunaga
Bluetooth通信の仕組みと活用法紹介
by
Takehiko YOSHIDA
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
by
Yuto Takei
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
by
Hirotaka Kawata
V6 unix in okinawa
by
magoroku Yamamoto
2011.09.18 v7から始めるunix まとめ
by
Makiko Konoshima
PFI Seminar 2010/02/18
by
Preferred Networks
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
by
Yasuhiro Ishii
Arduinoで遊ぼう #1Processingと連携する
by
Yasunori Sannomiya
as-5. サブルーチン呼び出しのメカニズム
by
kunihikokaneko1
Arduinoでプログラミングに触れてみよう 続編
by
Hiromu Yakura
d-kami x86-2
by
Daisuke Kamikawa
さわってみようTOPPERS/SSP
by
NSaitoNmiri
d-kami x86-1
by
Daisuke Kamikawa
Presentation on your terminal
by
Takuya ASADA
デバドラを書いてみよう!
by
Masami Ichikawa
2011.06.11 v7から始めるunix まとめ
by
Makiko Konoshima
初めてのCPUを作ってみた
by
Eric Sartre
V6read#3
by
magoroku Yamamoto
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
by
7shi
【学習メモ#4th】12ステップで作る組込みOS自作入門
1.
12ステップで作る組込みOS自作入門
4thステップ @sandai
2.
【参考書籍】 12ステップで作る組込みOS自作入門 【内容】 1ステップずつ、実際に動かしながらプログラムを発展さ せていく方式で無理なく学べる。OSやハードウェアに詳 しくない方にも理解できるよう に十分な説明を提供 坂井 弘亮(著) カットシステム(2010/5) 【税込価格】 4,410円 【サポートページ】 http://kozos.jp/books/makeos/
3.
もくじ 1.ブートローダ 2.XMODEMの実装とプログラム実行 3.まとめ 4.アセンブリ言語
4.
1.ブートローダ
5.
フラッシュROMの書き込み回数 ●
フラッシュROMの書き込み回数には制限がある – H8/3069Fでは最悪100回(通常の利用の範囲なら1000 回) ● これから開発を進めていく上で上限に達してし まうので、フラッシュROMに直接書き込む代わ りにOSをシリアル経由でダウンロードして、そ れをRAMに展開して起動するプログラムをフ ラッシュROMに書き込む方法を取る ● このプログラムをブートローダと呼ぶ – IPLもブートローダと同じ意味合いかな
6.
ブートローダ ●
電源ONでまずブートローダを起動させ、それか らOSをダウンロードし、OSを起動させる ● こうして段階を踏んでOSを起動する手順を一般 的にブートストラップと呼ぶ ● これでOSを修正する度にフラッシュROMに書き 込まずにすむ – これは開発段階の話で、実際なら製品化のときにフ ラッシュROMに直接書き込んで普通にROMから起動さ せることが多い(ROM化と言う) ● ROM化の方法が紹介されているが今回はROM化し ないので省略
7.
シリアル経由でファイル転送 ●
今回作成するブートローダは次の3つの機能が 必要となる – シリアル経由でOSをダウンロードし、RAM上にいっ たん保存する – 保存したOSを適切にRAM上に展開 – RAM上に展開したOSを実行
8.
シリアル経由でのダウンロード ●
今まではkzloadというファイルをフラッシュ ROMに直接書き込んでいたけど、これがシリア ル経由でマイコンに転送する方法に変わる ● そこで利用するプロトコルがXMODEMというプロ トコル – 昔からあるシリアル経由でのファイル転送のプロト コルで、仕様が簡単なので実装の手間もかからない – ただし、転送効率は悪いし、信頼性も低い – 今回はそういったことはシビアに考える必要はない ので、問題はないとのこと
9.
XMODEMの仕様(送信側) ●
①受信側から定期的に送信されるNAK(ox15)を受けた ら送信を開始 ● ②データはブロック単位に分けて送信する。ブロック は固定長なので、ファイルの終端なおでデータ量が足 りない場合にはEOF(x01a)で埋める ● ③1ブロック送信したらACK(0x06)かNAKが返ってくる のを待つ。ACKの場合には、引き続き次のブロックを 送信。NAKの場合には同じブロックを転送 ● ④データの終わりはEOT(0x04)を送信し、ACKが返って きたら終了 ● ⑤中断したい場合はCAN(0x18)を送信する。CANを受け たら中断
10.
XMODEMの仕様(受信側) ●
①受信準備ができたら合図として定期的にNAKを送 信。シリアルから文字を受信したらデータ受信開始 ● ②SOH(0x01)を受けたら連続するデータをブロックと して受信。受信に成功したらACKを返す。失敗したら (チェックサムエラーなど)NAKを返す ● ③EOTを受けたらACKをかえして終了 ● ④中断したい場合はCANを送信。CANを受けたら中断
11.
ブロックのフォーマット ●
送信するブロックのフォーマットは以下の通り a b c d e 127頁 図4.1 XMODEMのブロック・フォーマット より フィールド サイズ 意味 a 1バイト SOH b 1バイト ブロック番号。1からの通番で、255の次は0になる c 1バイト ブロック番号をビット反転したもの(チェック用) d 128バイト データ。データが128バイトに満たない場合はEOFで埋める e 1バイト データ部のチェックサム 128頁 表4.1 各フィールドの意味 より
12.
ACKとNAK ●
ACK(ACKnowledge) – 受信成功時の応答として送信されるコード ● NAK(NegativeAcKnowledge) – エラー時の応答として送信されるコード
13.
2.XMODEMの実装とプログラム実行
14.
プログラムの修正とファイル追加 ●
追加ファイル – xmodem.h、xmodem.c...XMODEMプロトコル実装 ● 修正ファイル – main.c...コマンド動作を実装 – id.scr...bufferセクションを追加 – serial.h、serial.c...文字の受信を実装 – lib.h、lib.c...文字列受信用のライブラリ関数追加 – Makefile
15.
XMODEM実装 ●
xmodem.cは受信用の処理を行なっている – 送信はlrzszのlsxというアプリを使うみたい(cuコ マンドだと) ● 仕様についてはスライド9pを参照
16.
ld.scr ●
ダウンロードしたファイルを配置する場所を定 義している – これは#defineでヘッダファイルに書くことが多い が、今回はリンカ・スクリプトをメモリマップとし て扱うためリンカ・スクリプトに書く buffer(rwx) : o = 0xffdf20, l = 0x001d00 ~~~~~~~~~~~ .rodata { } > rom .buffer : { _buffer_start = . ; } > buffer
17.
その他修正コード ●
serial.cは受信用の関数を追加 ● lib.cも受信用のライブラリ関数を追加 ● Mekefileはxmodem.oをコンパイル対象にしただ け
18.
lrzszインストール ●
MacでXMODEMプロトコルによる転送を行う場 合、lrzszをインストールする必要がある ● 最も簡単な方法はhomebrewからインストールす ること ● homebrewが何か分からない場合は検索して ● インストール方法はターミナルから下記のよう に入力するだけ $ brew install lrzsz
19.
lsxの使い方 ●
lrzszのうち、lsxというXMODEMプロトコルの転 送アプリを使って転送を行う ● 書籍では~CLocal command? lsx defines.hみた いに入力しろとあるが、Macではうまくいかな い ● ~+lsx defines.hとするように注意すること – なるべく早く~+と打つ
20.
プログラム実行(load) /Users/sandai/12step/src/04/bootload% sudo cu
-l /dev/tty.usbserial-FTG6PQ4H Password: Connected. kzload (kozos boot loader) started. kzload> load ~+lsx defines.h Sending defines.h, 1 blocks: Give your local XMODEM receive command now. Bytes Sent: 256 BPS:65 Transfer complete XMODEM receive succeeded!
21.
プログラム実行(dump) /Users/sandai/12step/src/04/bootload% sudo cu
-l /dev/tty.usbserial-FTG6PQ4H . . . Transfer complete XMODEM receive succeeded! kzload> dump size: 100 23 69 66 6e 64 65 66 20 5f 44 45 46 49 4e 45 53 5f 48 5f 49 4e 43 4c 55 44 45 44 5f 0a 23 64 65 66 69 6e 65 20 5f 44 45 46 49 4e 45 53 5f 48 5f 49 4e 43 4c 55 44 45 44 5f 0a 0a 23 64 65 66 69 6e 65 20 4e 55 4c 4c 20 28 28 76 6f 69 64 20 2a . .
22.
dumpの確認 ●
dumpコマンドを使うと前のページのように転送 したファイルが16進数で表示される ● 実際にうまく転送できているかどうか、オリジ ナルのdefines.hと比較してみるには、ターミ ナルで下記のようにコマンド /Users/sandai/12step/src/04/bootload% hexdump -C defines.h 00000000 23 69 66 6e 64 65 66 20 5f 44 45 46 49 4e 45 53 |#ifndef _DEFINES| 00000010 5f 48 5f 49 4e 43 4c 55 44 45 44 5f 0a 23 64 65 |_H_INCLUDED_.#de| 00000020 66 69 6e 65 20 5f 44 45 46 49 4e 45 53 5f 48 5f |fine _DEFINES_H_| 00000030 49 4e 43 4c 55 44 45 44 5f 0a 0a 23 64 65 66 69 |INCLUDED_..#defi| 00000040 6e 65 20 4e 55 4c 4c 20 28 28 76 6f 69 64 20 2a |ne NULL ((void *| . . .
23.
3.まとめ
24.
まとめ ●
XMODEMプロトコルを実装してファイル転送を 行った ● 特に複雑な概念や用語は出て来なかったので、 気楽にできる – ただまあXMODEMの実装がちょっとあれ。送信側の コードがないからはっきりイメージはできない。と はいえ、単純なプロトコルで分かりやすいといえば 分かりやすい ● ~+lsxの部分は、Macであれば書籍の通りではう まくいかないので気をつける
25.
4.アセンブリ言語
26.
アセンブラ・プログラミング ●
OSを自作する場合アセンブラの知識が必須 ● アセンブラでないと記述できない部分があるか ら(アセンブラで書くべき部分) – スタートアップ – 割込みの入力と出口 – スレッドのディスパッチ ● 全部の命令を覚える必要はない ● やりたいことだけできるようになれば十分
27.
スタック ●
たとえばforで使うカウンタ変数をずっとメモ リ上に置いとくのは邪魔で無駄 ● そこで自動変数みたいなのがある – 関数に入ったときに獲得され、関数から出たら捨て られるやつ ● でまあこういった扱いをするためにスタックを 使う – スタックを管理するために利用されるポインタをス タック・ポインタ – 関数単位でスタック上に確保される領域をスタッ ク・フレーム
28.
自動変数のスタックは意識しない ●
スタック・ポインタやスタック・フレームの詳 細は検索で適当に調べると良い ● C言語でプログラムを書く場合は、普通はこん なことは意識しない ● C言語側でいろいろ調節してくれる – というかコンパイラだろうね
29.
アセンブリ言語について ●
CPUはメモリ上にある機械語命令を逐次実行し ていく ● しかしメモリ上には数値しか保存できない ● だから、アセンブリ言語の命令ってのは数値の こと – ただし数値だと人間は扱いにくいので、ニーモニッ クでコードを書く ● ニーモニックは普通に文字打ってプログラミン グできるようにしたもの ● とはいえ、命令はアセンブラで数値に変換され る。数値というか実行形式ね
30.
CPUのレジスタ ●
CPU内部にある記憶領域 – 汎用OSに慣れている者からすれば、周辺機器の持つ レジスタよりこっちの方が一般的 ● CPUは加算や減算などの数値計算を行うための 回路を持っているが、これらの回路の入力や出 力はレジスタに接続されている – つまりレジスタを経由して行われるってことね – だからメモリ上のデータはこのレジスタに読み込ん でから処理が行われる
31.
ロードとストア ●
メモリ上の値をレジスタに読み込むことをロー ドと呼ぶ ● レジスタの値をメモリ上に書き込むことをスト アと呼ぶ ● メモリ上のデータのロードやストア、演算など 汎用的に利用されるレジスタを汎用レジスタと 呼ぶ – どのレジスタをどう使うかってのがよくわからんが なあ
32.
プログラム・カウンタ(PC) ●
汎用レジスタとは別の重要なレジスタでプログ ラム・カウンタがある – CPUが現在実行中の命令のアドレスを指す ● 実行中というか次のアドレス ● CPUはPCを加算しつつPCの指すメモリ先の命令 を逐次実行しながら処理を進めていくわけ – PCは次の命令を指す位置まで自動で加算される ● PCの役割ってのはいわゆるジャンプ命令 – C言語でいうところのgoto – ジャンプ命令はPCへの値の代入にすぎない
33.
オペコードとオペランド ●
アセンブリの命令を表す部分をオペコードと呼 ぶ。命令に対する引数に相当する部分をオペラ ンドと呼ぶ ● こういったものを人間がわかりやすいようにし たのがニーモニック オペコード ↓ オペランド ↓ ↓ ld r1, 0x8000 ← 実際ldってのは0x01みたいな数値 ld r2, 0x8004 ← だけどそれじゃあわかりにくい add r3, r1, r2 ← そこでldとかaddとか文字を使う st r3, 0x8010 ← こういう表現をニーモニックと呼ぶ
34.
インストラクション ●
機械語の命令はインストラクションとも呼ばれ る – どの数値がどの命令として動作するかという 気もありを、命令セットとかインストラク ション・セットという ● 命令セットはCPUごとに違う – H8とx86じゃやっぱり違うらしい – 見た限りでは結構似ている – 命令じゃないけどレジスタ名は違うな
35.
アセンブル、アセンブラ ●
アセンブリ言語で書いたコードを機械語コード のバイト列に変換する作業をアセンブルと言う – 昔は手でやってたからハンド・アセンブルなんて言 葉も残ってる ● アセンブルを行うプログラムをアセンブラと呼 ぶ – コンパイラみたいな位置づけで考えればイメージし やすい ● 機械語コードをアセンブラに逆変換することを 逆アセンブルと呼ぶ
36.
おわり ●
このあと実行形式ファイルを逆アセンブルして いろいろ解説されているが、かなり長くなるの でここで終わる ● 汎用OSであればアセンブリ周りはGASやNASMで やればいいと思うのでこのあたりは流してもい いんじゃないかな ● でも勉強になるっちゃなる
Download