2011-06-05から1日間の記事一覧

課題

アセンブラの説明をほとんどしてないのに アセンブラからどのような最適化が行われているのか解析せよとか鬼畜 GCCのオプションから行われていることを書いてやろうと思ったけど、 それだと意味ないし。ぬぬぬ。

コードの最適化

関数 #include <stdio.h> void func1 (int x, int a[]) { int i, j; for (i = 0; i < 10; i ++) { a[i] = i; } } int main (void) { int x[10]; func1 (5, x); return 0; } gcc -O0 -S でこんぱいる .file "ex4.c" .text .globl func1 .type func1, @function func1: </stdio.h>…

アセンブラ云々

命令 leal Load Effective Address (long?) leal 4(%esp), %eax espの値に4足したメモリ位置にあるアドレスをeaxにいれる http://d.hatena.ne.jp/suu-g/20080505/1210012224ll sall sall $2,%eax eaxを2bit左シフト xorb xor。 xorb %al, %al alに0をセット…

while(1){LOVE++;}を最適化

最近ツイッターで "while(1){LOVE++}"と書き込まれてる指輪があって、 そのソースは最適化でLOVEが消えてただの無限ループになる云々という話があったので検証。 http://togetter.com/li/144840 用意したソースはこちら。 int main() { int LOVE = 0; while(…