• 締切済み

Z80のプログラム(アセンブラ)

sw0--sw7をpa0--pa7へ接続し、sw0--sw3の2進数値をX、sw4--sw7の2進数値をYとしてX+Y,X-Yを求めて、演算結果をポートCに表示するというプログラムです。ただし、減算は2の補数を使います。だれか教えてください

みんなの回答

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

もともとのZ80にはポートは無いのでIO空間かメモリーマップドになっているはずです。とりあえず PortA PortC のアドレスにマップされているとして書いてみると、 ORG * LD A,PortA LD HL,BUFF LD (HL),A SRA A SRA A SRA A SRA A LD B,A RLD LD A,(HL) SRA A SRA A SRA A SRA A LD C,A ADD A,B RLD LD A,C SUB B RLD LD A,(HL) LD PortC,A END BUFF: DS 1 でいかがでしょう。出力はX+Yが上位ニブル、X-Yが下位のニブルに出力されると思います。このコードが通るかどうかはアセンブラによると思いますから適当に改変してください。

goken
質問者

お礼

ありがとうございます。これからもよろしくです

関連するQ&A