Skip to main content

Instruction

Enum Instruction 

Source
pub enum Instruction {
Show 319 variants HALT([Operand; 0]), NOP([Operand; 0]), REI([Operand; 0]), BPT([Operand; 0]), RET([Operand; 0]), RSB([Operand; 0]), LDPCTX([Operand; 0]), SVPCTX([Operand; 0]), CVTPS([Operand; 4]), CVTSP([Operand; 4]), INDEX([Operand; 6]), CRC([Operand; 4]), PROBER([Operand; 3]), PROBEW([Operand; 3]), INSQUE([Operand; 2]), REMQUE([Operand; 2]), BSBB([Operand; 1]), BRB([Operand; 1]), BNEQ([Operand; 1]), BEQL([Operand; 1]), BGTR([Operand; 1]), BLEQ([Operand; 1]), JSB([Operand; 1]), JMP([Operand; 1]), BGEQ([Operand; 1]), BLSS([Operand; 1]), BGTRU([Operand; 1]), BLEQU([Operand; 1]), BVC([Operand; 1]), BVS([Operand; 1]), BGEQU([Operand; 1]), BLSSU([Operand; 1]), ADDP4([Operand; 4]), ADDP6([Operand; 6]), SUBP4([Operand; 4]), SUBP6([Operand; 6]), CVTPT([Operand; 5]), MULP([Operand; 6]), CVTTP([Operand; 5]), DIVP([Operand; 6]), MOVC3([Operand; 3]), CMPC3([Operand; 3]), SCANC([Operand; 4]), SPANC([Operand; 4]), MOVC5([Operand; 5]), CMPC5([Operand; 5]), MOVTC([Operand; 6]), MOVTUC([Operand; 6]), BSBW([Operand; 1]), BRW([Operand; 1]), CVTWL([Operand; 2]), CVTWB([Operand; 2]), MOVP([Operand; 3]), CMPP3([Operand; 3]), CVTPL([Operand; 3]), CMPP4([Operand; 4]), EDITPC([Operand; 4]), MATCHC([Operand; 4]), LOCC([Operand; 3]), SKPC([Operand; 3]), MOVZWL([Operand; 2]), ACBW([Operand; 4]), MOVAW([Operand; 2]), PUSHAW([Operand; 1]), ADDF2([Operand; 2]), ADDF3([Operand; 3]), SUBF2([Operand; 2]), SUBF3([Operand; 3]), MULF2([Operand; 2]), MULF3([Operand; 3]), DIVF2([Operand; 2]), DIVF3([Operand; 3]), CVTFB([Operand; 2]), CVTFW([Operand; 2]), CVTFL([Operand; 2]), CVTRFL([Operand; 2]), CVTBF([Operand; 2]), CVTWF([Operand; 2]), CVTLF([Operand; 2]), ACBF([Operand; 4]), MOVF([Operand; 2]), CMPF([Operand; 2]), MNEGF([Operand; 2]), TSTF([Operand; 1]), EMODF([Operand; 5]), POLYF([Operand; 3]), CVTFD([Operand; 2]), ADAWI([Operand; 2]), INSQHI([Operand; 2]), INSQTI([Operand; 2]), REMQHI([Operand; 2]), REMQTI([Operand; 2]), ADDD2([Operand; 2]), ADDD3([Operand; 3]), SUBD2([Operand; 2]), SUBD3([Operand; 3]), MULD2([Operand; 2]), MULD3([Operand; 3]), DIVD2([Operand; 2]), DIVD3([Operand; 3]), CVTDB([Operand; 2]), CVTDW([Operand; 2]), CVTDL([Operand; 2]), CVTRDL([Operand; 2]), CVTBD([Operand; 2]), CVTWD([Operand; 2]), CVTLD([Operand; 2]), ACBD([Operand; 4]), MOVD([Operand; 2]), CMPD([Operand; 2]), MNEGD([Operand; 2]), TSTD([Operand; 1]), EMODD([Operand; 5]), POLYD([Operand; 3]), CVTDF([Operand; 2]), ASHL([Operand; 3]), ASHQ([Operand; 3]), EMUL([Operand; 4]), EDIV([Operand; 4]), CLRQ([Operand; 1]), MOVQ([Operand; 2]), MOVAQ([Operand; 2]), PUSHAQ([Operand; 1]), ADDB2([Operand; 2]), ADDB3([Operand; 3]), SUBB2([Operand; 2]), SUBB3([Operand; 3]), MULB2([Operand; 2]), MULB3([Operand; 3]), DIVB2([Operand; 2]), DIVB3([Operand; 3]), BISB2([Operand; 2]), BISB3([Operand; 3]), BICB2([Operand; 2]), BICB3([Operand; 3]), XORB2([Operand; 2]), XORB3([Operand; 3]), MNEGB([Operand; 2]), CASEB([Operand; 3]), MOVB([Operand; 2]), CMPB([Operand; 2]), MCOMB([Operand; 2]), BITB([Operand; 2]), CLRB([Operand; 1]), TSTB([Operand; 1]), INCB([Operand; 1]), DECB([Operand; 1]), CVTBL([Operand; 2]), CVTBW([Operand; 2]), MOVZBL([Operand; 2]), MOVZBW([Operand; 2]), ROTL([Operand; 3]), ACBB([Operand; 4]), MOVAB([Operand; 2]), PUSHAB([Operand; 1]), ADDW2([Operand; 2]), ADDW3([Operand; 3]), SUBW2([Operand; 2]), SUBW3([Operand; 3]), MULW2([Operand; 2]), MULW3([Operand; 3]), DIVW2([Operand; 2]), DIVW3([Operand; 3]), BISW2([Operand; 2]), BISW3([Operand; 3]), BICW2([Operand; 2]), BICW3([Operand; 3]), XORW2([Operand; 2]), XORW3([Operand; 3]), MNEGW([Operand; 2]), CASEW([Operand; 3]), MOVW([Operand; 2]), CMPW([Operand; 2]), MCOMW([Operand; 2]), BITW([Operand; 2]), CLRW([Operand; 1]), TSTW([Operand; 1]), INCW([Operand; 1]), DECW([Operand; 1]), BISPSW([Operand; 1]), BICPSW([Operand; 1]), POPR([Operand; 1]), PUSHR([Operand; 1]), CHMK([Operand; 1]), CHME([Operand; 1]), CHMS([Operand; 1]), CHMU([Operand; 1]), ADDL2([Operand; 2]), ADDL3([Operand; 3]), SUBL2([Operand; 2]), SUBL3([Operand; 3]), MULL2([Operand; 2]), MULL3([Operand; 3]), DIVL2([Operand; 2]), DIVL3([Operand; 3]), BISL2([Operand; 2]), BISL3([Operand; 3]), BICL2([Operand; 2]), BICL3([Operand; 3]), XORL2([Operand; 2]), XORL3([Operand; 3]), MNEGL([Operand; 2]), CASEL([Operand; 3]), MOVL([Operand; 2]), CMPL([Operand; 2]), MCOML([Operand; 2]), BITL([Operand; 2]), CLRL([Operand; 1]), TSTL([Operand; 1]), INCL([Operand; 1]), DECL([Operand; 1]), ADWC([Operand; 2]), SBWC([Operand; 2]), MTPR([Operand; 2]), MFPR([Operand; 2]), MOVPSL([Operand; 1]), PUSHL([Operand; 1]), MOVAL([Operand; 2]), PUSHAL([Operand; 1]), BBS([Operand; 3]), BBC([Operand; 3]), BBSS([Operand; 3]), BBCS([Operand; 3]), BBSC([Operand; 3]), BBCC([Operand; 3]), BBSSI([Operand; 3]), BBCCI([Operand; 3]), BLBS([Operand; 2]), BLBC([Operand; 2]), FFS([Operand; 4]), FFC([Operand; 4]), CMPV([Operand; 4]), CMPZV([Operand; 4]), EXTV([Operand; 4]), EXTZV([Operand; 4]), INSV([Operand; 4]), ACBL([Operand; 4]), AOBLSS([Operand; 3]), AOBLEQ([Operand; 3]), SOBGEQ([Operand; 2]), SOBGTR([Operand; 2]), CVTLB([Operand; 2]), CVTLW([Operand; 2]), ASHP([Operand; 6]), CVTLP([Operand; 3]), CALLG([Operand; 2]), CALLC([Operand; 2]), XFC([Operand; 0]), CVTDH([Operand; 2]), CVTGF([Operand; 2]), ADDG2([Operand; 2]), ADDG3([Operand; 3]), SUBG2([Operand; 2]), SUBG3([Operand; 3]), MULG2([Operand; 2]), MULG3([Operand; 3]), DIVG2([Operand; 2]), DIVG3([Operand; 3]), CVTGB([Operand; 2]), CVTGW([Operand; 2]), CVTGL([Operand; 2]), CVTRGL([Operand; 2]), CVTBG([Operand; 2]), CVTWG([Operand; 2]), CVTLG([Operand; 2]), ACBG([Operand; 4]), MOVG([Operand; 2]), CMPG([Operand; 2]), MNEGG([Operand; 2]), TSTG([Operand; 1]), EMODG([Operand; 5]), POLYG([Operand; 3]), CVTGH([Operand; 2]), ADDH2([Operand; 2]), ADDH3([Operand; 3]), SUBH2([Operand; 2]), SUBH3([Operand; 3]), MULH2([Operand; 2]), MULH3([Operand; 3]), DIVH2([Operand; 2]), DIVH3([Operand; 3]), CVTHB([Operand; 2]), CVTHW([Operand; 2]), CVTHL([Operand; 2]), CVTRHL([Operand; 2]), CVTBH([Operand; 2]), CVTWH([Operand; 2]), CVTLH([Operand; 2]), ACBH([Operand; 4]), MOVH([Operand; 2]), CMPH([Operand; 2]), MNEGH([Operand; 2]), TSTH([Operand; 1]), EMODH([Operand; 5]), POLYH([Operand; 3]), CVTHG([Operand; 2]), CLRO([Operand; 1]), MOVO([Operand; 2]), MOVAO([Operand; 2]), PUSHAO([Operand; 1]), CVTFH([Operand; 2]), CVTFG([Operand; 2]), CVTHF([Operand; 2]), CVTHD([Operand; 2]), BUGL([Operand; 1]), BUGW([Operand; 1]), BNEQU([Operand; 1]), BEQLU([Operand; 1]), BCC([Operand; 1]), BCS([Operand; 1]), CLRD([Operand; 1]), CLRG([Operand; 1]), MOVAD([Operand; 2]), MOVAG([Operand; 2]), PUSHAD([Operand; 1]), PUSHAG([Operand; 1]), CLRH([Operand; 1]), MOVAH([Operand; 2]), PUSHAH([Operand; 1]),
}
Expand description

