こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

コンパイラ、ELF形式のアセンブリ言語

コンパイラの授業で、課題がでたのですが、全然分からなくて、困っています。どうか、解答、解説をよろしくお願いします。問題は以下です。
オブジェクト・プログラムを出力するコンパイラで、以下のプログラムをコンパイルしてみて、その入り口処理、出口処理の内容と、スタック・フレームの構成され方を調べなさい。
int fact(int p)
{
if(p<=1)
return 1;
else
return fact(p-1);
}

自分で一応、以下のようにオブジェクト・プログラムを出力してみました。
$ objdump -d a.o

a.o: file format pe-i386


Disassembly of section .text:

00000000 <_fact>:
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 83 ec 08 sub $0x8,%esp
6: 83 7d 08 01 cmpl $0x1,0x8(%ebp)
a: 7f 09 jg 15 <_fact+0x15>
c: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%ebp)
13: eb 0f jmp 24 <_fact+0x24>
15: 8b 45 08 mov 0x8(%ebp),%eax
18: 48 dec %eax
19: 89 04 24 mov %eax,(%esp)
1c: e8 df ff ff ff call 0 <_fact>
21: 89 45 fc mov %eax,-0x4(%ebp)
24: 8b 45 fc mov -0x4(%ebp),%eax
27: c9 leave
28: c3 ret
29: 90 nop
2a: 90 nop
2b: 90 nop

アセンブリの知識は、少しはあるのですが、入り口処理、出口処理の内容と、スタック・フレームの構成され方が全然分からないです。どうか、解答、解説をよろしくお願いします。

投稿日時 - 2013-01-29 18:13:23

QNo.7917489

すぐに回答ほしいです

質問者が選んだベストアンサー

アセンブリの知識があるのなら1ステップずつ何をしているか追えば解るレベル。

それにターゲットのMPU名くらい書くのが常識。

投稿日時 - 2013-01-29 23:16:32

お礼

そうですね。

投稿日時 - 2013-02-14 14:28:24

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問