disassembler-x86-intel
Version:
An Intel x86 disassembler, generates assembly from Opcode
65 lines (59 loc) • 2.12 kB
text/typescript
import {suite, test} from '@testdeck/mocha';
import * as _chai from 'chai';
import {Disassembler} from '../index';
_chai.should();
@suite
class movTest {
before() {
}
@test 'random test'() {
Disassembler.generateInstructions('B811000000').should.eql([{
instruction: 'mov',
operand1: {register: 'eax'},
operand2: {value: '11'},
position: 0,
}]);
Disassembler.generateInstructions('B911111111').should.eql([{
instruction: 'mov',
operand1: {register: 'ecx'},
operand2: {value: '11111111'},
position: 0,
}]);
Disassembler.generateInstructions('BB11110000').should.eql([{
instruction: 'mov',
operand1: {register: 'ebx'},
operand2: {value: '1111'},
position: 0,
}]);
Disassembler.generateInstructions('89D8').should.eql([{
instruction: 'mov',
operand1: {register: 'eax'},
operand2: {register: 'ebx'},
position: 0,
}]);
Disassembler.generateInstructions('8918').should.eql([{
instruction: 'mov',
operand1: {pointer: 'd', register: 'eax'},
operand2: {register: 'ebx'},
position: 0,
}]);
Disassembler.generateInstructions('8b03').should.eql([{
instruction: 'mov',
operand1: {register: 'eax'},
operand2: {pointer: 'd', register: 'ebx'},
position: 0,
}]);
Disassembler.generateInstructions('66C7001111').should.eql([{
instruction: 'mov',
operand1: {register: 'eax', pointer: 'w'},
operand2: {value: '1111'},
position: 0,
}]);
Disassembler.generateInstructions('C7801111000011111111 ').should.eql([{
instruction: 'mov',
operand1: {register: 'eax', pointer: 'd', displacement: '1111'},
operand2: {value: '11111111'},
position: 0,
}]);
}
}