MUL AB
| Siklus | Jumlah Byte | Instruksi | | | | | | | |
|--------|--------------|-----------|----|----|-----|-----|----|---|---|
| 4 | 1 | MUL AB | | | | | | | |
| Flag | | C | AC | F0 | RS1 | RS0 | OV | | P |
| | | | | | | | X | | |
Mov A,#50H
Mov B,#0A0H
Mul AB
Hasil perkalian dari 50H atau 80 desimal dengan 0A0H atau 160 desimal adalah 3200H atau 12800, maka nilai yang disimpan di Akumulator A adalah 00H dan di Register B adalah 32H. Sedangkan Flag Overflow akan set karena hasil dari perkalian lebih besar daripada 255 atau (0FFH).
DIV AB
| Siklus | Jumlah Byte | Instruksi | | | | | | | |
|--------|--------------|-----------|----|----|-----|-----|----|---|---|
| 4 | 1 | DIV AB | | | | | | | |
| Flag | | C | AC | F0 | RS1 | RS0 | OV | | P |
| | | | | | | | X | | |
Lakukan pembagian antara Akumulator A dan Register B, hasil dari pembagian akan disimpan di akumulator A dan sisa pembagian disimpan di Register B. Flag Overflow dan Carry akan selalu clear
Flag Overflow akan set apabila isi dari Register B adalah 00 di mana hal ini menandakan bahwa proses pembagian tidak mungkin dilakukan karena hasil pembagian antara suatu bilangan dengan 0 adalah tidak berhingga.
Contoh:
Mov A,#0FB
Mov B,#12H
Div AB
Hasil dari pembagian ini adalah 0DH dengan sisa 11H, maka 0DH akan tersimpan di Akumulator A sebagai hasil bagi dan 11H tersimpan di Register B sebagai sisa bagi.
DA A
| iklus | Jumlah Byte | Instruksi | | | | | | | |
|-------|--------------|-----------|----|----|-----|-----|----|---|---|
| 1 | 1 | DA A | | | | | | | |
| Flag | | C | AC | F0 | RS1 | RS0 | OV | | P |
| | | X | X | | | | | | |
Mengubah data di Akumulator A menjadi bentuk BCD. Instruksi ini akan mengubah sebuah 8 bit data pada Akumulator A dalam bentuk hexa menjadi 2 digit di mana digit pertama pada nibble atas berupa bit 7...4 dari Akumulator A dan digit kedua adalah nibble bawah berupa bit 3...0 dari Akumulator A. Pada dasarnya instruksi ini akan menambahkan 6 apabila nibble rendah berada di atas 9 atau bit AC set dan menambahkan 6 apabila nibble tinggi berada di atas 9 atau bit Carry Set. Instruksi ini biasa digunakan sesudah instruksi ADD.
Contoh 1:
Add A,#88H
DA A
Nilai akumulator A sebelumnya adalah 99H, hasil penjumlahan 99H dan 88H adalah 21H dengan bit AC set dan Carry set karena hasil penjumlahan 9 dan 8 baik di nibble tinggi maupun nibble rendah adalah lebih besar dari 9. Karena bit AC set dan bit carry set maka hasil penjumlahan kedua nibble tersebut masing-masing ditambah 6 dan menghasilkan 87H dengan carry flag set.
Contoh 2:
Add A,#02H
DA A
Nilai Akumulator A sebelumnya adalah 79H, hasil penjumlahan dengan 02H adalah 7BH dengan bit AC set karena hasil penjumlahan pada nibble rendah lebih besar dari 9 dan setelah melewati instruksi DA A, maka 7BH akan ditambah dengan 6H sehingga menjadi 81H.
Intinya, apabila kondisi:
- Bit AC set, Bit Carry clear = Akumulator A ditambah 06H
- Bit AC clear, Bit Carry clear = Akumulator A ditambah 00H - Bit AC clear, Bit Carry set = Akumulator A ditambah 60H
- Bit AC set, Bit Carry set = Akumulator A ditambah 66H
Instruksi DA A memang bukan sebuah instruksi yang mengubah bilangan heksa menjadi bentuk desimal dengan mudah, namun instruksi ini berfungsi untuk membuat operasi penjumlahan secara BCD sehingga hasil penjumlahan dari 79H dan 02H bukan menjadi 7BH melainkan menjadi 81H.