練習問題 1
- 以下の命令を用いて A レジスターの内容を mod 0x100 で 5 倍するプログラムを書きなさい.
47 Aレジスターの内容をBレジスターへコピー. MOV B,A
80 A+B を A(レジスター)に代入. ADD B
- さらに以下の命令を用いて A レジスターの内容を mod 0x100 で 5 倍するより高速なプログラムを書きなさい.
07 Aレジスターの内容を1左にシフト. 溢れた分は Carry flag へ. RLC
練習問題 2
- 以下の命令を用いて メモリアドレス 9000H から 90FFH までに ABH を書き込むプログラムを書きなさい.
- メモリアドレス 9000H からに格納された数の2進数としてパターンが白黒画面の表示となるハードウエアがある.
1が白, 0 が黒となる. 画面は 256 X 128 ドットで構成されている.
この画面を真っ白にするプログラムを書きなさい.
以下で数は 1 byte のサイズ.
3E 数 A レジスターに数を代入 LD A,数 [MVI A,数]
06 数 B レジスターに数を代入
26 数 H レジスターに数を代入
2E 数 L レジスターに数を代入
77 A レジスタの内容を HL レジスタに格納されたメモリアドレスに書き込む LD (HL),A [MOV M,A]
70 B レジスタの内容を HL レジスタに格納されたメモリアドレスに書き込む
2C L レジスターの内容を 1 増やす. INC L [INR L]
BD A レジスターと L レジスターの内容を比較. CP L
C2 数1 数2 比較の結果が 0 でないとき, 数2 数1 番地へジャンプ. JNZ
76 停止 HLT
参考
-
8080 CPU のマシン語
-
Web での 8080 エミュレーター
- hexcurse を用いて emacs の Wrote メッセージを変更してみる.