2017-01-01 3 views
-2

スタックを使用して03H、02H、05H、01Hの4バイトのデータを追加し、結果を3350Hにi8085マイクロプロセッサに格納する必要があります。データバイトは、3300Hを開始する4つの連続したメモリ位置から来ます。これを行うにはどうすればいいですか? は、これまでのところ、私はこれを行っている:インテル8085でスタックを使用して4つのデータバイトを追加するには?

LXI SP,3599H ;Stack initialised 
MVI L,00H 
PUSH H 
POP PSW   ;Flags Cleared 
LXI H,3300H 
PUSH H 
INX H 
PUSH H 
INX H 
PUSH H 
INX H 
PUSH H 
MVI A,00H 
POP B 
ADD B 
POP B 
ADD B 
POP B 
ADD B 
POP B 
ADD B 
STA 3350H 
HLT  

私は繰り返し多くのOTがあるので、これは良い方法ではありません確信しています。それがよりうまく動作するようにいくつかの種類のループがありますか?

+2

2つの質問:1)オーバーフローを処理する予定ですか? 2)スタックを使用する理由私はこれが代入であることを知っていますが、あなたがルーチンを書く必要がない限り、スタックが合理的にどのように使われるか分かりません。 –

+0

値はオーバーフローが発生しないように十分に小さいとはみなされません –

答えて

0

「スタックを使用する」ビットは、SPを3300Hに設定し、スタック(3300Hおよび3301H)からレジスタのペア(BCと言う)にデータをポップし、BをAに追加するCにAを加え、BC(3302Hと3303H)に次の2バイトのデータをポップし、加算を繰り返し、Aを3350Hに格納します。そうすれば、あなたは "スタックを使って"メモリからデータをレジスタに取り込み、数学を実行できます。何かをする前にゼロを。

幸運のベスト。

関連する問題