c言語のプログラムをアセンブリに変換する質問です
http://www5.si.gunma-u.ac.jp/sado/compiler/ex08/ …
上記のアドレスの5番の問題です
私が考えたコードがこれなのですが正解がないので
あっているかどうか心配です
実行環境がある方、もしくはアセンブリコードに
詳しい方チェックをお願いします
load r4 , #0 ## d = 0
load r1 , a ## r1 = a
load r3 , c ## r3 = c
cmp r1 , r4 ## a > d → a > 0
jg Label ## a > 0 でないならLabelに分岐
mul r1 , r3 , r2 ## b = a * c;
sub r1 , r3 , r4 ## d = a - c
jmp Label2 ## Label2へ分岐
Label : mul r1 , r3 , r4 ## d = a * c
sub r4 , r1 , r2 ## b = a * c - a
add r1 , r3 , r4 ## d = a + c = d
Label2 : mul r2 , r4 , r1 ## a = b * d
No.2ベストアンサー
- 回答日時:
・条件分岐が逆
・演算結果をstoreしていない (その必要があるか否か設問からは分からない)
No.1
- 回答日時:
ぶっちゃけ、全然アセンブリ分かんないんですけど、gccでも使えば -S オプション付けて実際にコード吐き出して貰えば大体のトコ概要は掴めるんじゃないですかね?
例えば、Linux(Ubuntu on intel)でgcc使って -S 付けて吐き出させたアセンブリコードは次のようになっています。
.file"6063130.c"
.text
.globl main
.typemain, @function
main:
pushl%ebp
movl%esp, %ebp
subl$16, %esp
cmpl$0, -4(%ebp)
jle.L2
movl-4(%ebp), %eax
imull-12(%ebp), %eax
movl%eax, -8(%ebp)
movl-12(%ebp), %eax
movl-4(%ebp), %edx
movl%edx, %ecx
subl%eax, %ecx
movl%ecx, %eax
movl%eax, -16(%ebp)
jmp.L3
.L2:
movl-4(%ebp), %eax
imull-12(%ebp), %eax
xorl-4(%ebp), %eax
movl%eax, -8(%ebp)
movl-12(%ebp), %eax
movl-4(%ebp), %edx
leal(%edx,%eax), %eax
movl%eax, -16(%ebp)
.L3:
movl-8(%ebp), %eax
imull-16(%ebp), %eax
movl%eax, -4(%ebp)
leave
ret
.sizemain, .-main
.ident"GCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3"
.section.note.GNU-stack,"",@progbits
私もアセンブリはまだほとんど勉強してないのでこれを見てもよくわからないですね^^;でもこういうことができるんだということが知れてよかったです。ご意見ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- JavaScript java keyを配列で表記したい 10 2022/12/01 17:53
- 工学 CR発振回路 C1=C2=C=0.001【uF】 R1=R2=R3=16【kΩ】 R4は出力電圧が正 2 2023/05/10 19:13
- 猫 H30年9月に保護した♀️猫。(当時推定4~5ヵ月。)ひとつき後位に3種混合ワクチン接種、更、年明け 3 2022/11/04 18:34
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- その他(自然科学) 信頼度がR1、R2の機器を並列に接続した場合、システム全体の信頼度はどれか。答え1-(R1)(1- 2 2023/01/15 21:45
- 物理学 写真のような回路のとき、参考書によれば「直列では電圧比は抵抗比に等しい」ということから、 「R1:R 5 2023/06/29 21:32
- 物理学 この問題における抵抗r1とxってどのように考えれば良いのでしょうか?トルクはT=P2/ωsなのでP2 1 2022/06/19 18:46
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- 中学校 中2の理科『電流と回路』について質問です。並列回路全体の抵抗は 1/R=1/R1+1/R2 で求めら 5 2023/02/14 20:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでパワーシェルを実行したい...
-
VBA 電話番号の正規表現について
-
vba クリップボードクリアにつ...
-
小学1年生の子です。塾に行かせ...
-
ImageMagickでgif画像の一部が...
-
楽しくて最高のプログラミング...
-
ホワイトハッカー
-
プログラミングのPythonのnoteb...
-
プログラミング ソースコード
-
プログラミング
-
Windowsのアプリ開発ってなんの...
-
ExcelVBAでFormulaR1C1を列範囲...
-
Google ColaboでGUI作成
-
Powershellとコマンドプロンプト
-
GoogleAppsScript文字列置換の...
-
プログラマーと学歴の関係性に...
-
Pythonって何を意識した言語な...
-
テキストファイルのファイル名...
-
プログラミング、アーキテクチ...
-
Webプログラムってネイティブア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング
-
小学1年生の子です。塾に行かせ...
-
vba クリップボードクリアにつ...
-
プログラマーと学歴の関係性に...
-
Webサイト内に埋め込んだmp4動...
-
正規表現で複数マッチ条件で悩...
-
windowsでテキストファイルの各...
-
楽しくて最高のプログラミング...
-
プログラミング ソースコード
-
Pythonって何を意識した言語な...
-
プログラミングを教えたいです...
-
pythonで複数画像からgifを作る...
-
pythonにてseleniumを使うも、...
-
Pythonでgif画像が上手く作れない
-
Google ColaboでGUI作成
-
テキストファイルのファイル名...
-
プログラミング、アーキテクチ...
-
そのまま使っただけなのに・・...
-
このURLで広告を出しているのは...
-
chatGPTで次々と質問をしていく...
おすすめ情報