§VAX Instruction

The VAX architecture has a variable-length instruction format. An instruction specifies an operation and 0 to 6 operands. An operand specifier determines how an operand is accessed. An operand specifier consists of an addressing mode specifier and, if needed, a specifier extension, immediate data, or an address.

§Examples

use vax_disassembler::{
    Instruction,
    Operand,
    ReadMacro32,
    operand::Register,
};
use std::io::Cursor;

let movc5_buf = [0x2C, 0x50, 0x61, 0x20, 0x52, 0x63];
let instruction = Cursor::new(movc5_buf).disassemble().unwrap();
assert_eq!(instruction, Instruction::MOVC5([
    Operand::Register(Register::R0),
    Operand::RegisterDeferred(Register::R1),
    Operand::Literal(0x20),
    Operand::Register(Register::R2),
    Operand::RegisterDeferred(Register::R3),
]));
assert_eq!(&format!("{}", instruction), "MOVC5   R0, (R1), S^#32, R2, (R3)");

Variants§

§

HALT([Operand; 0])

Halt

Format: HALT

§

NOP([Operand; 0])

No Operation

Format: NOP

§

REI([Operand; 0])

Return from Exception or Interrupt

Format: REI

§

BPT([Operand; 0])

Breakpoint

Format: BPT

§

RET([Operand; 0])

Return from Procedure

Format: RET

§

RSB([Operand; 0])

Return From Subroutine

Format: RSB

§

LDPCTX([Operand; 0])

Load Process Context

Format: LDPCTX

§

SVPCTX([Operand; 0])

Save Process Context

Format: SVPCTX

§

CVTPS([Operand; 4])

Convert Packed to Leading Separate Numeric

Format: CVTPS srclen.rw, srcaddr.ab, dstlen.rw, dstaddr.ab

§

CVTSP([Operand; 4])

Convert Leading Separate Numeric to Packed

Format: CVTSP srclen.rw, srcaddr.ab, dstlen.rw, dstaddr.ab

§

INDEX([Operand; 6])

Compute Index

Format: INDEX subscript.rl, low.rl, high.rl, size.rl, indexin.rl, indexout.wl

§

CRC([Operand; 4])

Calculate Cyclic Redundancy Check

Format: CRC tbl.ab, inicrc.rl, strlen.rw, stream.ab

§

PROBER([Operand; 3])

Probe Read Accessibility

Format: PROBER mode.rb, len.rw, base.ab

§

PROBEW([Operand; 3])

Probe Write Accessibility

Format: PROBEW mode.rb, len.rw, base.ab

§

INSQUE([Operand; 2])

Insert Entry in Queue

Format: INSQUE entry.ab, pred.ab

§

