diff --git a/dcb-exe/src/exe/inst/basic/load.rs b/dcb-exe/src/exe/inst/basic/load.rs index d8cbed7..e20b403 100644 --- a/dcb-exe/src/exe/inst/basic/load.rs +++ b/dcb-exe/src/exe/inst/basic/load.rs @@ -5,6 +5,7 @@ use crate::exe::inst::{ basic::{Decodable, Encodable}, InstFmt, Register, }; +use dcb_util::SignedHex; use int_conv::{Signed, Truncated, ZeroExtended}; /// Load instruction kind @@ -128,11 +129,10 @@ impl InstFmt for Inst { self.kind.mnemonic() } - fn fmt(&self, pos: crate::Pos, _bytes: &[u8], f: &mut std::fmt::Formatter) -> std::fmt::Result { + fn fmt(&self, _pos: crate::Pos, _bytes: &[u8], f: &mut std::fmt::Formatter) -> std::fmt::Result { let Self { dst, src, offset, kind } = self; let mnemonic = kind.mnemonic(); - let address = pos + 4 * offset; - write!(f, "{mnemonic} {dst}, {address}({src})") + write!(f, "{mnemonic} {dst}, {}({src})", SignedHex(offset)) } } diff --git a/dcb-exe/src/exe/inst/basic/store.rs b/dcb-exe/src/exe/inst/basic/store.rs index 560e8e5..4068caa 100644 --- a/dcb-exe/src/exe/inst/basic/store.rs +++ b/dcb-exe/src/exe/inst/basic/store.rs @@ -5,6 +5,7 @@ use crate::exe::inst::{ basic::{Decodable, Encodable}, InstFmt, Register, }; +use dcb_util::SignedHex; use int_conv::{Signed, Truncated, ZeroExtended}; /// Store instruction kind @@ -115,11 +116,10 @@ impl InstFmt for Inst { self.kind.mnemonic() } - fn fmt(&self, pos: crate::Pos, _bytes: &[u8], f: &mut std::fmt::Formatter) -> std::fmt::Result { + fn fmt(&self, _pos: crate::Pos, _bytes: &[u8], f: &mut std::fmt::Formatter) -> std::fmt::Result { let Self { dst, src, offset, kind } = self; let mnemonic = kind.mnemonic(); - let address = pos + 4 * offset; - write!(f, "{mnemonic} {dst}, {address}({src})") + write!(f, "{mnemonic} {dst}, {}({src})", SignedHex(offset)) } }