私は次のコードを与えられましたが、理解しようとしています。 .bssのコードは、それはしかし、それはそれは良いよりも多くを混乱することを恐れて、私は私の思考を提供することができ要求したりneccessary 0アセンブラのこのコードは何をしますか?
1 fib : file format elf 32−i386
2
3 Disassembly of section.text :
4
5 0 x08048080 <start>:
6 0 x08048080 : mov eax , 0x80490d0 <array>
7 0 x08048085 : push eax
8 0 x08048086 : mov eax , 0 x3
9 0 x0804808b : push eax
10 0 x0804808c : call 0 x8048098 <fib>
11 0 x08048091 : pop eax
12 0 x08048092 : pop eax
13 0 x08048093 : jmp 0 x80480c1 <Lend>
14
15 0 x08048098 <fib>:
16 0 x08048098 : mov ebx , [esp+0x8]
17 0 x0804809c : mov ecx , 0 x2
18 0 x080480a1 : xor edx , edx
19 0 x080480a3 : mov [ebx] , edx
20 0 x080480a5 : mov eax , 0x1
21 0 x080480aa : mov [ebx+0x4] , eax
22 0 x080480ad : jmp 0 x080480ba <Lloop_cond>
23
24 0 x080480b2 <Lloop >:
25 0 x080480b2 : push eax
26 0 x080480b3 : add eax , edx
27 0 x080480b5 : mov [ebx+ecx∗4] , eax
28 0 x080480b8 : pop edx
29 0 x080480b9 : inc ecx
30
31 0 x080480ba <Lloop_cond>:
32 0 x080480ba : cmp ecx , [esp+0x4]
33 0 x080480be : jle 0x080480b2 <Lloop>
34 0 x080480c0 : ret
35
36 0 x080480c1 <Lend>:
37 0 x080480c1 : mov ebx , 0 x0 ; Exit code 0 = success
38 0 x080480c6 : mov eax , 0 x1 ; Select System call exit
39 0 x080480cb : int 0 x80 ; System call
40
41 Disassembly of section.bss :
42
43 0 x080490d0 <array>:
44 . . .
で前もって初期化されるに
アレイは、十分な大容量のメモリにpoitingされます。 建設的な助けをありがとう。
私はこの正確な質問は、[宿題](http://www3.informatik.uni-erlangen.de/Lehre/GRa/Klausuren/として使用気づきましたklausur-gra-2012-04-13.pdf)を数年前にドイツの大学で学びました。あなたの考えや理解できないコードに関する具体的な質問やあなたの現在の理解がなければ、あなたは現時点であなたの宿題を依頼しています。 –
@MichaelPetchこれはあなたがリンクしたPDFから文字通りコピーされたようです。 – fuz
@MichaelPetchもしあなたが研究をうまく行っているなら、現在ドイツで休暇があり、休暇中に宿題がないことを知っているので、私は次の宿題について良い発言が必要なので、 。しかし、何でも。通常、SOについての有用なコメントは得られませんが(回答については言及しません)、リバースエンジニアリングを行い、どのように動作するかを理解するのに十分なコメントがあります。 – blauerschluessel