REMQUE([Operand; 2])

Remove Entry from Queue

Format: REMQUE entry.ab, addr.wl

§

BSBB([Operand; 1])

Branch to Subroutine With Byte Displacement

Format: BSBB displ.bb

§

BRB([Operand; 1])

Branch With Byte Displacement

Format: BRB displ.bb

§

BNEQ([Operand; 1])

Branch on Not Equal (signed) [Z EQL 0]

Format: BNEQ displ.bb

§

BEQL([Operand; 1])

Branch on Equal (signed) [Z EQL 1]

Format: BEQL displ.bb

§

BGTR([Operand; 1])

Branch on Greater Than (signed) [{N OR Z} EQL 0]

Format: BGTR displ.bb

§

BLEQ([Operand; 1])

Branch on Less Than or Equal (signed) [{N OR Z} EQL 1]

Format: BLEQ displ.bb

§

JSB([Operand; 1])

Jump to Subroutine

Format: JSB dst.ab

§

JMP([Operand; 1])

Jump

Format: JMP dst.ab

§

BGEQ([Operand; 1])

Branch on Greater Than or Equal (signed) [N EQL 0]

Format: BGEQ displ.bb

§

BLSS([Operand; 1])

Branch on Less Than (signed) [N EQL 1]

Format: BLSS displ.bb

§

BGTRU([Operand; 1])

Branch on Greater Than (unsigned) [{C OR Z} EQL 0]

Format: BGTRU displ.bb

§

BLEQU([Operand; 1])

Branch on Less Than or Equal (unsigned) [{C OR Z} EQL 1]

Format: BLEQU displ.bb

§

BVC([Operand; 1])

Branch on Overflow Clear [V EQL 0]

Format: BVC displ.bb

§

BVS([Operand; 1])

Branch on Overflow Set [V EQL 1]

Format: BVS displ.bb

§

BGEQU([Operand; 1])

Branch on Greater Than or Equal (unsigned) [C EQL 0]

Format: BGEQU displ.bb

§

BLSSU([Operand; 1])

Branch on Less Than (unsigned) [C EQL 1]

Format: BLSSU displ.bb

§

ADDP4([Operand; 4])

Add Packed 4 Operand

Format: ADDP4 addlen.rw, addaddr.ab, sumlen.rw, sumaddr.ab

§

ADDP6([Operand; 6])

Add Packed 6 Operand

Format: ADDP6 add1len.rw, add1addr.ab, add2len.rw, add2addr.ab, sumlen.rw, sumaddr.ab

§

SUBP4([Operand; 4])

Subtract Packed 4 Operand

Format: SUBP4 sublen.rw, subaddr.ab, diflen.rw, difaddr.ab

§

SUBP6([Operand; 6])

Subtract Packed 6 Operand

Format: SUBP6 sublen.rw, subaddr.ab, minlen.rw, minaddr.ab, diflen.rw, difaddr.ab

§

CVTPT([Operand; 5])

Convert Packed to Trailing Numeric

Format: CVTPT srclen.rw, srcaddr.ab, tbladdr.ab, dstlen.rw, dstaddr.ab

§

MULP([Operand; 6])

Multiply Packed

Format: MULP mulrlen.rw, mulraddr.ab, muldlen.rw, muldaddr.ab, prodlen.rw, prodaddr.ab

§

CVTTP([Operand; 5])

Convert Trailing Numeric to Packed

Format: CVTTP srclen.rw, srcaddr.ab, tbladdr.ab, dstlen.rw, dstaddr.ab

§

DIVP([Operand; 6])

Divide Packed

Format: DIVP divrlen.rw, divraddr.ab, divdlen.rw, divdaddr.ab, quolen.rw, quoaddr.ab

§

MOVC3([Operand; 3])

Move Character 3 Operand

Format: MOVC3 len.rw, srcaddr.ab, dstaddr.ab

§

CMPC3([Operand; 3])

Compare Characters 3 Operand

Format: CMPC3 len.rw, src1addr.ab, src2addr.ab

§

SCANC([Operand; 4])

Scan Characters

Format: SCANC len.rw, addr.ab, tbladdr.ab, mask.rb

§

SPANC([Operand; 4])

Span Characters

Format: SPANC len.rw, addr.ab, tbladdr.ab, mask.rb

§

MOVC5([Operand; 5])

Move Character 5 Operand

Format: MOVC5 srclen.rw, srcaddr.ab, fill.rb, dstlen.rw, dstaddr.ab

§

CMPC5([Operand; 5])

Compare Characters 5 Operand

Format: CMPC5 src1len.rw, src1addr.ab, fill.rb, src2len.rw, src2addr.ab

§

MOVTC([Operand; 6])

Move Translated Characters

Format: MOVTC srclen.rw, srcaddr.ab, fill.rb, tbladdr.ab, dstlen.rw, dstaddr.ab

§

MOVTUC([Operand; 6])

Move Translated Until Character

Format: MOVTUC srclen.rw, srcaddr.ab, esc.rb, tbladdr.ab, dstlen.rw, dstaddr.ab

§

BSBW([Operand; 1])

Branch to Subroutine With Word Displacement

Format: BSBW displ.bw

§

BRW([Operand; 1])

Branch With Word Displacement

Format: BRW displ.bw

§

CVTWL([Operand; 2])

Convert Word to Long

Format: CVTWL src.rw, dst.wl

§

CVTWB([Operand; 2])

Convert Word to Byte

Format: CVTWB src.rw, dst.wb

§

MOVP([Operand; 3])

Move Packed

Format: MOVP len.rw, srcaddr.ab, dstaddr.ab

§

CMPP3([Operand; 3])

Compare Packed 3 Operand

Format: CMPP3 len.rw, src1addr.ab, src2addr.ab

§

CVTPL([Operand; 3])

Convert Packed to Long

Format: CVTPL srclen.rw, srcaddr.ab, dst.wl

§

CMPP4([Operand; 4])

Compare Packed 4 Operand

Format: CMPP4 src1len.rw, src1addr.ab, src2len.rw, src2addr.ab

§

EDITPC([Operand; 4])

Edit Packed to Character String

Format: EDITPC srclen.rw, srcaddr.ab, pattern.ab, dstaddr.ab

§

MATCHC([Operand; 4])

Match Character

Format: MATCHC objlen.rw, objaddr.ab, srclen.rw, srcaddr.ab

§

LOCC([Operand; 3])

Locate Character

Format: LOCC char.rb, len.rw, addr.ab

§

SKPC([Operand; 3])

Skip Character

Format: SKPC char.rb, len.rw, addr.ab

§

MOVZWL([Operand; 2])

Move Zero-Extended Word to Long

Format: MOVZWL src.rw, dst.wl

§

ACBW([Operand; 4])

Add Compare and Branch Word

