あるプログラムで、TIMERというサブルーチンを作りました。適当に数値を変えてうまく行った値を採用したのですが、実際に処理時間が何秒かかるのかが分りません。
TIMER MOVLW 0x40 ;この40が採用した値です
MOVWF WC1
LOOPT DECFSZ WC2,F ;WC2はあらかじめCLRされてます
GOTO LOOPT
DECFSZ WC1,F
RETURN
見難くてすいません(TIMER、LOOPTがラベルです)
使用ハードはPIC16F84Aでクロック周波数は20[MHz]です。
たしか通常は一つの命令にクロック4周期分だった気がするので、最初の二行で8/20M[s]なのは分るんですが、LOOPTのDECFSZとかは4周期分じゃなかったような気がして、混乱してしまいました・・・。
知りたいのはRETURNで戻るまで(メインルーチンに戻るまで)です。
わかる方ご教示願います。
No.2ベストアンサー
- 回答日時:
>DECFSZは2命令サイクル必要な時と1命令サイクルでいいときがあって混乱しています。
そんなに難しい話ではないと思いますが。
この種の条件が成立した時にスキップという命令の場合、
条件が成立しない場合は1サイクル(4クロック)、成立してスキップする場合2サイクルかかるだけです。
条件によって処理する量が違うので、スキップという処理を余分に行う分、余計なサイクルが必要なだけですから。
結局、こんな感じのサイクル数になると思います。
MOVLW 1サイクル
MOVWF 1サイクル
DECFSZ (1サイクル * 0xff + 2サイクル) * 0x40
GOTO (2サイクル * 0xff ) * 0x40
DECFSZ 1サイクル * 0x3f + 2サイクル
GOTO 2サイクル * 0x3f
RETURN 2サイクル
多分二重ループでしょうから LOOPTへのジャンプがあるはずとGOTOを一つ追加しております。
この合計を4倍すればクロック数がでます。
各命令のサイクル数は手元の「PICマイコン活用ハンドブック」で調べました。
ちなみに、まだPICでプログラム作ったことはありません(^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) クロック周波数が4GHzのCPUは,4クロック1命令処理できると仮定した場合,1秒間に何回の処理が可 2 2023/01/11 18:59
- C言語・C++・C# numpyスライス機能を使った数値計算 2 2023/05/08 16:01
- その他(コンピューター・テクノロジー) PIC16F1シリーズマイコンのNCO機能について 1 2023/04/18 08:41
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 統計学 どの統計を使えばいいのか教えてください(EZ-Rを使用) 5 2022/10/11 13:28
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- その他(ソフトウェア) F-BASICで計算中の実行が中途で勝手に止まり、大変困っています。 2 2023/03/02 16:15
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PICマイコンのプログラムについ...
-
VBAでのコントロール操作
-
文字化けはなぜ日本語が入って...
-
【有効数字について】 授業で、...
-
KBのMB違いって
-
KBとMB
-
ワードの改行について
-
ALUのオーバーフローフラグの生...
-
6ビット(符号含む)の二進数
-
GB と Gbの違いの意味
-
16bitはダイナミックレンジが97...
-
K KB MB について詳し...
-
もしコンピューターが2進数か...
-
文字の容量(サイズ)についての...
-
アルファベット30文字は何バイ...
-
ブルーレイディスクの容量に関...
-
データ量の単位について教えて...
-
IBM漢字とUTF-8の変換について
-
ギガバイト メガバイト この違...
-
PDFからワードへ→文字がくずれる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語FortranとCの違...
-
命令網羅率の計算問題です
-
組み込みCプログラムで実数型
-
VBAでのコントロール操作
-
COM1(RS232C)とUSB仮想COMポー...
-
64ビット化による処理速度低下...
-
なぜ、i++なのか?(ものすごく...
-
H8Sで割り込み発生時の飛び先ア...
-
アセンブリ言語で。
-
MIPS と クロック周波数の換算方法
-
x86系のCPUとは?
-
PICマイコンのプログラムについ...
-
arduino
-
応用情報技術者試験問題の解き...
-
CPUのHTについて教えてください。
-
MFCのエディットボックス上書き...
-
VBSとVBA
-
C言語についてです 整数nを入力...
-
CPU、Z80からステート数から...
-
アセンブラ大至急!!
おすすめ情報