[−][src]Enum pir_8_emu::isa::instruction::InstructionJumpCondition
This Instruction takes a three bit operand indicating under what condition the jump should be performed.
If the condition is met, the value of ADR is loaded into the PC.
If the condition is not met, no further special action is taken; the PC would have already been incremented as part of loading the instruction.
NB: The value of ADR must have been set with the desired target location prior to the JUMP instruction being performed.
This table shows what combination of bits to the JUMP instruction check what flags and in what combination
FFF | Name | Description |
---|---|---|
000 | JMPZ | Zero flag |
001 | JMPP | Parity flag |
010 | JMPG | NOT Zero AND Greater than flag (i.e. greater than) |
011 | JMPC | Carry flag |
100 | JMZG | Zero OR Greater than flags |
101 | JMZL | Zero OR NOT Greater than flag |
110 | JMPL | NOT Zero AND NOT Greater than flag (i.e. less than) |
111 | JUMP | Unconditional Jump (always jumps) |
Variants
Methods
impl InstructionJumpCondition
[src]
pub fn is_satisfied(self, flags: u8) -> bool
[src]
Check, whether the specified flagset satisfies this jump condition
Examples
assert!(InstructionJumpCondition::Jmpg.is_satisfied(0b10100)); assert!(!InstructionJumpCondition::Jmpl.is_satisfied(0b00101));
Trait Implementations
impl Clone for InstructionJumpCondition
[src]
fn clone(&self) -> InstructionJumpCondition
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for InstructionJumpCondition
[src]
impl Debug for InstructionJumpCondition
[src]
impl Display for InstructionJumpCondition
[src]
impl Eq for InstructionJumpCondition
[src]
impl Hash for InstructionJumpCondition
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Ord for InstructionJumpCondition
[src]
fn cmp(&self, other: &InstructionJumpCondition) -> Ordering
[src]
fn max(self, other: Self) -> Self
1.21.0[src]
fn min(self, other: Self) -> Self
1.21.0[src]
fn clamp(self, min: Self, max: Self) -> Self
[src]
impl PartialEq<InstructionJumpCondition> for InstructionJumpCondition
[src]
fn eq(&self, other: &InstructionJumpCondition) -> bool
[src]
#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl PartialOrd<InstructionJumpCondition> for InstructionJumpCondition
[src]
fn partial_cmp(&self, other: &InstructionJumpCondition) -> Option<Ordering>
[src]
#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl StructuralEq for InstructionJumpCondition
[src]
impl StructuralPartialEq for InstructionJumpCondition
[src]
impl TryFrom<u8> for InstructionJumpCondition
[src]
Auto Trait Implementations
impl RefUnwindSafe for InstructionJumpCondition
impl Send for InstructionJumpCondition
impl Sync for InstructionJumpCondition
impl Unpin for InstructionJumpCondition
impl UnwindSafe for InstructionJumpCondition
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Downcast for T where
T: Any,
[src]
T: Any,
fn into_any(self: Box<T>) -> Box<dyn Any + 'static>
[src]
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
[src]
fn as_any(&self) -> &(dyn Any + 'static)
[src]
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
impl<T> DowncastSync for T where
T: Send + Sync + Any,
[src]
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,