TUGAS! Buatlah program untuk menyalakan deretan LED sesuai dengan tabel kebenaran berikut ini:

| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | Data |
|----|----|----|----|----|----|----|----|------|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 01 |
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 02 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 04 |
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 08 |
| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 10 |
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 20 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 40 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 80 |
Program berjalan 10x pengulangan & Program berjalan terus menerus dan berhenti setelah tombol reset [RST]
Penyelesaian
Struktur Algoritma
| Isi Accu dengan data 01 |
|--------------------------------------------|
| Keluarkan isi Accu ke Register Control |
| Isi Register B = 0A |
| B = 0 |
| Isi Accu dengan data 01 |
| keluarkan isi Accu ke port A |
| Tunda Waktu |
| Isi Accu dengan data 02 |
| Keluarkan isi Accu ke port A |
| Tunda Waktu |
| Isi Accu dengan data 04 |
| Keluarkan isi Accu ke port A |
| Tunda Waktu |
| Isi Accu dengan data 08 |
| Keluarkan isi Accu ke port A |
| Tunda Waktu |
| Isi Accu dengan data 10 |
| Keluarkan isi Accu ke port A |
| Tunda Waktu |
| Isi Accu dengan data 20 |
| Keluarkan isi Accu ke port A |
| Tunda Waktu |
| Isi Accu dengan data 40 |
| Keluarkan isi Accu ke port A |
| Tunda Waktu |
| Isi Accu dengan data 80 |
| Keluarkan isi Accu ke port A |
| Tunda Waktu |
| Kurangi dengan 1 isi Register B |
| Isi Accu dengan data 00 |
| Keluarkan isi Accu ke port A |
| Akhiri program |
Subroutine
| Isi Pas Register HL = FF FF |
|-----------------------------------------------------|
| H = 0 |
| L = 0 |
| Kurangi dengan 1 isi Register L |
| Kurangi dengan 1 isi Register H |
| RET UNC |
Struktur Program
| Alamat | Assembly | Mesin |
|------------|---------------|----------|
| 1800 | LDA, 80 | 3E 80 |
| 1802 | OUT (43), A | D3 43 |
| 1804 | LDB, 0A | 06 0A |
| 1805 | NOP | 00 |
| 1807 | LDA, 01 | 3E 01 |
| 1809 | OUT (40), A | D3 40 |
| 180B | CALL UNC 1A00 | CD 00 1A |
| 180E | LDA, 02 | 3E 02 |
| 1810 | OUT (40), A | D3 40 |
| 1812 | CALL UNC 1A00 | CD 00 1A |
| 1815 | LDA, 04 | 3E 04 |
| 1817 | OUT (40), A | D3 40 |
| 1819 | CALL UNC 1A00 | CD 00 1A |
| 181C | LDA, 08 | 3E 08 |
| 181E | OUT (40), A | D3 40 |
| 1820 | CALL UNC 1A00 | CD 00 1A |
| 1823 | LDA, 10 | 3E 10 |
| 1825 | OUT (40), A | D3 40 |
| 1827 | CALL UNC 1A00 | CD 00 1A |
| 182A | LDA, 20 | 3E 20 |
| 182C | OUT (40), A | D3 40 |
| 182D | CALL UNC 1A00 | CD 00 1A |
| 1831 | LDA, 40 | 3E 40 |
| 1833 | OUT (40), A | D3 40 |
| 1835 | CALL UNC 1A00 | CD 00 1A |
| 1838 | LDA, 80 | 3E 80 |
| 183A | OUT (40), A | D3 40 |
| 183C | CALL UNC 1A00 | CD 00 1A |
| 183F | DEC B | 05 |
| 1840 | JPNZ 1806 | C2 06 18 |
| 1843 | LDA, 00 | 3E 00 |
| 1845 | OUT (40), A | D3 40 |
| 1847 | RST 0038 | FF |
| SUBROUTINE | | |
| 1A00 | LDHL, FF FF | 21 FF FF |
| 1A03 | NOP | 00 |
| 1A04 | NOP | 00 |
| 1A05 | DEC L | 2D |
| 1A06 | JPNZ 1A04 | C2 04 18 |
| 1A09 | DEC H | 25 |
| 1A0A | JPNZ 1A03 | C2 03 18 |
| 1A0D | RET UNC | C9 |
Semoga bermanfaat & selamat belajar!