電子書籍の厳選無料作品が豊富!

助けてください!全く分かりません

MP-Z80で10進数1から10まで加算し、その結果をAレジスタに格納し、A以外のレジスタの内容は保存されるようにするプログラムの作成を教えてください

A 回答 (1件)

EX AF,A'F'   ; AF←→A'F' でFレジスタの内容を保存


EXX       ; BC←→B'C',DE←→D'E', HL←→H'L' でB,C,D,E,H,Lレジスタの内容を一括保存
; ここは PUSH BC でもいいが EXX の方がステート数が少なくて済む。
XOR A ; Aレジスタの内容をリセット。 LD A,0 でもいいが XOR A の方がプログラム・バイト数とステート数が少なくて済む。
LD B,0Ah ; Bレジスタに10進10を入力。 10進表記で LD B,10 としてもよい。
LOOP: ADD A,B ; A←A+B の加算
DEC B ; B←B-1 の減算。 演算の結果Bレジスタが0になればZフラグ=1。それ以外は Zフラグ=0
JR NZ,LOOP ; Zフラグが0(NZ=1)ならLOOPに戻る(相対ジャンプ)。 Zフラグが1(NZ=0)ならスルー。
EXX ; BC←→B'C',DE←→D'E', HL←→H'L' でB,C,D,E,H,Lレジスタの内容を一括保存
; 2行目の EXX をPUSH BC としたときは POP BC に置き換える。

 ※ 文字がずれて読みづらいときは 「テキスト・ドキュメント」などにコピー&ペースとして読み直してください。


 使用している命令は若干異なりますが、このサイトが役に立つかもしれません。
http://www.infonet.co.jp/ueyama/ip/software/asse …
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2010/11/24 12:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!