Programming C

逆アセンブルで遊んでみる(1)0を返す関数

「定数0を返す関数」の逆アセンブルです。 /* asm001.c */ int func(void) { return 0; } 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: b8 00 00 00 00 mov $0x0,%eax 8: 5d pop %ebp 9: c3 ret asm000.oとの差分を拾ってみると… ・eaxレジスタに対するmov命…

逆アセンブルで遊んでみる(0)何もしない関数

「フィーリングで読むアセンブラ入門」の発売が待ち遠しくて、いかにも発狂しそうですが、発売日まで、自分の環境で逆アセンブルして我慢しようということで…。今回のソースコードは、こんな内容。内部で何も行わない関数の逆アセンブルを行ってみます。 /* …

2の冪乗

well-knownな2の冪乗は、丸暗記してしまいましょう。 毎日、呪文のように唱えていれば、自然に暗記します(^ ^;) intの最大値は、「ニジュウイチオクヨンセンナナヒャクヨンジュウハチマンサンゼンロッピャクヨンジュウナナ」とかね。 2の冪乗 10進数 2^0 1…

array、&array[0]、&arrayの違い

添字指定の無い配列名を参照すると、「配列の先頭要素へのポインタ」として参照されますが、&演算子がついた配列名とは、どう違うのでしょうか。[array.c] 1 #include <stdio.h> 2 3 int main(void) 4 { 5 int array[5]; 6 7 printf("%p -> %p\n", array, array+1);</stdio.h>…