wrench-0.0.6.3
Safe HaskellNone
LanguageHaskell2010

Wrench.Isa.Acc32

Synopsis

Documentation

data Acc32Isa w l Source #

The Acc32Isa type represents the instruction set architecture for the Acc32 machine. Each constructor corresponds to a specific instruction.

Constructors

LoadImm l

Syntax: load_imm address Load an immediate value into the accumulator.

LoadAddr l

Syntax: load_addr address Load a value from a specific address into the accumulator.

Load l

Syntax: load address Load a value from a nearby address into the accumulator, encoded as the offset address - pc.

LoadAcc

Syntax: load_acc Load a value from an address in acc into the accumulator.

StoreAddr l

Syntax: store_addr address Store the accumulator value into a specific address.

Store l

Syntax: store address Store the accumulator value into a nearby address, encoded as the offset address - pc.

StoreInd l

Syntax: store_ind address Store the accumulator value into an indirect address.

Add l

Syntax: add address Add a value from a specific address to the accumulator.

Sub l

Syntax: sub address Subtract from the accumulator a value from a specific address.

Mul l

Syntax: mul address Multiply the accumulator by a value from a specific address.

Div l

Syntax: div address Divide the accumulator by a value from a specific address.

Rem l

Syntax: rem address Compute the remainder of the accumulator divided by a value from a specific address.

Clv

Syntax: clv Clear overflow flag

Clc

Syntax: clc Clear carry flag

ShiftL l

Syntax: shiftl address Shift the accumulator left by a number of bits from a specific address.

ShiftR l

Syntax: shiftr address Shift the accumulator right by a number of bits from a specific address.

And l

Syntax: and address Perform a bitwise AND on the accumulator with a value from a specific address.

Or l

Syntax: or address Perform a bitwise OR on the accumulator with a value from a specific address.

Xor l

Syntax: xor address Perform a bitwise XOR on the accumulator with a value from a specific address.

Not

Syntax: not Perform a bitwise NOT on the accumulator.

Jmp l

Syntax: jmp address Jump to a specific address.

Beqz l

Syntax: beqz address Jump to a specific address if the accumulator is zero.

Bnez l

Syntax: bnez address Jump to a specific address if the accumulator is not zero.

Bgz l

Syntax: bgtz address Jump to a specific address if the accumulator is greater than zero.

Blz l

Syntax: bltz address Jump to a specific address if the accumulator is less than zero.

Bgez l

Syntax: bgez address Jump to a specific address if the accumulator is greater than or equal to zero.

Bvs l 
Bvc l 
Bcs l 
Bcc l 
Halt

Syntax: halt Halt the machine.

Instances

Instances details
IsWord w => DerefMnemonic (Acc32Isa w) w Source # 
Instance details

Defined in Wrench.Isa.Acc32

Methods

derefMnemonic :: (Text -> Maybe w) -> w -> Acc32Isa w (Ref w) -> Acc32Isa w w Source #

IsWord w => Machine (Acc32St w) (Acc32Isa w w) w Source # 
Instance details

Defined in Wrench.Isa.Acc32

Show l => Show (Acc32Isa w l) Source # 
Instance details

Defined in Wrench.Isa.Acc32

Methods

showsPrec :: Int -> Acc32Isa w l -> ShowS #

show :: Acc32Isa w l -> String #

showList :: [Acc32Isa w l] -> ShowS #

ByteSize (Acc32Isa w l) Source # 
Instance details

Defined in Wrench.Isa.Acc32

Methods

byteSize :: Acc32Isa w l -> Int Source #

CommentStart (Acc32Isa w l) Source # 
Instance details

Defined in Wrench.Isa.Acc32

IsWord w => MnemonicParser (Acc32Isa w (Ref w)) Source # 
Instance details

Defined in Wrench.Isa.Acc32

Methods

mnemonic :: Parser (Acc32Isa w (Ref w)) Source #

data Acc32St w Source #

Instances

Instances details
Show w => Show (Acc32St w) Source # 
Instance details

Defined in Wrench.Isa.Acc32

Methods

showsPrec :: Int -> Acc32St w -> ShowS #

show :: Acc32St w -> String #

showList :: [Acc32St w] -> ShowS #

IsWord w => InitState (Acc32St w) Source # 
Instance details

Defined in Wrench.Isa.Acc32

Methods

initState :: Int -> MemOf (Acc32St w) -> StdGen -> Acc32St w Source #

IsWord w => Inspectable (Acc32St w) Source # 
Instance details

Defined in Wrench.Isa.Acc32

Associated Types

type WordOf (Acc32St w) 
Instance details

Defined in Wrench.Isa.Acc32

type WordOf (Acc32St w) = w
type IsaOf (Acc32St w) 
Instance details

Defined in Wrench.Isa.Acc32

type IsaOf (Acc32St w) = Acc32Isa w w
IsWord w => Machine (Acc32St w) (Acc32Isa w w) w Source # 
Instance details

Defined in Wrench.Isa.Acc32

type IsaOf (Acc32St w) Source # 
Instance details

Defined in Wrench.Isa.Acc32

type IsaOf (Acc32St w) = Acc32Isa w w
type MemOf (Acc32St w) Source # 
Instance details

Defined in Wrench.Isa.Acc32

type MemOf (Acc32St w) = IoMem (Acc32Isa w w) w
type WordOf (Acc32St w) Source # 
Instance details

Defined in Wrench.Isa.Acc32

type WordOf (Acc32St w) = w