chore: Rename Operand -> ImmediateOperand
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
use crate::operands::{Byte, Operand, Word};
|
||||
use crate::operands::{Byte, ImmediateOperand, Word};
|
||||
use core::fmt;
|
||||
|
||||
use super::flags::Flags;
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct Register {
|
||||
pub ax: AX,
|
||||
@@ -30,31 +28,31 @@ impl Register {
|
||||
}
|
||||
|
||||
/// Read value from a [`crate::register::Register`].
|
||||
pub fn read(&self, reg: crate::register::Register) -> Operand {
|
||||
pub fn read(&self, reg: crate::register::Register) -> ImmediateOperand {
|
||||
match reg {
|
||||
crate::register::Register::AX => Operand::Word(self.ax.read()),
|
||||
crate::register::Register::BX => Operand::Word(self.bx.read()),
|
||||
crate::register::Register::CX => Operand::Word(self.cx.read()),
|
||||
crate::register::Register::DX => Operand::Word(self.dx.read()),
|
||||
crate::register::Register::AH => Operand::Byte(self.ax.upper),
|
||||
crate::register::Register::AL => Operand::Byte(self.ax.lower),
|
||||
crate::register::Register::BH => Operand::Byte(self.bx.upper),
|
||||
crate::register::Register::BL => Operand::Byte(self.bx.lower),
|
||||
crate::register::Register::CH => Operand::Byte(self.cx.upper),
|
||||
crate::register::Register::CL => Operand::Byte(self.cx.lower),
|
||||
crate::register::Register::DH => Operand::Byte(self.dx.upper),
|
||||
crate::register::Register::DL => Operand::Byte(self.dx.lower),
|
||||
crate::register::Register::DI => Operand::Word(self.di),
|
||||
crate::register::Register::SI => Operand::Word(self.si),
|
||||
crate::register::Register::BP => Operand::Word(self.bp),
|
||||
crate::register::Register::SP => Operand::Word(self.sp),
|
||||
crate::register::Register::AX => ImmediateOperand::Word(self.ax.read()),
|
||||
crate::register::Register::BX => ImmediateOperand::Word(self.bx.read()),
|
||||
crate::register::Register::CX => ImmediateOperand::Word(self.cx.read()),
|
||||
crate::register::Register::DX => ImmediateOperand::Word(self.dx.read()),
|
||||
crate::register::Register::AH => ImmediateOperand::Byte(self.ax.upper),
|
||||
crate::register::Register::AL => ImmediateOperand::Byte(self.ax.lower),
|
||||
crate::register::Register::BH => ImmediateOperand::Byte(self.bx.upper),
|
||||
crate::register::Register::BL => ImmediateOperand::Byte(self.bx.lower),
|
||||
crate::register::Register::CH => ImmediateOperand::Byte(self.cx.upper),
|
||||
crate::register::Register::CL => ImmediateOperand::Byte(self.cx.lower),
|
||||
crate::register::Register::DH => ImmediateOperand::Byte(self.dx.upper),
|
||||
crate::register::Register::DL => ImmediateOperand::Byte(self.dx.lower),
|
||||
crate::register::Register::DI => ImmediateOperand::Word(self.di),
|
||||
crate::register::Register::SI => ImmediateOperand::Word(self.si),
|
||||
crate::register::Register::BP => ImmediateOperand::Word(self.bp),
|
||||
crate::register::Register::SP => ImmediateOperand::Word(self.sp),
|
||||
}
|
||||
}
|
||||
|
||||
/// Write an [`Operand`] to a [`crate::register::Register`].
|
||||
pub fn write(&mut self, reg: crate::register::Register, op: Operand) {
|
||||
/// Write an [`ImmediateOperand`] to a [`crate::register::Register`].
|
||||
pub fn write(&mut self, reg: crate::register::Register, op: ImmediateOperand) {
|
||||
match op {
|
||||
Operand::Byte(byte) => match reg {
|
||||
ImmediateOperand::Byte(byte) => match reg {
|
||||
crate::register::Register::AX => self.ax.lower = byte,
|
||||
crate::register::Register::BX => self.bx.lower = byte,
|
||||
crate::register::Register::CX => self.cx.lower = byte,
|
||||
@@ -72,7 +70,7 @@ impl Register {
|
||||
crate::register::Register::BP => self.bp = Word::from_le_bytes([0x0, byte]),
|
||||
crate::register::Register::SP => self.sp = Word::from_le_bytes([0x0, byte]),
|
||||
},
|
||||
Operand::Word(word) => {
|
||||
ImmediateOperand::Word(word) => {
|
||||
match reg {
|
||||
crate::register::Register::AX => self.ax.write(word),
|
||||
crate::register::Register::BX => self.bx.write(word),
|
||||
|
||||
Reference in New Issue
Block a user