diff options
-rw-r--r-- | src/insn.rs | 9 | ||||
-rw-r--r-- | src/insn/nop.rs | 1 | ||||
-rw-r--r-- | src/insn/ret.rs | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/insn.rs b/src/insn.rs index e5a597e..c7e6e7e 100644 --- a/src/insn.rs +++ b/src/insn.rs @@ -12,16 +12,19 @@ mod nop; mod ret; mod test; +/// Trait for [`add`](https://www.felixcloutier.com/x86/add) instruction kinds. pub trait Add<T, U> { /// Emit an add instruction. fn add(&mut self, op1: T, op2: U); } +/// Trait for [`call`](https://www.felixcloutier.com/x86/call) instruction kinds. pub trait Call<T> { /// Emit a call instruction. fn call(&mut self, op1: T); } +/// Trait for [`cmp`](https://www.felixcloutier.com/x86/cmp) instruction kinds. pub trait Cmp<T, U> { /// Emit a compare instruction. /// @@ -30,31 +33,37 @@ pub trait Cmp<T, U> { fn cmp(&mut self, op1: T, op2: U); } +/// Trait for [`dec`](https://www.felixcloutier.com/x86/dec) instruction kinds. pub trait Dec<T> { /// Emit a decrement instruction. fn dec(&mut self, op1: T); } +/// Trait for [`jmp`](https://www.felixcloutier.com/x86/jmp) instruction kinds. pub trait Jmp<T> { /// Emit an unconditional jump instruction. fn jmp(&mut self, op1: T); } +/// Trait for [`jnz`](https://www.felixcloutier.com/x86/jcc) instruction kinds. pub trait Jnz<T> { /// Emit a conditional jump if not zero instruction (`ZF = 0`). fn jnz(&mut self, op1: T); } +/// Trait for [`jz`](https://www.felixcloutier.com/x86/jcc) instruction kinds. pub trait Jz<T> { /// Emit a conditional jump if zero instruction (`ZF = 1`). fn jz(&mut self, op1: T); } +/// Trait for [`mov`](https://www.felixcloutier.com/x86/mov) instruction kinds. pub trait Mov<T, U> { /// Emit an move instruction. fn mov(&mut self, op1: T, op2: U); } +/// Trait for [`test`](https://www.felixcloutier.com/x86/test) instruction kinds. pub trait Test<T, U> { /// Emit a logical compare instruction. /// diff --git a/src/insn/nop.rs b/src/insn/nop.rs index 82057db..f239039 100644 --- a/src/insn/nop.rs +++ b/src/insn/nop.rs @@ -1,6 +1,7 @@ use crate::Asm; impl Asm { + /// Emit a [`nop`](https://www.felixcloutier.com/x86/nop) instruction. pub fn nop(&mut self) { self.emit(&[0x90]); } diff --git a/src/insn/ret.rs b/src/insn/ret.rs index 74086d8..c5af571 100644 --- a/src/insn/ret.rs +++ b/src/insn/ret.rs @@ -1,6 +1,7 @@ use crate::Asm; impl Asm { + /// Emit a [`ret`](https://www.felixcloutier.com/x86/ret) instruction. pub fn ret(&mut self) { self.emit(&[0xc3]); } |