回答編集履歴
1
補足
test
CHANGED
@@ -39,3 +39,49 @@
|
|
39
39
|
5.著作権に抵触したり、使用許諾に抵触しない方法は、知りません。
|
40
40
|
|
41
41
|
過去の、互換BIOSの開発手法が参考になるかも。
|
42
|
+
|
43
|
+
’’
|
44
|
+
|
45
|
+
普通は、該当CPUのアセンブラと、コンバート言語に精通した方が行う行為です。
|
46
|
+
|
47
|
+
学習目的であれば、
|
48
|
+
|
49
|
+
1.Cのソースコードから、アセンブリソースを出力する。
|
50
|
+
|
51
|
+
この時に、簡単な整数演算程度から始める。
|
52
|
+
|
53
|
+
一切のオプティマイズを、使用しないようにする。
|
54
|
+
|
55
|
+
2.メモリー上にロードした実行コードを、逆アセンブルして
|
56
|
+
|
57
|
+
逆アセンブルしたソースコードから、Cのコード対応を理解する。
|
58
|
+
|
59
|
+
不明部分は、先のアセンブリソースと対比してもよい。
|
60
|
+
|
61
|
+
3.少し複雑な物で、Cのソースのみで、逆アセンブルのソースコードから
|
62
|
+
|
63
|
+
Cのソースコードが、脳内変換できるかどうか、出来なければ、
|
64
|
+
|
65
|
+
練習不足、勉強不足なので、1、2を繰り返す。
|
66
|
+
|
67
|
+
4.オプティマイズしていない、アセンブリソースコードと、
|
68
|
+
|
69
|
+
オプティマイズしてある、アセンブリソースコードを見比べて、
|
70
|
+
|
71
|
+
オプティマイザの行っている事を理解する。
|
72
|
+
|
73
|
+
オプティマイズは、CPUアーキテクチャ、CPUキャッシュの状態を
|
74
|
+
|
75
|
+
考慮しているかいないかで、どうなるかなども、理解する。
|
76
|
+
|
77
|
+
GNU-Cと、他の処理系での、アセンブリソースを比較してみたり。
|
78
|
+
|
79
|
+
他いろいろ、
|
80
|
+
|
81
|
+
いきなり、Windows系、Linux系は、難しいので、
|
82
|
+
|
83
|
+
マイコン系、昔のZ80系などから始めると、仕組みが簡単な場合もあるので、
|
84
|
+
|
85
|
+
理解しやすいかも。
|
86
|
+
|
87
|
+
|