PEMBAHASAN :
- Mengeluarkan data secara berurutan dengan beberapa varian instruksi geser
- Mengkondisikan accu = 01 --> A = A+A dalam pengulangan
- Menggunakan 4 varian instruksi geser, seperti :
SLA (Shift Left Arithmetic)
SRA (Shift Right Arithmetic)
SRL (Shift Right Logic)
RLC (Rotation Left Circular)
| Rotation Left Circular |
CARA 1
Struktur Algoritma
Isi Accu dengan data kendali port A = B = C = OUT 80h |
Keluarkan isi Accu ke Register Control |
Cycle end less |
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 |
Isi Accu dengan data 00 |
Keluarkan isi Accu ke port A |
Akhiri program |
Subroutine 1A00
Isi Pas Register HL = FF FF |
H = 0 |
L = 0 |
Kurangi denga 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 | NOP | 00 |
1805 | LDA, 01 | 3E 01 |
1807 | OUT (40), A | D3 40 |
1809 | CALL UNC 1A00 | CD 00 1A |
180B | LDA, 02 | 3E 02 |
180E | OUT (40), A | D3 40 |
1810 | CALL UNC 1A00 | CD 00 1A |
1812 | LDA, 04 | 3E 04 |
1815 | OUT (40), A | D3 40 |
1817 | CALL UNC 1A00 | CD 00 1A |
1819 | LDA, 08 | 3E 08 |
181C | OUT (40), A | D3 40 |
181E | CALL UNC 1A00 | CD 00 1A |
1820 | LDA, 10 | 3E 10 |
1823 | OUT (40), A | D3 40 |
1825 | CALL UNC 1A00 | CD 00 1A |
1827 | LDA, 20 | 3E 20 |
182A | OUT (40), A | D3 40 |
182C | CALL UNC 1A00 | CD 00 1A |
182D | LDA, 40 | 3E 40 |
1831 | OUT (40), A | D3 40 |
1833 | CALL UNC 1A00 | CD 00 1A |
1835 | LDA, 80 | 3E 80 |
1838 | OUT (40), A | D3 40 |
183A | JPNC 1804 | C3 04 18 |
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 |
CARA 2
Struktur Algoritma
Isi Accu dengan data kendali port A |
Keluarkan isi Accu ke Register Control |
Cycle end less |
A = 01 |
B = 08 |
B = 0 |
OUT (40) A |
Tunda Waktu |
A = A+A = SLA |
DEC B |
Subroutine 1A00
Isi Pas Register HL = FF FF |
H = 0 |
L = 0 |
Kurangi denga 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 | NOP | 00 |
1805 | LDA, 01 | 3E 01 |
1807 | LDB, 07 | 06 07 |
1809 | NOP | 00 |
180A | OUT (40), A | D3 40 |
180C | CALL UNC 1A00 | CD 00 1A |
180F | ADD A | 87 |
1810 | DEC B | 05 |
1811 | JPNZ 1809 | C2 09 18 |
1814 | JPUNC 1804 | C3 04 18 |
SUBROUTINE | ||
1A00 | LDHL, FF FF | 21 FF FF |
1A 03 | NOP | 00 |
1A 04 | 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 |
