Struct lc3_ensemble::sim::frame::Frame
source · pub struct Frame {
pub caller_addr: u16,
pub callee_addr: u16,
pub frame_type: FrameType,
pub frame_ptr: Option<Word>,
pub arguments: Vec<Word>,
}Expand description
A frame entry, which defines all the known information about a frame.
This information is only exposed by the Simulator if the debug_frames flag is enabled.
Fields§
§caller_addr: u16The memory location of the caller instruction.
callee_addr: u16The memory location of the start of the callee subroutine.
For subroutines, this should point to the start of the callee subroutine.
For traps and interrupts, this should point to where the entry exists within their respective tables
(in other words, this value should be 0x00-0xFF for traps and 0x100-0x1FF for interrupts).
frame_type: FrameTypeWhether this frame is from a subroutine call, trap call, or interrupt.
frame_ptr: Option<Word>The address of the current frame pointer.
This is only Some when:
- the callee’s definition is defined, and
- the callee’s definition is defined with the standard LC-3 calling convention variant
arguments: Vec<Word>The arguments of the call.
If the callee’s definition is defined, this is a list of the arguments used in the call. Otherwise, this is an empty Vec.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Frame
impl RefUnwindSafe for Frame
impl Send for Frame
impl Sync for Frame
impl Unpin for Frame
impl UnwindSafe for Frame
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)