• 締切済み

アセンブリ言語からC言語への変換について

PICでキッチンタイマーを作ろうとしているんですが、C言語で作ることが指定されています。しかしアセンブリ言語でしかわかりませんでした。そこで次のアセンブリ言語のプログラムをC言語に直して下さい。 スタート/ストップ処理 start_timer BTFSC working,0 GOTO stop_timer BSF working,0 CALL beep CALL wait wait_start_sw BTFSC PORTA,START_SW GOTO main CALL wait GOTO wait_start_sw stop_timer BCF working,0 CALL beep CALL wait GOTO wait_start_sw タイマのリセット処理 reset_timer BTFSC working,0 GOTO main CALL init_timer CALL beep CALL wait wait_reset_sw BTFSC PORTA,RESET_SW GOTO main CALL wait GOTO wait_reset_sw 7セグメントLEDの表示操作 … MOVLW 2 CALL getdigit MOVWF PORTB … getdigit ADDWF PCL,1 RETLW 11000000b RETLW 11111001b RETLW 10100100b RETLW 10110000b RETLW 10011001b RETLW 10010010b RETLW 10000010b RETLW 11011000b RETLW 10000000b RETLW 10010000b

みんなの回答

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.5

http://www.cqpub.co.jp/toragi/TRBN/trsample/2004/tr0405/0405bg5.pdf はじめてのPICマイコン入門<第5回> キッチン・タイマの製作(後編) 上記のソースからコメントを取って丸投げした模様... ハードの仕様は下記を参照の事 http://www.cqpub.co.jp/toragi/TRBN/trsample/2004/tr0404/0404bg4.pdf はじめてのPICマイコン入門<第4回> キッチン・タイマの製作(前編)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

裏技ですが, 「C 言語」の方に, アセンブラをそのまま入れる文があるだろうから (たいてい asm とか _asm とか __asm とか), それを使う. 一応「C 言語」ですよね.

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

私が推測すると、C言語でキッチンタイマーを作る課題が出て、ネットを探したらアセンブラのキッチンタイマーのソースコードが見つかったので、C言語に変換してくださいって言う課題の丸投げだと思いますが違いますか? アセンブラが分かっていて、C言語の勉強中で、課題としてキッチンタイマーを作りたいと言う状況では無い気がします。 この掲示板は、手助けは出来ますが、丸々作成することは規約に反して削除条件に該当しますので、どちらにしろ変換は無理なんですが、自分で出来ている部分と分からない部分を必ず書き込んでください。全然出来ていないってのは無しですよ。 morigannさんも書かれていますが、周辺回路の仕様やプログラムの仕様も不明だと手助けは不可能ですから必ず書き込んでください。

  • morigann
  • ベストアンサー率17% (57/329)
回答No.2

説明不足で申し訳ありませんでした。 自分の発言した仕様書とは、 「キッチンタイマー」を作る上でどのように作るかの?を示した物です。 例えば、 「数字表示は何桁にするのか?」 「タイマーは1秒刻み?にするのか?」 「デジタル表示の配置順は?」 「1桁表示時の10の位の表示はどうするのか?」 など「キッチンタイマー」と一言で言っても決めないと出来ない事は多々あります。 質問者様が「自分でこのソースを作ったがここまでしか出来なかった」のように発言されておられましたので、元になる仕様書の開示を求めました。 もし質問者様が完全オリジナルで作られたのであれば、どのように設計されたかをお教えいただきたいと思います。

  • morigann
  • ベストアンサー率17% (57/329)
回答No.1

「しかしアセンブリ言語でしかわかりませんでした。」 どういう状況になったらそうなるんでしょう? 課題などを丸写しにしたような質問についてはマナー違反として削除されますよ。 とりあえず簡単に見たところ「RETLW」で0~9のセグメントのON/OFFビットを設定してるんだなぁ・・・ Cではテーブルにして・・・かな。 補足:ソースより仕様書出して下さい!仕様書!

関連するQ&A