
No.5ベストアンサー
- 回答日時:
人間が筆算で行う場合も引き算しか使いませんね。
(厳密にいえば10進数の除算の場合は乗算も使ってますが・・・)ビットシフト命令を使えばNo4の回答のようなループも必要ありません。
筆算でも数字のシフトは行ってますし、アセンブラでもやり方は同じです。
人間の脳は2進数に慣れてないからわからないかな。
RJMPはリラティブジャンプ (相対ジャンプ)で現在位置から±いくつジャンプという小さなジャンプです。移動距離に制限があります。
JMPは絶対ジャンプで、位置を指定して一気に遠くまでジャンプできます。
RJMPの方がプログラムメモリも少なく実行速度も速いため、ループ処理などの移動距離が少なく回数の多いジャンプに使用するとメリットがあります。
No.4
- 回答日時:
割り算を加減算で表現すると
6 / 2 = 3
6 = 2 * 3
6 - 2*3 = 0
6 - (2+2+2) = 0
(((6-2)-2)-2) = 0
つまり A ÷ B の商は
「A から B を引く」を「A が 0 になる」まで繰り返し実行した回数
で求めることができます。
AVR の命令セットならば、以下を用いればプログラムできるでしょう。
* 初期設定に LDI
* 引き算は SUB
* 回数の勘定は INC
* 繰り返しは CP,BREQ,RJMP
余裕があるなら、負数とか剰余とかも考慮してみてください。
No.3
- 回答日時:
No.1が解決できたらインストラクションセットはこちらにあります。
http://www.avr.jp/user/DS/PDF/AVRinst.pdf
AVR専用ライブラリ。参考まで。
http://elm-chan.org/cc.html
No.2
- 回答日時:
あと、ニーモニックは、CPUやアセンブラによって違うものです。
例え同じ「SUB」が使われていたとしても、その引数とか制限とかフラグの変化とかが違ってきます。
どのCPUのどんなアセンブラなのか、書くようにしましょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラム言語
-
ライン数とステップ数の違いは?
-
PIC16F84AのデバイスでC言語を...
-
【H8マイコン】HEWで埋め込みア...
-
PICはアセンブラとC言語のどち...
-
素数を求めるプログラム(アセン...
-
データコピー
-
アセンブラからC言語に変換する...
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
一般のソフトで画像を扱う場合...
-
PIC16F1シリーズマイコンのNCO...
-
C言語で128bitの2進数のビット...
-
非常に限定された条件での8バイ...
-
CPUは何故、16bit→32bit→64bit...
-
トリムレジスタ
-
PICでUSARTのフレーミングエラ...
-
SRAMとレジスタの違いは何でし...
-
文字参照は10進数と16進数では...
-
信号のビット数制限、って出来...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
アセンブラ言語がわかりません。
-
実行ファイルからソースはみれる?
-
このアセンブラの意味を教えて...
-
アセンブラのコマンドについて
-
PICに書き込むプログラムや変数...
-
アセンブラのLA
-
アセンブラwordという単位
-
アセンブラの実行速度
-
Windowsはオープンソースですか?
-
バイナリの実行ファイルをgccを...
-
void __cdeclなど_
-
MPLAB IDE v8.92アセンブラにつ...
-
ArduinoIDEのコンパイル結果の表示
-
GASの入門書
-
アセンブラ言語で
-
アセンブラで割り算
-
アセンブラのリンカのダウンロ...
おすすめ情報