■ このスレッドは過去ログ倉庫に格納されています
今更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 ★