labast/src/instructions/bitwise.rs

30 lines
539 B
Rust

use crate::stack::StackVec;
pub fn band(memory: &mut StackVec) {
let a: u16 = memory.pop();
let b: u16 = memory.pop();
memory.push(a & b);
}
pub fn bor(memory: &mut StackVec) {
let a: u16 = memory.pop();
let b: u16 = memory.pop();
memory.push(a | b);
}
pub fn bxor(memory: &mut StackVec) {
let a: u16 = memory.pop();
let b: u16 = memory.pop();
memory.push(a ^ b);
}
pub fn bnand(memory: &mut StackVec) {
let a: u16 = memory.pop();
let b: u16 = memory.pop();
memory.push(!(a & b));
}