Format: ACBW limit.rw, add.rw, index.mw, displ.bw

§

MOVAW([Operand; 2])

Move Address Word

Format: MOVAW src.aw, dst.wl

§

PUSHAW([Operand; 1])

Push Address Word

Format: PUSHAW src.aw

§

ADDF2([Operand; 2])

Add F_floating 2 Operand

Format: ADDF2 add.rf, sum.mf

§

ADDF3([Operand; 3])

Add F_floating 3 Operand

Format: ADDF3 add1.rf, add2.rf, sum.wf

§

SUBF2([Operand; 2])

Subtract F_floating 2 Operand

Format: SUBF2 sub.rf, dif.mf

§

SUBF3([Operand; 3])

Subtract F_floating 3 Operand

Format: SUBF3 sub.rf, min.rf, dif.wf

§

MULF2([Operand; 2])

Multiply F_floating 2 Operand

Format: MULF2 mulr.rf, prod.mf

§

MULF3([Operand; 3])

Multiply F_floating 3 Operand

Format: MULF3 mulr.rf, muld.rf, prod.wf

§

DIVF2([Operand; 2])

Divide F_floating 2 Operand

Format: DIVF2 divr.rf, quo.mf

§

DIVF3([Operand; 3])

Divide F_floating 3 Operand

Format: DIVF3 divr.rf, divd.rf, quo.wf

§

CVTFB([Operand; 2])

Convert F_floating to Byte

Format: CVTFB src.rf, dst.wb

§

CVTFW([Operand; 2])

Convert F_floating to Word

Format: CVTFW src.rf, dst.ww

§

CVTFL([Operand; 2])

Convert F_floating to Long

Format: CVTFL src.rf, dst.wl

§

CVTRFL([Operand; 2])

Convert Rounded F_floating to Long

Format: CVTRFL src.rf, dst.wl

§

CVTBF([Operand; 2])

Convert Byte to F_floating

Format: CVTBF src.rb, dst.wf

§

CVTWF([Operand; 2])

Convert Word to F_floating

Format: CVTWF src.rw, dst.wf

§

CVTLF([Operand; 2])

Convert Long to F_floating

Format: CVTLF src.rl, dst.wf

§

ACBF([Operand; 4])

Add Compare and Branch F_floating

Format: ACBF limit.rf, add.rf, index.mf, displ.bw

§

MOVF([Operand; 2])

Move F_floating

Format: MOVF src.rf, dst.wf

§

CMPF([Operand; 2])

Compare F_floating

Format: CMPF src1.rf, src2.rf

§

MNEGF([Operand; 2])

Move Negated F_floating

Format: MNEGF src.rf, dst.wf

§

TSTF([Operand; 1])

Test F_floating

Format: TSTF src.rf

§

EMODF([Operand; 5])

Extended Multiply and Integerize F_floating

Format: EMODF mulr.rf, mulrx.rb, muld.rf, int.wl, fract.wf

§

POLYF([Operand; 3])

Polynomial Evaluation F_floating

Format: POLYF arg.rf, degree.rw, tbladdr.ab

§

CVTFD([Operand; 2])

Convert F_floating to D_floating

Format: CVTFD src.rf, dst.wd

§

ADAWI([Operand; 2])

Add Aligned Word Interlocked

Format: ADAWI add.rw, sum.mw

§

INSQHI([Operand; 2])

Insert Entry into Queue at Head Interlocked

Format: INSQHI entry.ab, header.aq

§

INSQTI([Operand; 2])

Insert Entry into Queue at Tail Interlocked

Format: INSQTI entry.ab, header.aq

§

REMQHI([Operand; 2])

Remove Entry from Queue at Head Interlocked

Format: REMQHI header.aq, addr.wl

§

REMQTI([Operand; 2])

Remove Entry from Queue at Tail Interlocked

Format: REMQTI header.aq, addr.wl

§

ADDD2([Operand; 2])

Add D_floating 2 Operand

Format: ADDD2 add.rd, sum.md

§

ADDD3([Operand; 3])

Add D_floating 3 Operand

Format: ADDD3 add1.rd, add2.rd, sum.wd

§

SUBD2([Operand; 2])

Subtract D_floating 2 Operand

Format: SUBD2 sub.rd, dif.md

§

SUBD3([Operand; 3])

Subtract D_floating 3 Operand

Format: SUBD3 sub.rd, min.rd, dif.wd

§

MULD2([Operand; 2])

Multiply D_floating 2 Operand

Format: MULD2 mulr.rd, prod.md

§

MULD3([Operand; 3])

Multiply D_floating 3 Operand

Format: MULD3 mulr.rd, muld.rd, prod.wd

§

DIVD2([Operand; 2])

Divide D_floating 2 Operand

Format: DIVD2 divr.rd, quo.md

§

DIVD3([Operand; 3])

Divide D_floating 3 Operand

Format: DIVD3 divr.rd, divd.rd, quo.wd

§

CVTDB([Operand; 2])

Convert D_floating to Byte

Format: CVTDB src.rd, dst.wb

§

CVTDW([Operand; 2])

Convert D_floating to Word

Format: CVTDW src.rd, dst.ww

§

CVTDL([Operand; 2])

Convert D_floating to Long

Format: CVTDL src.rd, dst.wl

§

CVTRDL([Operand; 2])

Convert Rounded D_floating to Long

Format: CVTRDL src.rd, dst.wl

§

CVTBD([Operand; 2])

Convert Byte to D_floating

Format: CVTBD src.rb, dst.wd

§

CVTWD([Operand; 2])

Convert Word to D_floating

Format: CVTWD src.rw, dst.wd

§

CVTLD([Operand; 2])

Convert Long to D_floating

Format: CVTLD src.rl, dst.wd

§

ACBD([Operand; 4])

Add Compare and Branch D_floating

Format: ACBD limit.rd, add.rd, index.md, displ.bw

§

MOVD([Operand; 2])

Move D_floating

Format: MOVD src.rd, dst.wd

§

CMPD([Operand; 2])

Compare D_floating

Format: CMPD src1.rd, src2.rd

§

MNEGD([Operand; 2])

Move Negated D_floating

Format: MNEGD src.rd, dst.wd

§

TSTD([Operand; 1])

Test D_floating

Format: TSTD src.rd

§

EMODD([Operand; 5])

Extended Multiply and Integerize D_floating

Format: EMODD mulr.rd, mulrx.rb, muld.rd, int.wl, fract.wd

§

POLYD([Operand; 3])

Polynomial Evaluation D_floating

Format: POLYD arg.rd, degree.rw, tbladdr.ab

§

CVTDF([Operand; 2])

Convert D_floating to F_floating

Format: CVTDF src.rd, dst.wf

§

ASHL([Operand; 3])

Arithmetic Shift Long

