Instruksi Arithmetic
Setiap instruksi aritmetich dan logika berpengaruh pada register status pada prosesor atau
yang disebut dengan istilah flag.
Carry Flag (CF), flag ini bernilai 1 jika ada unsigned overflow. Contoh saat menambah byte 255
+ 1, hasilnya tidak di jangkauan. Saat tidak ada overflow flag ini bernilai 0.
Zero Flag (ZF), bernilai 1 jika hasilnya zero. Untuk hasil selain zero, bernilai 0.
Sign Flag (SF), bernilai 1 jika hasilnya negative. Saat hasilnya positive bernilai 0. Sebenarnya
flag ini mengambil nilai dari MSB (Most Significant Bit).
Overflow Flag (OF), bernilai 1 saat ada signed overflow. Contohnya, jika menambah byte 100 +
50, hasilnya diluar nilai -128 dan 127.
Parity Flag (PF), bernilai 1 jika ada angka genap dari satu bit dalam hasilnya , dan di set ke 0 jika
ada angka ganjil. Jika hasilnya berupa word hanya 8 low bit yang diperiksa.
Auxiliary Flag (AF), bernilai 1 jika ada unsigned overflow untuk low nibble, 4 bit.
Interrupt Enable Flag (IF), jika flag bernilai 1 CPU mendapatkan interrupt dari device eksternal.
Direction Flag (DF), flag ini digunakan oleh beberapa instruksi untuk memproses rantai data,
jika flag bernilai 0, maka proses diselesaikan ke depan. Jika flag bernilai 1, maka proses
diselesaikan ke belakang.
Ada 3 kelompok instruksi:
a. Kelompok Pertama:
Setelah operasi antar operand, hasilnya selalu disimpan di operand pertama. Instruksi
CMP dan TEST berakibat hanya pada flag dan tidak menyimpan hasilnya, instruksi tersebut
digunakan utnuk membuat keputusan selama eksekusi program. Instruksi-instruksi yang
berpengaruh hanya pada flag: CF, ZF, SF, OF, PF, AF.
Daftar Pustaka:
http://dinus.ac.id/repository/docs/ajar/simple-as-possible-computer-3.pdf