diff options
| author | Camille Mougey <commial@gmail.com> | 2015-02-13 14:16:52 +0100 |
|---|---|---|
| committer | Camille Mougey <commial@gmail.com> | 2015-02-13 14:16:52 +0100 |
| commit | 13a3fcbb168589703d56d6c36312d788f68786e3 (patch) | |
| tree | b54647a953afbb30b0939d90e9ac256604093b74 /test/samples | |
| parent | 9af3164437657d93916b3658c483d6c3e4949cd5 (diff) | |
| parent | ef6c6b0b855800375758058863861f28657b5ba7 (diff) | |
| download | miasm-13a3fcbb168589703d56d6c36312d788f68786e3.tar.gz miasm-13a3fcbb168589703d56d6c36312d788f68786e3.zip | |
Merge pull request #69 from serpilliere/x86_fix_op_32_in_64
X86 fix op 32 in 64
Diffstat (limited to 'test/samples')
| -rw-r--r-- | test/samples/x86_64/mul_div.S | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/samples/x86_64/mul_div.S b/test/samples/x86_64/mul_div.S new file mode 100644 index 00000000..4a5fcfdd --- /dev/null +++ b/test/samples/x86_64/mul_div.S @@ -0,0 +1,55 @@ +main: + ;; MUL + MOV RCX, 0x20000002 + MOV RAX, 0x1122334455667788 + MOV RDX, RAX + MOV RAX, 0x1122334400000020 + MUL ECX + CMP RAX, 0x40 + JNZ bad + CMP RDX, 0x4 + JNZ bad + + ;; IMUL + MOV RCX, 0xFFFFFFF2 + MOV RAX, 0x1122334455667788 + MOV RDX, RAX + MOV RAX, 0x1122334400000020 + IMUL ECX + MOV ESI, 0xFFFFFE40 + CMP RAX, RSI + JNZ bad + MOV ESI 0xFFFFFFFF + CMP RDX, RSI + JNZ bad + + ;; DIV + MOV RAX, 0x1122334400000002 + MOV RCX, RAX + MOV RAX, 0x1122334400000000 + MOV RDX, RAX + MOV RAX, 0x1122334440000003 + DIV ECX + CMP RAX, 0x20000001 + JNZ bad + CMP RDX, 0x1 + JNZ bad + + ;; IDIV + MOV RAX, 0x11223344FFFFFFF2 + MOV RCX, RAX + MOV RAX, 0x11223344FFFFFFFF + MOV RDX, RAX + MOV RAX, 0x11223344FFFFFFF2 + IDIV ECX + CMP RAX, 0x1 + JNZ bad + CMP RDX, 0x0 + JNZ bad + + + RET + +bad: + INT 0x3 + |