Format: ASHL cnt.rb, src.rl, dst.wl

§

ASHQ([Operand; 3])

Arithmetic Shift Quad

Format: ASHQ cnt.rb, src.rq, dst.wq

§

EMUL([Operand; 4])

Extended Multiply

Format: EMUL mulr.rl, muld.rl, add.rl, prod.wq

§

EDIV([Operand; 4])

Extended Divide

Format: EDIV divr.rl, divd.rq, quo.wl, rem.wl

§

CLRQ([Operand; 1])

Clear Quad

Format: CLRQ dst.wq

§

MOVQ([Operand; 2])

Move Quad

Format: MOVQ src.rq, dst.wq

§

MOVAQ([Operand; 2])

Move Address Quad

Format: MOVAQ src.aq, dst.wl

§

PUSHAQ([Operand; 1])

Push Address Quad

Format: PUSHAQ src.aq

§

ADDB2([Operand; 2])

Add Byte 2 Operand

Format: ADDB2 add.rb, sum.mb

§

ADDB3([Operand; 3])

Add Byte 3 Operand

Format: ADDB3 addl.rb, add2.rb, sum.wb

§

SUBB2([Operand; 2])

Subtract Byte 2 Operand

Format: SUBB2 sub.rb, dif.mb

§

SUBB3([Operand; 3])

Subtract Byte 3 Operand

Format: SUBB3 sub.rb, min.rb, dif.wb

§

MULB2([Operand; 2])

Multiply Byte 2 Operand

Format: MULB2 mulr.rb, prod.mb

§

MULB3([Operand; 3])

Multiply Byte 3 Operand

Format: MULB3 mulr.rb, muld.rb, prod.wb

§

DIVB2([Operand; 2])

Divide Byte 2 Operand

Format: DIVB2 divr.rb, quo.mb

§

DIVB3([Operand; 3])

Divide Byte 3 Operand

Format: DIVB3 divr.rb, divd.rb, quo.wb

§

BISB2([Operand; 2])

Bit Set Byte 2 Operand

Format: BISB2 mask.rb, dst.mb

§

BISB3([Operand; 3])

Bit Set Byte 3 Operand

Format: BISB3 mask.rb, src.rb, dst.wb

§

BICB2([Operand; 2])

Bit Clear Byte 2 Operand

Format: BICB2 mask.rb, dst.mb

§

BICB3([Operand; 3])

Bit Clear Byte 3 Operand

Format: BICB3 mask.rb, src.rb, dst.wb

§

XORB2([Operand; 2])

Exclusive-OR Byte 2 Operand

Format: XORB2 mask.rb, dst.mb

§

XORB3([Operand; 3])

Exclusive-OR Byte 3 Operand

Format: XORB3 mask.rb, src.rb, dst.wb

§

MNEGB([Operand; 2])

Move Negated Byte

Format: MNEGB src.rb, dst.wb

§

CASEB([Operand; 3])

Case Byte

Format: CASEB selector.rb, base.rb, limit.rb

§

MOVB([Operand; 2])

Move Byte

Format: MOVB src.rb, dst.wb

§

CMPB([Operand; 2])

Compare Byte

Format: CMPB src1.rb, src2.rb

§

MCOMB([Operand; 2])

Move Complemented Byte

Format: MCOMB src.rb, dst.wb

§

BITB([Operand; 2])

Bit Test Byte

Format: BITB mask.rb, src.rb

§

CLRB([Operand; 1])

Clear Byte

Format: CLRB dst.wb

§

TSTB([Operand; 1])

Test Byte

Format: TSTB src.rb

§

INCB([Operand; 1])

Increment Byte

Format: INCB sum.mb

§

DECB([Operand; 1])

Decrement Byte

Format: DECB dif.mb

§

CVTBL([Operand; 2])

Convert Byte to Long

Format: CVTBL src.rb, dst.wl

§

CVTBW([Operand; 2])

Convert Byte to Word

Format: CVTBW src.rb, dst.ww

§

MOVZBL([Operand; 2])

Move Zero-Extended Byte to Long

Format: MOVZBL src.rb, dst.wl

§

MOVZBW([Operand; 2])

Move Zero-Extended Byte to Word

Format: MOVZBW src.rb, dst.ww

§

ROTL([Operand; 3])

Rotate Long

Format: ROTL cnt.rb, src.rl, dst.wl

§

ACBB([Operand; 4])

Add Compare and Branch Byte

Format: ACBB limit.rb, add.rb, index.mb, displ.bw

§

MOVAB([Operand; 2])

Move Address Byte

Format: MOVAB src.ab, dst.wl

§

PUSHAB([Operand; 1])

Push Address Byte

Format: PUSHAB src.ab

§

ADDW2([Operand; 2])

Add Word 2 Operand

Format: ADDW2 add.rw, sum.mw

§

ADDW3([Operand; 3])

Add Word 3 Operand

Format: ADDW3 addl.rw, add2.rw, sum.ww

§

SUBW2([Operand; 2])

Subtract Word 2 Operand

Format: SUBW2 sub.rw, dif.mw

§

SUBW3([Operand; 3])

Subtract Word 3 Operand

Format: SUBW3 sub.rw, min.rw, dif.ww

§

MULW2([Operand; 2])

Multiply Word 2 Operand

Format: MULW2 mulr.rw, prod.mw

§

MULW3([Operand; 3])

Multiply Word 3 Operand

Format: MULW3 mulr.rw, muld.rw, prod.ww

§

DIVW2([Operand; 2])

Divide Word 2 Operand

Format: DIVW2 divr.rw, quo.mw

§

DIVW3([Operand; 3])

Divide Word 3 Operand

Format: DIVW3 divr.rw, divd.rw, quo.ww

§

BISW2([Operand; 2])

Bit Set Word 2 Operand

Format: BISW2 mask.rw, dst.mw

§

BISW3([Operand; 3])

Bit Set Word 3 Operand

Format: BISW3 mask.rw, src.rw, dst.ww

§

BICW2([Operand; 2])

Bit Clear Word 2 Operand

Format: BICW2 mask.rw, dst.mw

§

BICW3([Operand; 3])

Bit Clear Word 3 Operand

Format: BICW3 mask.rw, src.rw, dst.ww

§

XORW2([Operand; 2])

Exclusive-OR Word 2 Operand

Format: XORW2 mask.rw, dst.mw

§

XORW3([Operand; 3])

Exclusive-OR Word 3 Operand

Format: XORW3 mask.rw, src.rw, dst.ww

§

MNEGW([Operand; 2])

Move Negated Word

Format: MNEGW src.rw, dst.ww

§

CASEW([Operand; 3])

Case Word

Format: CASEW selector.rw, base.rw, limit.rw

§

MOVW([Operand; 2])

Move Word

