]>
Commit | Line | Data |
---|---|---|
bbe45369 | 1 | /* ----------------------------------------------------------------------------- |
2 | * gen.c - front end to udis86 testing. | |
3 | * | |
4 | * Copyright (c) 2006,2007 Vivek Mohan <vivek@sig9.com> | |
5 | * All rights reserved. | |
6 | * See (LICENSE) | |
7 | * ----------------------------------------------------------------------------- | |
8 | */ | |
9 | #include <stdio.h> | |
10 | #include <string.h> | |
11 | #include <udis86.h> | |
12 | ||
13 | #if defined(__DJGPP__) || defined(_WIN32) | |
14 | # include <io.h> | |
15 | # include <fcntl.h> | |
16 | #endif | |
17 | ||
18 | #ifdef __DJGPP__ | |
19 | # include <unistd.h> /* for isatty() */ | |
20 | # define _setmode setmode | |
21 | # define _fileno fileno | |
22 | # define _O_BINARY O_BINARY | |
23 | #endif | |
24 | ||
25 | /* help string */ | |
26 | int main(int argc, char **argv) | |
27 | { | |
28 | ud_t ud_obj; | |
29 | ||
30 | #ifdef __DJGPP__ | |
31 | if ( !isatty( fileno( stdin ) ) ) | |
32 | #endif | |
33 | #if defined(__DJGPP) || defined(_WIN32) | |
34 | _setmode(_fileno(stdin), _O_BINARY); | |
35 | #endif | |
36 | ||
37 | ud_init(&ud_obj); | |
38 | ud_set_input_file(&ud_obj, stdin); | |
39 | ||
40 | if (strcmp(argv[1],"-16") == 0) | |
41 | ud_set_mode(&ud_obj, 16); | |
42 | else if (strcmp(argv[1],"-32") == 0) | |
43 | ud_set_mode(&ud_obj, 32); | |
44 | else if (strcmp(argv[1],"-64") == 0) | |
45 | ud_set_mode(&ud_obj, 64); | |
46 | ||
47 | ud_set_syntax(&ud_obj, UD_SYN_INTEL); | |
48 | ||
49 | while ( ud_disassemble( &ud_obj ) ) { | |
50 | printf( "\t%s\n", ud_insn_asm( &ud_obj ) ); | |
51 | } | |
52 | ||
53 | return 0; | |
54 | } |