1. カメラ
  2. カーオーディオ&エレクトロニクス
  3. ホームオーディオ
  4. パーソナルオーディオ
  5. テレビ
  6. スマートホーム
  >> 電子技術オンライン >  >> 電話 >> 留守番電話

8085 マイクロプロセッサを使用して 2 つの 8 ビット符号付き数値を乗算するプログラムを作成しますか?

2 つの 8 ビット符号付き数値を乗算する 8085 アセンブリ プログラム

「」

オーグ100H

LXI H、2000H; HLペアを初期化してプロダクトを保存します

MOV A、M;最初の数値をアキュムレータにロードします

SBB B;アキュムレータから 2 番目の数値を減算します (ボローを使用)

MOV M、A;結果をメモリに保存する

DCXH; HLペアをデクリメントします

MOV A、M; 2 番目の数値をアキュムレータにロードします

B を追加します。最初の数値をアキュムレータに加算します (キャリーあり)

MOV M、A;結果をメモリに保存する

INX H; HLペアをインクリメントします

JMPループ;ループを繰り返す

ループ:CMP H、0; HL ペアをゼロと比較します

JNZループ;ゼロでない場合は、ループに戻ります

HLT;プロセッサを停止する

「」

説明

このプログラムは、8085 マイクロプロセッサの SBB (借入付き減算) および ADD (キャリー付き加算) 命令を使用して、2 つの 8 ビット符号付き数値を乗算します。

プログラムはまず HL ペアを初期化し、2 つの数値の積を保存します。次に、最初の数値をアキュムレータにロードし、そこから 2 番目の数値を (ボローを使用して) 減算します。これにより、最初の数値が 2 番目の数値より小さい場合はキャリー フラグが設定され、それ以外の場合はキャリー フラグがクリアされます。

次に、プログラムは結果をメモリに保存し、HL ペアをデクリメントします。次に、2 番目の数値をアキュムレータにロードし、最初の数値をそれに加算します (桁上げあり)。これにより、2 つの数値の合計が 255 より大きい場合はキャリー フラグが設定され、それ以外の場合はキャリー フラグがクリアされます。

次に、プログラムは結果をメモリに保存し、HL ペアをインクリメントします。次に、プログラムは LOOP ラベルに戻り、HL ペアがゼロに達するまでループを繰り返します。最後に、プログラムはプロセッサを停止します。

最初の数値が 10 で、2 番目の数値が 5 の場合、プログラムは 2 つの数値の積である 50 をメモリ位置 2000H に保存します。