回答編集履歴

3

返答->回答

2018/02/19 08:57

投稿

asm
asm

スコア15147

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  --
42
42
 
43
- ###### **追記**:2018/02/19 08:32への
43
+ ###### **追記**:2018/02/19 08:32への
44
44
 
45
45
  > CPUの構造をレジスタや細かいレベル(演算回路にデータをおくるレジスタなど、文字を表示するためのデータを送るレジスタなど)
46
46
 

2

追記への返答

2018/02/19 08:57

投稿

asm
asm

スコア15147

test CHANGED
@@ -35,3 +35,55 @@
35
35
  どうしても特殊な命令の利用が必要ならばintrinsicを
36
36
 
37
37
  どうしても任意の機械語が必要ならばCをコンパイラに食わせ、手を加える事を考えます。
38
+
39
+
40
+
41
+ --
42
+
43
+ ###### **追記**:2018/02/19 08:32への返答
44
+
45
+ > CPUの構造をレジスタや細かいレベル(演算回路にデータをおくるレジスタなど、文字を表示するためのデータを送るレジスタなど)
46
+
47
+
48
+
49
+ 普通のwindows等が動いてるCPUをx86互換CPUといいます。
50
+
51
+ intelが30年前に発売した「intel 80386」というCPUが語源です。
52
+
53
+ 当然今の「Core iシリーズ」と中身はまるで別ものです。
54
+
55
+ ですが、16bitモードの機械語には互換性があります。
56
+
57
+ また、Core iのうちでもCoffee Lakeとsandy bridgeは違いますし、Core iとPentium4でも結構違いますが
58
+
59
+ 機械語はほぼ一緒で、かなり高い互換性があります。
60
+
61
+ 更にはAMDが出してる互換CPUなんかも、中身はやっぱり別物です。
62
+
63
+
64
+
65
+ つまり、CPUやプログラムというのは入力に対する出力さえ規定しておけば中身を必ずとも知る必要はないという事です。
66
+
67
+
68
+
69
+ ちなみに[intelのマニュアル](https://software.intel.com/en-us/articles/intel-sdm)です。
70
+
71
+ 私も全文(4670頁)は読めないので、不明な命令等を検索して使っています。
72
+
73
+
74
+
75
+ > ファイルを開くアセンブリ言語プログラム
76
+
77
+
78
+
79
+ int 21hはwikipediaで調べると[MS-DOS API](https://en.wikipedia.org/wiki/MS-DOS_API#DOS_INT_21h_services)へリダイレクトされることから分かる通り**OSのAPI**であり
80
+
81
+ win32apiと大きく変わるものじゃないです。
82
+
83
+ 当時のcpuの事情から割り込みを使い、レジスタによる受け渡しだっただけです。
84
+
85
+ 今では過去のもので、64bit Windowsでは呼び出す事もできません。
86
+
87
+
88
+
89
+ int 13hというBIOSが提供するAPIもありますが、(端的に言えば)OSによって呼び出しが禁止されます。

1

typo

2018/02/19 08:25

投稿

asm
asm

スコア15147

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- 機械語の読み書きが難しいのでアセンブリ言語を用います
25
+ 機械語の読み書きが人間には難しいのでアセンブリ言語を用います
26
26
 
27
27
  コンパイラの出力は(一部例外を除き)機械語です。実行中のコードもまた機械語になります。
28
28