Format: MOVW src.rw, dst.ww

§

CMPW([Operand; 2])

Compare Word

Format: CMPW src1.rw, src2.rw

§

MCOMW([Operand; 2])

Move Complemented Word

Format: MCOMW src.rw, dst.ww

§

BITW([Operand; 2])

Bit Test Word

Format: BITW mask.rw, src.rw

§

CLRW([Operand; 1])

Clear Word

Format: CLRW dst.ww

§

TSTW([Operand; 1])

Test Word

Format: TSTW src.rw

§

INCW([Operand; 1])

Increment Word

Format: INCW sum.mw

§

DECW([Operand; 1])

Decrement Word

Format: DECW dif.mw

§

BISPSW([Operand; 1])

Bit Set PSW

Format: BISPSW mask.rw

§

BICPSW([Operand; 1])

Bit Clear PSW

Format: BICPSW mask.rw

§

POPR([Operand; 1])

Pop Registers

Format: POPR mask.rw

§

PUSHR([Operand; 1])

Push Registers

Format: PUSHR mask.rw

§

CHMK([Operand; 1])

Change Mode to Kernel

Format: CHMK code.rw

§

CHME([Operand; 1])

Change Mode to Executive

Format: CHME code.rw

§

CHMS([Operand; 1])

Change Mode to Supervisor

Format: CHMS code.rw

§

CHMU([Operand; 1])

Change Mode to User

Format: CHMU code.rw

§

ADDL2([Operand; 2])

Add Long 2 Operand

Format: ADDL2 add.rl, sum.ml

§

ADDL3([Operand; 3])

Add Long 3 Operand

Format: ADDL3 addl.rl, add2.rl, sum.wl

§

SUBL2([Operand; 2])

Subtract Long 2 Operand

Format: SUBL2 sub.rl, dif.ml

§

SUBL3([Operand; 3])

Subtract Long 3 Operand

Format: SUBL3 sub.rl, min.rl, dif.wl

§

MULL2([Operand; 2])

Multiply Long 2 Operand

Format: MULL2 mulr.rl, prod.ml

§

MULL3([Operand; 3])

Multiply Long 3 Operand

Format: MULL3 mulr.rl, muld.rl, prod.wl

§

DIVL2([Operand; 2])

Divide Long 2 Operand

Format: DIVL2 divr.rl, quo.ml

§

DIVL3([Operand; 3])

Divide Long 3 Operand

Format: DIVL3 divr.rl, divd.rl, quo.wl

§

BISL2([Operand; 2])

Bit Set Long 2 Operand

Format: BISL2 mask.rl, dst.ml

§

BISL3([Operand; 3])

Bit Set Long 3 Operand

Format: BISL3 mask.rl, src.rl, dst.wl

§

BICL2([Operand; 2])

Bit Clear Long 2 Operand

Format: BICL2 mask.rl, dst.ml

§

BICL3([Operand; 3])

Bit Clear Long 3 Operand

Format: BICL3 mask.rl, src.rl, dst.wl

§

XORL2([Operand; 2])

Exclusive-OR Long 2 Operand

Format: XORL2 mask.rl, dst.ml

§

XORL3([Operand; 3])

Exclusive-OR Long 3 Operand

Format: XORL3 mask.rl, src.rl, dst.wl

§

MNEGL([Operand; 2])

Move Negated Long

Format: MNEGL src.rl, dst.wl

§

CASEL([Operand; 3])

Case Long

Format: CASEL selector.rl, base.rl, limit.rl

§

MOVL([Operand; 2])

Move Long

Format: MOVL src.rl, dst.wl

§

CMPL([Operand; 2])

Compare Long

Format: CMPL src1.rl, src2.rl

§

MCOML([Operand; 2])

Move Complemented Long

Format: MCOML src.rl, dst.wl

§

BITL([Operand; 2])

Bit Test Long

Format: BITL mask.rl, src.rl

§

CLRL([Operand; 1])

Clear Long

Format: CLRL dst.wl

§

TSTL([Operand; 1])

Test Long

Format: TSTL src.rl

§

INCL([Operand; 1])

Increment Long

Format: INCL sum.ml

§

DECL([Operand; 1])

Decrement Long

Format: DECL dif.ml

§

ADWC([Operand; 2])

Add With Carry

Format: ADWC add.rl, sum.ml

§

SBWC([Operand; 2])

Subtract With Carry

Format: SBWC sub.rl, dif.ml

§

MTPR([Operand; 2])

Move To Processor Register

Format: MTPR src.rl, procreg.rl

§

MFPR([Operand; 2])

Move From Processor Register

Format: MFPR procreg.rl, dst.wl

§

MOVPSL([Operand; 1])

Move from PSL

Format: MOVPSL dst.wl

§

PUSHL([Operand; 1])

Push Long

Format: PUSHL src.rl

§

MOVAL([Operand; 2])

Move Address Long

Format: MOVAL src.al, dst.wl

§

PUSHAL([Operand; 1])

Push Address Long

Format: PUSHAL src.al

§

BBS([Operand; 3])

Branch on Bit Set

Format: BBS pos.rl, base.vb, displ.bb

§

BBC([Operand; 3])

Branch on Bit Clear

Format: BBC pos.rl, base.vb, displ.bb

§

BBSS([Operand; 3])

Branch on Bit Set and Set

Format: BBSS pos.rl, base.vb, displ.bb

§

BBCS([Operand; 3])

Branch on Bit Clear and Set

Format: BBCS pos.rl, base.vb, displ.bb

§

BBSC([Operand; 3])

Branch on Bit Set and Clear

Format: BBSC pos.rl, base.vb, displ.bb

§

BBCC([Operand; 3])

Branch on Bit Clear and Clear

Format: BBCC pos.rl, base.vb, displ.bb

§

BBSSI([Operand; 3])

Branch on Bit Set and Set Interlocked

Format: BBSSI pos.rl, base.vb, displ.bb

§

BBCCI([Operand; 3])

Branch on Bit Clear and Clear Interlocked

Format: BBCCI pos.rl, base.vb, displ.bb

§

BLBS([Operand; 2])

Branch on Low Bit Set

Format: BLBS src.rl, displ.bb

§

BLBC([Operand; 2])

Branch on Low Bit Clear

Format: BLBC src.rl, displ.bb

§

FFS([Operand; 4])

Find First Set

Format: FFS startpos.rl, size.rb, base.vb, findpos.wl

§

FFC([Operand; 4])

Find First Clear

Format: FFC startpos.rl, size.rb, base.vb, findpos.wl

§

CMPV([Operand; 4])

Compare Field

Format: CMPV pos.rl, size.rb, base.vb, src.rl

§

CMPZV([Operand; 4])

Compare Zero-Extended Field

Format: CMPZV pos.rl, size.rb, base.vb, src.rl

