// Simulasi Proses Aritmatika Mikroprosesor
// Model Register A, B, dan Accumulator (ACC)
int A = 10; // Register A
int B = 8; // Register B
int ACC = 0; // Accumulator
int ledMerah = 4; // LED Merah
int ledHijau = 5; // LED Hijau
void setup() {
pinMode(ledMerah, OUTPUT);
pinMode(ledHijau, OUTPUT);
Serial.begin(9600);
Serial.println("=== Simulasi Proses Aritmatika Mikroprosesor ===");
// ===== Instruksi 1: Penjumlahan =====
Serial.println("\n[Instruksi 1] ADD A, B");
ACC = A + B;
Serial.print("Register A = "); Serial.println(A);
Serial.print("Register B = "); Serial.println(B);
Serial.print("Accumulator (A + B) = "); Serial.println(ACC);
// Logika kontrol LED
if (ACC > 15) {
digitalWrite(ledHijau, HIGH);
digitalWrite(ledMerah, LOW);
Serial.println("Hasil > 15: LED Hijau ON");
} else {
digitalWrite(ledMerah, HIGH);
digitalWrite(ledHijau, LOW);
Serial.println("Hasil <= 15: LED Merah ON");
}
delay(2000); // jeda 2 detik agar terlihat jelas
// ===== Instruksi 2: Pengurangan =====
Serial.println("\n[Instruksi 2] SUB A, B");
ACC = A - B;
Serial.print("Register A = "); Serial.println(A);
Serial.print("Register B = "); Serial.println(B);
Serial.print("Accumulator (A - B) = "); Serial.println(ACC);
if (ACC > 15) {
digitalWrite(ledHijau, HIGH);
digitalWrite(ledMerah, LOW);
Serial.println("Hasil > 15: LED Hijau ON");
} else {
digitalWrite(ledMerah, HIGH);
digitalWrite(ledHijau, LOW);
Serial.println("Hasil <= 15: LED Merah ON");
}
}
void loop() {
// Tidak ada proses berulang
}