n3tael d6e290f916
обновление 1.0.5
* стек теперь не бесконечный. задать можно через аргумент cli (максимум 65535, дефолт: 256)
2024-02-07 23:38:04 +02:00

12 lines
398 B
Rust

use crate::{errors::RunError, stack::StackVec};
pub fn kjnz(memory: &mut StackVec, labels: &mut [Option<i16>; 256], program_counter: &mut u16, data: u16) {
if labels[data as usize].is_none() {
eprintln!("{}", RunError::UnknownLabel(data));
std::process::exit(2);
}
if memory.last() != 0 {
*program_counter = (labels[data as usize].unwrap() - 1) as u16;
}
}