§

EXTV([Operand; 4])

Extract Field

Format: EXTV pos.rl, size.rb, base.vb, dst.wl

§

EXTZV([Operand; 4])

Extract Zero-Extended Field

Format: EXTZV pos.rl, size.rb, base.vb, dst.wl

§

INSV([Operand; 4])

Insert Field

Format: INSV src.rl, pos.rl, size.rb, base.vb

§

ACBL([Operand; 4])

Add Compare and Branch Long

Format: ACBL limit.rl, add.rl, index.ml, displ.bw

§

AOBLSS([Operand; 3])

Add One and Branch Less Than

Format: AOBLSS limit.rl, index.ml, displ.bb

§

AOBLEQ([Operand; 3])

Add One and Branch Less Than or Equal

Format: AOBLEQ limit.rl, index.ml, displ.bb

§

SOBGEQ([Operand; 2])

Subtract One and Branch Greater Than or Equal

Format: SOBGEQ index.ml, displ.bb

§

SOBGTR([Operand; 2])

Subtract One and Branch Greater Than

Format: SOBGTR index.ml, displ.bb

§

CVTLB([Operand; 2])

Convert Long to Byte

Format: CVTLB src.rl, dst.wb

§

CVTLW([Operand; 2])

Convert Long to Word

Format: CVTLW src.rl, dst.ww

§

ASHP([Operand; 6])

Arithmetic Shift and Round Packed

Format: ASHP cnt.rb, srclen.rw, srcaddr.ab, round.rb, dstlen.rw, dstaddr.ab

§

CVTLP([Operand; 3])

Convert Long to Packed

Format: CVTLP src.rl, dstlen.rw, dstaddr.ab

§

CALLG([Operand; 2])

Call Procedure with General Argument List

Format: CALLG arglist.ab, dst.ab

§

CALLC([Operand; 2])

Call Procedure with Stack Argument List

Format: CALLC numarg.rl, dst.ab

§

XFC([Operand; 0])

Extended Function Call

Format: XFC

§

CVTDH([Operand; 2])

Convert D_floating to H_floating

Format: CVTDH src.rd, dst.wh

§

CVTGF([Operand; 2])

Convert G_floating to F_floating

Format: CVTGF src.rg, dst.wf

§

ADDG2([Operand; 2])

Add G_floating 2 Operand

Format: ADDG2 add.rg, sum.mg

§

ADDG3([Operand; 3])

Add G_floating 3 Operand

Format: ADDG3 add1.rg, add2.rg, sum.wg

§

SUBG2([Operand; 2])

Subtract G_floating 2 Operand

Format: SUBG2 sub.rg, dif.mg

§

SUBG3([Operand; 3])

Subtract G_floating 3 Operand

Format: SUBG3 sub.rg, min.rg, dif.wg

§

MULG2([Operand; 2])

Multiply G_floating 2 Operand

Format: MULG2 mulr.rg, prod.mg

§

MULG3([Operand; 3])

Multiply G_floating 3 Operand

Format: MULG3 mulr.rg, muld.rg, prod.wg

§

DIVG2([Operand; 2])

Divide G_floating 2 Operand

Format: DIVG2 divr.rg, quo.mg

§

DIVG3([Operand; 3])

Divide G_floating 3 Operand

Format: DIVG3 divr.rg, divd.rg, quo.wg

§

CVTGB([Operand; 2])

Convert G_floating to Byte

Format: CVTGB src.rg, dst.wb

§

CVTGW([Operand; 2])

Convert G_floating to Word

Format: CVTGW src.rg, dst.ww

§

CVTGL([Operand; 2])

Convert G_floating to Long

Format: CVTGL src.rg, dst.wl

§

CVTRGL([Operand; 2])

Convert Rounded G_floating to Long

Format: CVTRGL src.rg, dst.wl

§

CVTBG([Operand; 2])

Convert Byte to G_floating

Format: CVTBG src.rb, dst.wg

§

CVTWG([Operand; 2])

Convert Word to G_floating

Format: CVTWG src.rw, dst.wg

§

CVTLG([Operand; 2])

Convert Long to G_floating

Format: CVTLG src.rl, dst.wg

§

ACBG([Operand; 4])

Add Compare and Branch G_floating

Format: ACBG limit.rg, add.rg, index.mg, displ.bw

§

MOVG([Operand; 2])

Move G_floating

Format: MOVG src.rg, dst.wg

§

CMPG([Operand; 2])

Compare G_floating

Format: CMPG src1.rg, src2.rg

§

MNEGG([Operand; 2])

Move Negated G_floating

Format: MNEGG src.rg, dst.wg

§

TSTG([Operand; 1])

Test G_floating

Format: TSTG src.rg

§

EMODG([Operand; 5])

Extended Multiply and Integerize G_floating

Format: EMODG mulr.rg, mulrx.rw, muld.rg, int.wl, fract.wg

§

POLYG([Operand; 3])

Polynomial Evaluation G_floating

Format: POLYG arg.rg, degree.rw, tbladdr.ab

§

CVTGH([Operand; 2])

Convert G_floating to H_floating

Format: CVTGH src.rg, dst.wh

§

ADDH2([Operand; 2])

Add H_floating 2 Operand

Format: ADDH2 add.rh, sum.mh

§

ADDH3([Operand; 3])

Add H_floating 3 Operand

Format: ADDH3 add1.rh, add2.rh, sum.wh

§

SUBH2([Operand; 2])

Subtract H_floating 2 Operand

Format: SUBH2 sub.rh, dif.mh

§

SUBH3([Operand; 3])

Subtract H_floating 3 Operand

Format: SUBH3 sub.rh, min.rh, dif.wh

§

MULH2([Operand; 2])

Multiply H_floating 2 Operand

Format: MULH2 mulr.rh, prod.mh

§

MULH3([Operand; 3])

Multiply H_floating 3 Operand

Format: MULH3 mulr.rh, muld.rh, prod.wh

§

DIVH2([Operand; 2])

Divide H_floating 2 Operand

Format: DIVH2 divr.rh, quo.mh

§

DIVH3([Operand; 3])

Divide H_floating 3 Operand

Format: DIVH3 divr.rh, divd.rh, quo.wh

§

CVTHB([Operand; 2])

Convert H_floating to Byte

Format: CVTHB src.rh, dst.wb

§

CVTHW([Operand; 2])

Convert H_floating to Word

Format: CVTHW src.rh, dst.ww

§

CVTHL([Operand; 2])

Convert H_floating to Long

Format: CVTHL src.rh, dst.wl

§

CVTRHL([Operand; 2])

Convert Rounded H_floating to Long

Format: CVTRHL src.rh, dst.wl

§

CVTBH([Operand; 2])

Convert Byte to H_floating

Format: CVTBH src.rb, dst.wh

