30 lines
539 B
Rust
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));
|
|
}
|