2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

今更C言語やアセンブリ言語を学んでいる学生だけど質問ある?

1 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 10:49:53.205 ID:6rhb3adw0.net
今更コンパイラやprintfなどの自作とかしてる
とは言ってもシステムコールを呼び出すだけのモジュールを作ってそれをC言語から呼び出すだけなのだが
てなわけでいつかOS作りたい

2 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 10:50:10.405 ID:R0L83vhqd.net
いいえ

3 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 10:50:15.194 ID:mNGu7O4xd.net
CTFやれ

4 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 10:51:38.288 ID:Ihq+Ho9xa.net
労力や技術と収入のマッチしない道だが頑張れよ

5 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 10:52:03.460 ID:0Uo+EUT/0.net
ファミコンやれ

6 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 10:54:15.242 ID:6rhb3adw0.net
>>5
楽しそう、やる

7 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 10:54:46.749 ID:0Uo+EUT/0.net
>>6
スーファミでもいいぞ

8 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 10:58:44.622 ID:6rhb3adw0.net
>>7
最初にファミコンやるわ
命令セット調べた
アセンブラから作らなきゃだが
命令数が少ないからパソコンと比べたらいけそうだな

9 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 11:02:43.206 ID:UO+qdsjh0.net
確かにいい具合の課題なきがする
互換機調べたりしても良さそうだし

10 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 11:04:02.797 ID:0Uo+EUT/0.net
>>8
おう頑張れ

11 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 11:07:07.992 ID:Ee+ogg8c0.net
c言語のポインタはどうやってポインタ変数自身のアドレスにアクセスしてんの?
http://www.ics.kagoshima-u.ac.jp/edu/gengo0/p10_4.GIF
この図でいうならint *p;をした段階でポインタ自身にもアドレス(赤い縦線の部分)が割り当てられるんだろ
ポインタ変数pを参照したときに、それ自身が格納されてるメモリ上のアドレスがどの番地であるかが何で分かるの?
>>1詳しそうだから教えてくれよ

12 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 11:22:35.877 ID:6rhb3adw0.net
>>11
int a = 0
mov rdx, 0
int *p = NULL
mov rdx, 0

普通の変数のアクセスと同じ

実際にどうやってるかは場合によるけど
上のようにレジスタにアドレスの値を入れていたり
ローカル変数ならスタックに積んでそこからアクセスしたりする
いずれにしても入れて置いた場所と同じところをアクセスするだけ

13 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 11:29:37.592 ID:6rhb3adw0.net
pに参照すると言うよりは
アドレスにpと名前を付けてるだけのほうが正しい認識かな
pをBBCDEF00とか具体的なアドレスに置き換えたらわかると思う

14 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 11:35:16.974 ID:6rhb3adw0.net
変数なんてものは都合上用意してあるだけでそんなものないんだよ

C言語風に書くと

int a = 20;
int *p = &a;



void mem[FFFFFFFF];
mem[ABCDEF00] = 0x14;
(省略)
mem[BBCDEF03] = 0xab;

みたいな感じ、どうしてアドレスがわかるの?って言うよりはそもそもがアドレス

15 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 11:47:07.779 ID:XkoqKQv40.net
ファミコンの6502でgame言語を思い出した
6502のgame言語にコンパイラソースもあった気がするな

16 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 11:55:27.346 ID:iWqFAsrc0.net
C++だと型安全なprintfが作れて楽しいぞ

17 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 11:58:39.123 ID:Ee+ogg8c0.net
>>13
>>14
どうもありがとう
じゃあ何でABCDEF00に格納されてる0x14を扱いたいときは直接aと書かずに、一度ポインタを挟む必要があるの?
ポインタを上手く使うことでメモリ領域を節約できるテクニックがあるのはググるといくつか見つかったから知ってるけどそういう意図がない場合

18 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 12:01:09.238 ID:iWqFAsrc0.net
>>17
途中でaじゃなくてbにしたい時とか、aになるかbになるかわからない時とかは「a」って書けないじゃん?

19 :以下、?ちゃんねるからVIPがお送りします:2019/07/16(火) 12:01:13.918 ID:49SH9KkOd.net
何年生

総レス数 19
6 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★