§

CVTWH([Operand; 2])

Convert Word to H_floating

Format: CVTWH src.rw, dst.wh

§

CVTLH([Operand; 2])

Convert Long to H_floating

Format: CVTLH src.rl, dst.wh

§

ACBH([Operand; 4])

Add Compare and Branch H_floating

Format: ACBH limit.rh, add.rh, index.mh, displ.bw

§

MOVH([Operand; 2])

Move H_floating

Format: MOVH src.rh, dst.wh

§

CMPH([Operand; 2])

Compare H_floating

Format: CMPH src1.rh, src2.rh

§

MNEGH([Operand; 2])

Move Negated H_floating

Format: MNEGH src.rh, dst.wh

§

TSTH([Operand; 1])

Test H_floating

Format: TSTH src.rh

§

EMODH([Operand; 5])

Extended Multiply and Integerize H_floating

Format: EMODH mulr.rh, mulrx.rw, muld.rh, int.wl, fract.wh

§

POLYH([Operand; 3])

Polynomial Evaluation H_floating

Format: POLYH arg.rh, degree.rw, tbladdr.ab

§

CVTHG([Operand; 2])

Convert H_floating to G_floating

Format: CVTHG src.rh, dst.wg

§

CLRO([Operand; 1])

Clear Octa

Format: CLRO dst.wo

§

MOVO([Operand; 2])

Move Octa

Format: MOVO src.ro, dst.wo

§

MOVAO([Operand; 2])

Move Address Octa

Format: MOVAO src.ao, dst.wl

§

PUSHAO([Operand; 1])

Push Address Octa

Format: PUSHAO src.ao

§

CVTFH([Operand; 2])

Convert F_floating to H_floating

Format: CVTFH src.rf, dst.wh

§

CVTFG([Operand; 2])

Convert F_floating to G_floating

Format: CVTFG src.rf, dst.wg

§

CVTHF([Operand; 2])

Convert H_floating to F_floating

Format: CVTHF src.rh, dst.wf

§

CVTHD([Operand; 2])

Convert H_floating to D_floating

Format: CVTHD src.rh, dst.wd

§

BUGL([Operand; 1])

Bugcheck with Longword Message Identifier

Format: BUGL message.bw

§

BUGW([Operand; 1])

Bugcheck with Word Message Identifier

Format: BUGW message.bl

§

BNEQU([Operand; 1])

§Format:

opcode displ.bb

§Opcode:

0x12 BNEQU Branch on Not Equal Unsigned [Z EQL 0]

§

BEQLU([Operand; 1])

§Format:

opcode displ.bb

§Opcode:

0x13 BEQLU Branch on Equal Unsigned [Z EQL 1]

§

BCC([Operand; 1])

§Format:

opcode displ.bb

§Opcode:

0x1E BCC Branch on Carry Clear [C EQL 0]

§

BCS([Operand; 1])

§Format:

opcode displ.bb

§Opcode:

0x1F BCS Branch on Carry Set [C EQL 1]

§

CLRD([Operand; 1])

§Format:

opcode dst.wd

§Opcode:

0x7C CLRD Clear D_floating

§

CLRG([Operand; 1])

§Format:

opcode dst.wg

§Opcode:

0x7C CLRG Clear G_floating

§

MOVAD([Operand; 2])

§Format:

opcode src.ad, dst.wl

§Opcode:

0x7E MOVAD Move Address D_floating

§

MOVAG([Operand; 2])

§Format:

opcode src.ag, dst.wl

§Opcode:

0x7E MOVAG Move Address G_floating

§

PUSHAD([Operand; 1])

§Format:

opcode src.ad

§Opcode:

0x7F PUSHAD Push Address D_floating

§

PUSHAG([Operand; 1])

§Format:

opcode src.ag

§Opcode:

0x7F PUSHAG Push Address G_floating

§

CLRH([Operand; 1])

§Format:

opcode dst.wh

§Opcode:

0x7CFD CLRH Clear H_floating

§

MOVAH([Operand; 2])

§Format:

opcode src.ah, dst.wl

§Opcode:

0x7EFD MOVAH Move Address H_floating

§

PUSHAH([Operand; 1])

§Format:

opcode src.ah

§Opcode:

0x7FFD PUSHAH Push Address H_floating

Implementations§

Source§

impl Instruction

Source

pub fn opcode(&self) -> Opcode

Return the Opcode for this Instruction.

§Examples
use vax_disassembler::opcode::{Instruction, Opcode};
use vax_disassembler::operand::{Operand, Register};

assert_eq!(Instruction::RSB([]).opcode(), Opcode::RSB);
assert_eq!(Instruction::TSTL([Operand::Register(Register::R0)]).opcode(), Opcode::TSTL);
Source

pub fn operands(&self) -> &[Operand]

Return a slice with all of the operands for this instruction.

§Examples
use vax_disassembler::opcode::{Instruction, Opcode};
use vax_disassembler::operand::{Operand, Register};

// MOVC5 R0, (R1), S^#^A/ /, R2, (R3)
let instruction = Instruction::MOVC5([
    Operand::Register(Register::R0),
    Operand::RegisterDeferred(Register::R1),
    Operand::Literal(b' '),
    Operand::Register(Register::R2),
    Operand::RegisterDeferred(Register::R3),
]);

let mut operands = instruction.operands().iter();
assert_eq!(operands.next().unwrap(), &Operand::Register(Register::R0));
assert_eq!(operands.next().unwrap(), &Operand::RegisterDeferred(Register::R1));
assert_eq!(operands.next().unwrap(), &Operand::Literal(b' '));
assert_eq!(operands.next().unwrap(), &Operand::Register(Register::R2));
assert_eq!(operands.next().unwrap(), &Operand::RegisterDeferred(Register::R3));
assert!(operands.next().is_none());

Trait Implementations§

Source§

impl Clone for Instruction

Source§

fn clone(&self) -> Instruction

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Instruction

Source§

impl Debug for Instruction

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Instruction

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.

§Examples
use vax_disassembler::opcode::{Instruction, Opcode};
use vax_disassembler::operand::{Operand, Register};

assert_eq!(&format!("{}", Instruction::NOP([])), "NOP");
assert_eq!(
    &format!("{}", Instruction::MOVC5([
        Operand::Register(Register::R0),
        Operand::RegisterDeferred(Register::R1),
        Operand::Literal(b' '),
        Operand::Register(Register::R2),
        Operand::RegisterDeferred(Register::R3),
    ])),
    "MOVC5   R0, (R1), S^#32, R2, (R3)"
);
Source§

impl Eq for Instruction

Source§

impl From<Opcode> for Instruction

Source§

fn from(opcode: Opcode) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Instruction

Source§

fn eq(&self, other: &Instruction) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Instruction

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.