Disassembly program
This commit is contained in:
parent
abc5fef7bd
commit
da47dfdde6
BIN
.file_8814.tmp
Normal file
BIN
.file_8814.tmp
Normal file
Binary file not shown.
@ -6,6 +6,7 @@
|
|||||||
- ```--debug / -d - display debugging info```
|
- ```--debug / -d - display debugging info```
|
||||||
- ```--mem / -m - asm output memory size```
|
- ```--mem / -m - asm output memory size```
|
||||||
- ```--nfull / -n - no print all debug info```
|
- ```--nfull / -n - no print all debug info```
|
||||||
|
- ```--unasm / -u - disassembly file```
|
||||||
## Опция HELP
|
## Опция HELP
|
||||||
Может быть вызвана как ```--help``` или ```-h```.
|
Может быть вызвана как ```--help``` или ```-h```.
|
||||||
Эта опция выводит краткую справку.
|
Эта опция выводит краткую справку.
|
||||||
@ -14,7 +15,7 @@
|
|||||||
Эта опция выводит версию программы.
|
Эта опция выводит версию программы.
|
||||||
## Опция ASM
|
## Опция ASM
|
||||||
Может быть вызвана как ```--asm``` или ```-a```.
|
Может быть вызвана как ```--asm``` или ```-a```.
|
||||||
Эта опция переводит программу в режим компиляции ассемблера.
|
Эта опция переводит программу в режим ассемблера.
|
||||||
## Опция OUT
|
## Опция OUT
|
||||||
Может быть вызвана как ```--out``` или ```-o```.
|
Может быть вызвана как ```--out``` или ```-o```.
|
||||||
Эта опция выводит скомпилированную ассемблерную программу в файл.
|
Эта опция выводит скомпилированную ассемблерную программу в файл.
|
||||||
@ -27,4 +28,7 @@
|
|||||||
Рекомендуется к использованию всегда.
|
Рекомендуется к использованию всегда.
|
||||||
## Опция NFULL
|
## Опция NFULL
|
||||||
Может быть вызвана как ```--nfull``` или ```-n```.
|
Может быть вызвана как ```--nfull``` или ```-n```.
|
||||||
Эта опция выключаеть вывод аддресов и запрос выполнения в [режиме отладки](#опция-debug).
|
Эта опция выключаеть вывод аддресов и запрос выполнения в [режиме отладки](#опция-debug).
|
||||||
|
## Опция UNASM
|
||||||
|
Может быть вызвана как ```--unasm``` или ```-u```.
|
||||||
|
Эта опция переводит программу в режим дизассемблере.
|
||||||
727
dis.asm
Normal file
727
dis.asm
Normal file
@ -0,0 +1,727 @@
|
|||||||
|
; 4D5AF1000800
|
||||||
|
0x00000001: push
|
||||||
|
0x00000001: or
|
||||||
|
0x00000001: and
|
||||||
|
0x00000001: xor
|
||||||
|
0x00000001: jmp
|
||||||
|
0x00000001: bnez
|
||||||
|
0x00000001: bez
|
||||||
|
0x00000002: push.string
|
||||||
|
0x00000004: push
|
||||||
|
0x00000004: or
|
||||||
|
0x00000004: and
|
||||||
|
0x00000004: xor
|
||||||
|
0x00000004: jmp
|
||||||
|
0x00000004: bnez
|
||||||
|
0x00000004: bez
|
||||||
|
0x00000005: neq
|
||||||
|
0x00000006: push
|
||||||
|
0x00000006: or
|
||||||
|
0x00000006: and
|
||||||
|
0x00000006: xor
|
||||||
|
0x00000006: jmp
|
||||||
|
0x00000006: bnez
|
||||||
|
0x00000006: bez
|
||||||
|
0x00000007: push.string
|
||||||
|
0x00000008: push
|
||||||
|
0x00000008: or
|
||||||
|
0x00000008: and
|
||||||
|
0x00000008: xor
|
||||||
|
0x00000008: jmp
|
||||||
|
0x00000008: bnez
|
||||||
|
0x00000008: bez
|
||||||
|
0x00000009: push
|
||||||
|
0x00000009: or
|
||||||
|
0x00000009: and
|
||||||
|
0x00000009: xor
|
||||||
|
0x00000009: jmp
|
||||||
|
0x00000009: bnez
|
||||||
|
0x00000009: bez
|
||||||
|
0x0000000B: push.string
|
||||||
|
0x0000000D: push
|
||||||
|
0x0000000D: or
|
||||||
|
0x0000000D: and
|
||||||
|
0x0000000D: xor
|
||||||
|
0x0000000D: jmp
|
||||||
|
0x0000000D: bnez
|
||||||
|
0x0000000D: bez
|
||||||
|
0x0000000E: push.string
|
||||||
|
0x0000000F: pop
|
||||||
|
0x0000000F: syscall
|
||||||
|
0x0000000F: swap
|
||||||
|
0x0000000F: dup
|
||||||
|
0x0000000F: copy
|
||||||
|
0x0000000F: set
|
||||||
|
0x0000000F: mov
|
||||||
|
0x0000000F: call
|
||||||
|
0x00000010: push
|
||||||
|
0x00000010: or
|
||||||
|
0x00000010: and
|
||||||
|
0x00000010: xor
|
||||||
|
0x00000010: jmp
|
||||||
|
0x00000010: bnez
|
||||||
|
0x00000010: bez
|
||||||
|
0x00000011: push
|
||||||
|
0x00000011: or
|
||||||
|
0x00000011: and
|
||||||
|
0x00000011: xor
|
||||||
|
0x00000011: jmp
|
||||||
|
0x00000011: bnez
|
||||||
|
0x00000011: bez
|
||||||
|
0x00000012: pop
|
||||||
|
0x00000012: syscall
|
||||||
|
0x00000012: swap
|
||||||
|
0x00000012: dup
|
||||||
|
0x00000012: copy
|
||||||
|
0x00000012: set
|
||||||
|
0x00000012: mov
|
||||||
|
0x00000012: call
|
||||||
|
0x00000013: push.string
|
||||||
|
0x00000015: push.string
|
||||||
|
0x00000016: sub
|
||||||
|
0x00000017: push.string
|
||||||
|
0x00000019: push
|
||||||
|
0x00000019: or
|
||||||
|
0x00000019: and
|
||||||
|
0x00000019: xor
|
||||||
|
0x00000019: jmp
|
||||||
|
0x00000019: bnez
|
||||||
|
0x00000019: bez
|
||||||
|
0x0000001A: push.string
|
||||||
|
0x0000001B: push
|
||||||
|
0x0000001B: or
|
||||||
|
0x0000001B: and
|
||||||
|
0x0000001B: xor
|
||||||
|
0x0000001B: jmp
|
||||||
|
0x0000001B: bnez
|
||||||
|
0x0000001B: bez
|
||||||
|
0x0000001C: push
|
||||||
|
0x0000001C: or
|
||||||
|
0x0000001C: and
|
||||||
|
0x0000001C: xor
|
||||||
|
0x0000001C: jmp
|
||||||
|
0x0000001C: bnez
|
||||||
|
0x0000001C: bez
|
||||||
|
0x0000001E: push.string
|
||||||
|
0x00000020: push
|
||||||
|
0x00000020: or
|
||||||
|
0x00000020: and
|
||||||
|
0x00000020: xor
|
||||||
|
0x00000020: jmp
|
||||||
|
0x00000020: bnez
|
||||||
|
0x00000020: bez
|
||||||
|
0x00000021: push.string
|
||||||
|
0x00000022: mul
|
||||||
|
0x00000023: push
|
||||||
|
0x00000023: or
|
||||||
|
0x00000023: and
|
||||||
|
0x00000023: xor
|
||||||
|
0x00000023: jmp
|
||||||
|
0x00000023: bnez
|
||||||
|
0x00000023: bez
|
||||||
|
0x00000025: push
|
||||||
|
0x00000025: or
|
||||||
|
0x00000025: and
|
||||||
|
0x00000025: xor
|
||||||
|
0x00000025: jmp
|
||||||
|
0x00000025: bnez
|
||||||
|
0x00000025: bez
|
||||||
|
0x00000026: push.string
|
||||||
|
0x00000027: eq
|
||||||
|
0x00000028: push
|
||||||
|
0x00000028: or
|
||||||
|
0x00000028: and
|
||||||
|
0x00000028: xor
|
||||||
|
0x00000028: jmp
|
||||||
|
0x00000028: bnez
|
||||||
|
0x00000028: bez
|
||||||
|
0x0000002A: push
|
||||||
|
0x0000002A: or
|
||||||
|
0x0000002A: and
|
||||||
|
0x0000002A: xor
|
||||||
|
0x0000002A: jmp
|
||||||
|
0x0000002A: bnez
|
||||||
|
0x0000002A: bez
|
||||||
|
0x0000002B: push.string
|
||||||
|
0x0000002D: push
|
||||||
|
0x0000002D: or
|
||||||
|
0x0000002D: and
|
||||||
|
0x0000002D: xor
|
||||||
|
0x0000002D: jmp
|
||||||
|
0x0000002D: bnez
|
||||||
|
0x0000002D: bez
|
||||||
|
0x00000030: push.string
|
||||||
|
0x00000051: push
|
||||||
|
0x00000051: or
|
||||||
|
0x00000051: and
|
||||||
|
0x00000051: xor
|
||||||
|
0x00000051: jmp
|
||||||
|
0x00000051: bnez
|
||||||
|
0x00000051: bez
|
||||||
|
0x00000052: push
|
||||||
|
0x00000052: or
|
||||||
|
0x00000052: and
|
||||||
|
0x00000052: xor
|
||||||
|
0x00000052: jmp
|
||||||
|
0x00000052: bnez
|
||||||
|
0x00000052: bez
|
||||||
|
0x00000053: pop
|
||||||
|
0x00000053: syscall
|
||||||
|
0x00000053: swap
|
||||||
|
0x00000053: dup
|
||||||
|
0x00000053: copy
|
||||||
|
0x00000053: set
|
||||||
|
0x00000053: mov
|
||||||
|
0x00000053: call
|
||||||
|
0x00000054: push
|
||||||
|
0x00000054: or
|
||||||
|
0x00000054: and
|
||||||
|
0x00000054: xor
|
||||||
|
0x00000054: jmp
|
||||||
|
0x00000054: bnez
|
||||||
|
0x00000054: bez
|
||||||
|
0x00000056: push
|
||||||
|
0x00000056: or
|
||||||
|
0x00000056: and
|
||||||
|
0x00000056: xor
|
||||||
|
0x00000056: jmp
|
||||||
|
0x00000056: bnez
|
||||||
|
0x00000056: bez
|
||||||
|
0x00000057: push.string
|
||||||
|
0x00000058: push.string
|
||||||
|
0x00000059: push
|
||||||
|
0x00000059: or
|
||||||
|
0x00000059: and
|
||||||
|
0x00000059: xor
|
||||||
|
0x00000059: jmp
|
||||||
|
0x00000059: bnez
|
||||||
|
0x00000059: bez
|
||||||
|
0x0000005A: push
|
||||||
|
0x0000005A: or
|
||||||
|
0x0000005A: and
|
||||||
|
0x0000005A: xor
|
||||||
|
0x0000005A: jmp
|
||||||
|
0x0000005A: bnez
|
||||||
|
0x0000005A: bez
|
||||||
|
0x0000005B: push.string
|
||||||
|
0x0000005C: push
|
||||||
|
0x0000005C: or
|
||||||
|
0x0000005C: and
|
||||||
|
0x0000005C: xor
|
||||||
|
0x0000005C: jmp
|
||||||
|
0x0000005C: bnez
|
||||||
|
0x0000005C: bez
|
||||||
|
0x0000005D: push
|
||||||
|
0x0000005D: or
|
||||||
|
0x0000005D: and
|
||||||
|
0x0000005D: xor
|
||||||
|
0x0000005D: jmp
|
||||||
|
0x0000005D: bnez
|
||||||
|
0x0000005D: bez
|
||||||
|
0x0000005F: push.string
|
||||||
|
0x00000060: push
|
||||||
|
0x00000060: or
|
||||||
|
0x00000060: and
|
||||||
|
0x00000060: xor
|
||||||
|
0x00000060: jmp
|
||||||
|
0x00000060: bnez
|
||||||
|
0x00000060: bez
|
||||||
|
0x00000061: pop
|
||||||
|
0x00000061: syscall
|
||||||
|
0x00000061: swap
|
||||||
|
0x00000061: dup
|
||||||
|
0x00000061: copy
|
||||||
|
0x00000061: set
|
||||||
|
0x00000061: mov
|
||||||
|
0x00000061: call
|
||||||
|
0x00000062: pop
|
||||||
|
0x00000062: syscall
|
||||||
|
0x00000062: swap
|
||||||
|
0x00000062: dup
|
||||||
|
0x00000062: copy
|
||||||
|
0x00000062: set
|
||||||
|
0x00000062: mov
|
||||||
|
0x00000062: call
|
||||||
|
0x00000065: pop
|
||||||
|
0x00000065: syscall
|
||||||
|
0x00000065: swap
|
||||||
|
0x00000065: dup
|
||||||
|
0x00000065: copy
|
||||||
|
0x00000065: set
|
||||||
|
0x00000065: mov
|
||||||
|
0x00000065: call
|
||||||
|
0x00000066: push
|
||||||
|
0x00000066: or
|
||||||
|
0x00000066: and
|
||||||
|
0x00000066: xor
|
||||||
|
0x00000066: jmp
|
||||||
|
0x00000066: bnez
|
||||||
|
0x00000066: bez
|
||||||
|
0x00000067: push.string
|
||||||
|
0x00000068: push
|
||||||
|
0x00000068: or
|
||||||
|
0x00000068: and
|
||||||
|
0x00000068: xor
|
||||||
|
0x00000068: jmp
|
||||||
|
0x00000068: bnez
|
||||||
|
0x00000068: bez
|
||||||
|
0x00000069: push
|
||||||
|
0x00000069: or
|
||||||
|
0x00000069: and
|
||||||
|
0x00000069: xor
|
||||||
|
0x00000069: jmp
|
||||||
|
0x00000069: bnez
|
||||||
|
0x00000069: bez
|
||||||
|
0x0000006B: push.string
|
||||||
|
0x0000006D: pop
|
||||||
|
0x0000006D: syscall
|
||||||
|
0x0000006D: swap
|
||||||
|
0x0000006D: dup
|
||||||
|
0x0000006D: copy
|
||||||
|
0x0000006D: set
|
||||||
|
0x0000006D: mov
|
||||||
|
0x0000006D: call
|
||||||
|
0x0000006E: push
|
||||||
|
0x0000006E: or
|
||||||
|
0x0000006E: and
|
||||||
|
0x0000006E: xor
|
||||||
|
0x0000006E: jmp
|
||||||
|
0x0000006E: bnez
|
||||||
|
0x0000006E: bez
|
||||||
|
0x0000006F: push.string
|
||||||
|
0x00000070: push
|
||||||
|
0x00000070: or
|
||||||
|
0x00000070: and
|
||||||
|
0x00000070: xor
|
||||||
|
0x00000070: jmp
|
||||||
|
0x00000070: bnez
|
||||||
|
0x00000070: bez
|
||||||
|
0x00000071: push
|
||||||
|
0x00000071: or
|
||||||
|
0x00000071: and
|
||||||
|
0x00000071: xor
|
||||||
|
0x00000071: jmp
|
||||||
|
0x00000071: bnez
|
||||||
|
0x00000071: bez
|
||||||
|
0x00000073: push.string
|
||||||
|
0x00000074: push
|
||||||
|
0x00000074: or
|
||||||
|
0x00000074: and
|
||||||
|
0x00000074: xor
|
||||||
|
0x00000074: jmp
|
||||||
|
0x00000074: bnez
|
||||||
|
0x00000074: bez
|
||||||
|
0x00000075: push.string
|
||||||
|
0x00000076: pop
|
||||||
|
0x00000076: syscall
|
||||||
|
0x00000076: swap
|
||||||
|
0x00000076: dup
|
||||||
|
0x00000076: copy
|
||||||
|
0x00000076: set
|
||||||
|
0x00000076: mov
|
||||||
|
0x00000076: call
|
||||||
|
0x00000077: push
|
||||||
|
0x00000077: or
|
||||||
|
0x00000077: and
|
||||||
|
0x00000077: xor
|
||||||
|
0x00000077: jmp
|
||||||
|
0x00000077: bnez
|
||||||
|
0x00000077: bez
|
||||||
|
0x00000078: add
|
||||||
|
0x00000079: push.string
|
||||||
|
0x0000007A: push
|
||||||
|
0x0000007A: or
|
||||||
|
0x0000007A: and
|
||||||
|
0x0000007A: xor
|
||||||
|
0x0000007A: jmp
|
||||||
|
0x0000007A: bnez
|
||||||
|
0x0000007A: bez
|
||||||
|
0x0000007B: push.string
|
||||||
|
0x0000007C: push
|
||||||
|
0x0000007C: or
|
||||||
|
0x0000007C: and
|
||||||
|
0x0000007C: xor
|
||||||
|
0x0000007C: jmp
|
||||||
|
0x0000007C: bnez
|
||||||
|
0x0000007C: bez
|
||||||
|
0x0000007D: push
|
||||||
|
0x0000007D: or
|
||||||
|
0x0000007D: and
|
||||||
|
0x0000007D: xor
|
||||||
|
0x0000007D: jmp
|
||||||
|
0x0000007D: bnez
|
||||||
|
0x0000007D: bez
|
||||||
|
0x0000007F: push.string
|
||||||
|
0x00000080: push
|
||||||
|
0x00000080: or
|
||||||
|
0x00000080: and
|
||||||
|
0x00000080: xor
|
||||||
|
0x00000080: jmp
|
||||||
|
0x00000080: bnez
|
||||||
|
0x00000080: bez
|
||||||
|
0x00000081: pop
|
||||||
|
0x00000081: syscall
|
||||||
|
0x00000081: swap
|
||||||
|
0x00000081: dup
|
||||||
|
0x00000081: copy
|
||||||
|
0x00000081: set
|
||||||
|
0x00000081: mov
|
||||||
|
0x00000081: call
|
||||||
|
0x00000082: up
|
||||||
|
0x00000083: push
|
||||||
|
0x00000083: or
|
||||||
|
0x00000083: and
|
||||||
|
0x00000083: xor
|
||||||
|
0x00000083: jmp
|
||||||
|
0x00000083: bnez
|
||||||
|
0x00000083: bez
|
||||||
|
0x00000084: push.string
|
||||||
|
0x00000086: push
|
||||||
|
0x00000086: or
|
||||||
|
0x00000086: and
|
||||||
|
0x00000086: xor
|
||||||
|
0x00000086: jmp
|
||||||
|
0x00000086: bnez
|
||||||
|
0x00000086: bez
|
||||||
|
0x00000087: push
|
||||||
|
0x00000087: or
|
||||||
|
0x00000087: and
|
||||||
|
0x00000087: xor
|
||||||
|
0x00000087: jmp
|
||||||
|
0x00000087: bnez
|
||||||
|
0x00000087: bez
|
||||||
|
0x00000088: pop
|
||||||
|
0x00000088: syscall
|
||||||
|
0x00000088: swap
|
||||||
|
0x00000088: dup
|
||||||
|
0x00000088: copy
|
||||||
|
0x00000088: set
|
||||||
|
0x00000088: mov
|
||||||
|
0x00000088: call
|
||||||
|
0x00000089: push.string
|
||||||
|
0x0000008B: push.string
|
||||||
|
0x0000008C: setsp
|
||||||
|
0x0000008D: pop
|
||||||
|
0x0000008D: syscall
|
||||||
|
0x0000008D: swap
|
||||||
|
0x0000008D: dup
|
||||||
|
0x0000008D: copy
|
||||||
|
0x0000008D: set
|
||||||
|
0x0000008D: mov
|
||||||
|
0x0000008D: call
|
||||||
|
0x0000008E: push.string
|
||||||
|
0x0000009D: push
|
||||||
|
0x0000009D: or
|
||||||
|
0x0000009D: and
|
||||||
|
0x0000009D: xor
|
||||||
|
0x0000009D: jmp
|
||||||
|
0x0000009D: bnez
|
||||||
|
0x0000009D: bez
|
||||||
|
0x0000009E: push
|
||||||
|
0x0000009E: or
|
||||||
|
0x0000009E: and
|
||||||
|
0x0000009E: xor
|
||||||
|
0x0000009E: jmp
|
||||||
|
0x0000009E: bnez
|
||||||
|
0x0000009E: bez
|
||||||
|
0x0000009F: pop
|
||||||
|
0x0000009F: syscall
|
||||||
|
0x0000009F: swap
|
||||||
|
0x0000009F: dup
|
||||||
|
0x0000009F: copy
|
||||||
|
0x0000009F: set
|
||||||
|
0x0000009F: mov
|
||||||
|
0x0000009F: call
|
||||||
|
0x000000A0: push
|
||||||
|
0x000000A0: or
|
||||||
|
0x000000A0: and
|
||||||
|
0x000000A0: xor
|
||||||
|
0x000000A0: jmp
|
||||||
|
0x000000A0: bnez
|
||||||
|
0x000000A0: bez
|
||||||
|
0x000000A2: push
|
||||||
|
0x000000A2: or
|
||||||
|
0x000000A2: and
|
||||||
|
0x000000A2: xor
|
||||||
|
0x000000A2: jmp
|
||||||
|
0x000000A2: bnez
|
||||||
|
0x000000A2: bez
|
||||||
|
0x000000A3: push.string
|
||||||
|
0x000000A5: push
|
||||||
|
0x000000A5: or
|
||||||
|
0x000000A5: and
|
||||||
|
0x000000A5: xor
|
||||||
|
0x000000A5: jmp
|
||||||
|
0x000000A5: bnez
|
||||||
|
0x000000A5: bez
|
||||||
|
0x000000A7: push
|
||||||
|
0x000000A7: or
|
||||||
|
0x000000A7: and
|
||||||
|
0x000000A7: xor
|
||||||
|
0x000000A7: jmp
|
||||||
|
0x000000A7: bnez
|
||||||
|
0x000000A7: bez
|
||||||
|
0x000000A8: pop
|
||||||
|
0x000000A8: syscall
|
||||||
|
0x000000A8: swap
|
||||||
|
0x000000A8: dup
|
||||||
|
0x000000A8: copy
|
||||||
|
0x000000A8: set
|
||||||
|
0x000000A8: mov
|
||||||
|
0x000000A8: call
|
||||||
|
0x000000A9: push
|
||||||
|
0x000000A9: or
|
||||||
|
0x000000A9: and
|
||||||
|
0x000000A9: xor
|
||||||
|
0x000000A9: jmp
|
||||||
|
0x000000A9: bnez
|
||||||
|
0x000000A9: bez
|
||||||
|
0x000000AA: push
|
||||||
|
0x000000AA: or
|
||||||
|
0x000000AA: and
|
||||||
|
0x000000AA: xor
|
||||||
|
0x000000AA: jmp
|
||||||
|
0x000000AA: bnez
|
||||||
|
0x000000AA: bez
|
||||||
|
0x000000AB: push.string
|
||||||
|
0x000000AD: push
|
||||||
|
0x000000AD: or
|
||||||
|
0x000000AD: and
|
||||||
|
0x000000AD: xor
|
||||||
|
0x000000AD: jmp
|
||||||
|
0x000000AD: bnez
|
||||||
|
0x000000AD: bez
|
||||||
|
0x000000AE: push
|
||||||
|
0x000000AE: or
|
||||||
|
0x000000AE: and
|
||||||
|
0x000000AE: xor
|
||||||
|
0x000000AE: jmp
|
||||||
|
0x000000AE: bnez
|
||||||
|
0x000000AE: bez
|
||||||
|
0x000000AF: push.string
|
||||||
|
0x000000B0: push
|
||||||
|
0x000000B0: or
|
||||||
|
0x000000B0: and
|
||||||
|
0x000000B0: xor
|
||||||
|
0x000000B0: jmp
|
||||||
|
0x000000B0: bnez
|
||||||
|
0x000000B0: bez
|
||||||
|
0x000000B1: push
|
||||||
|
0x000000B1: or
|
||||||
|
0x000000B1: and
|
||||||
|
0x000000B1: xor
|
||||||
|
0x000000B1: jmp
|
||||||
|
0x000000B1: bnez
|
||||||
|
0x000000B1: bez
|
||||||
|
0x000000B3: push.string
|
||||||
|
0x000000B4: push
|
||||||
|
0x000000B4: or
|
||||||
|
0x000000B4: and
|
||||||
|
0x000000B4: xor
|
||||||
|
0x000000B4: jmp
|
||||||
|
0x000000B4: bnez
|
||||||
|
0x000000B4: bez
|
||||||
|
0x000000B5: push.string
|
||||||
|
0x000000B6: pop
|
||||||
|
0x000000B6: syscall
|
||||||
|
0x000000B6: swap
|
||||||
|
0x000000B6: dup
|
||||||
|
0x000000B6: copy
|
||||||
|
0x000000B6: set
|
||||||
|
0x000000B6: mov
|
||||||
|
0x000000B6: call
|
||||||
|
0x000000B7: push
|
||||||
|
0x000000B7: or
|
||||||
|
0x000000B7: and
|
||||||
|
0x000000B7: xor
|
||||||
|
0x000000B7: jmp
|
||||||
|
0x000000B7: bnez
|
||||||
|
0x000000B7: bez
|
||||||
|
0x000000B8: getsp
|
||||||
|
0x000000B9: push.string
|
||||||
|
0x000000BA: push
|
||||||
|
0x000000BA: or
|
||||||
|
0x000000BA: and
|
||||||
|
0x000000BA: xor
|
||||||
|
0x000000BA: jmp
|
||||||
|
0x000000BA: bnez
|
||||||
|
0x000000BA: bez
|
||||||
|
0x000000BB: push.string
|
||||||
|
0x000000BD: push
|
||||||
|
0x000000BD: or
|
||||||
|
0x000000BD: and
|
||||||
|
0x000000BD: xor
|
||||||
|
0x000000BD: jmp
|
||||||
|
0x000000BD: bnez
|
||||||
|
0x000000BD: bez
|
||||||
|
0x000000BE: push
|
||||||
|
0x000000BE: or
|
||||||
|
0x000000BE: and
|
||||||
|
0x000000BE: xor
|
||||||
|
0x000000BE: jmp
|
||||||
|
0x000000BE: bnez
|
||||||
|
0x000000BE: bez
|
||||||
|
0x000000BF: push.string
|
||||||
|
0x000000C0: push
|
||||||
|
0x000000C0: or
|
||||||
|
0x000000C0: and
|
||||||
|
0x000000C0: xor
|
||||||
|
0x000000C0: jmp
|
||||||
|
0x000000C0: bnez
|
||||||
|
0x000000C0: bez
|
||||||
|
0x000000C1: push
|
||||||
|
0x000000C1: or
|
||||||
|
0x000000C1: and
|
||||||
|
0x000000C1: xor
|
||||||
|
0x000000C1: jmp
|
||||||
|
0x000000C1: bnez
|
||||||
|
0x000000C1: bez
|
||||||
|
0x000000C3: push.string
|
||||||
|
0x000000C5: pop
|
||||||
|
0x000000C5: syscall
|
||||||
|
0x000000C5: swap
|
||||||
|
0x000000C5: dup
|
||||||
|
0x000000C5: copy
|
||||||
|
0x000000C5: set
|
||||||
|
0x000000C5: mov
|
||||||
|
0x000000C5: call
|
||||||
|
0x000000C6: push
|
||||||
|
0x000000C6: or
|
||||||
|
0x000000C6: and
|
||||||
|
0x000000C6: xor
|
||||||
|
0x000000C6: jmp
|
||||||
|
0x000000C6: bnez
|
||||||
|
0x000000C6: bez
|
||||||
|
0x000000C7: pop
|
||||||
|
0x000000C7: syscall
|
||||||
|
0x000000C7: swap
|
||||||
|
0x000000C7: dup
|
||||||
|
0x000000C7: copy
|
||||||
|
0x000000C7: set
|
||||||
|
0x000000C7: mov
|
||||||
|
0x000000C7: call
|
||||||
|
0x000000C8: up
|
||||||
|
0x000000C9: getsp
|
||||||
|
0x000000CA: pop
|
||||||
|
0x000000CA: syscall
|
||||||
|
0x000000CA: swap
|
||||||
|
0x000000CA: dup
|
||||||
|
0x000000CA: copy
|
||||||
|
0x000000CA: set
|
||||||
|
0x000000CA: mov
|
||||||
|
0x000000CA: call
|
||||||
|
0x000000CB: push
|
||||||
|
0x000000CB: or
|
||||||
|
0x000000CB: and
|
||||||
|
0x000000CB: xor
|
||||||
|
0x000000CB: jmp
|
||||||
|
0x000000CB: bnez
|
||||||
|
0x000000CB: bez
|
||||||
|
0x000000CC: push.string
|
||||||
|
0x000000CD: push
|
||||||
|
0x000000CD: or
|
||||||
|
0x000000CD: and
|
||||||
|
0x000000CD: xor
|
||||||
|
0x000000CD: jmp
|
||||||
|
0x000000CD: bnez
|
||||||
|
0x000000CD: bez
|
||||||
|
0x000000CE: push
|
||||||
|
0x000000CE: or
|
||||||
|
0x000000CE: and
|
||||||
|
0x000000CE: xor
|
||||||
|
0x000000CE: jmp
|
||||||
|
0x000000CE: bnez
|
||||||
|
0x000000CE: bez
|
||||||
|
0x000000D0: push.string
|
||||||
|
0x000000D2: pop
|
||||||
|
0x000000D2: syscall
|
||||||
|
0x000000D2: swap
|
||||||
|
0x000000D2: dup
|
||||||
|
0x000000D2: copy
|
||||||
|
0x000000D2: set
|
||||||
|
0x000000D2: mov
|
||||||
|
0x000000D2: call
|
||||||
|
0x000000D3: push
|
||||||
|
0x000000D3: or
|
||||||
|
0x000000D3: and
|
||||||
|
0x000000D3: xor
|
||||||
|
0x000000D3: jmp
|
||||||
|
0x000000D3: bnez
|
||||||
|
0x000000D3: bez
|
||||||
|
0x000000D4: push.string
|
||||||
|
0x000000D6: push
|
||||||
|
0x000000D6: or
|
||||||
|
0x000000D6: and
|
||||||
|
0x000000D6: xor
|
||||||
|
0x000000D6: jmp
|
||||||
|
0x000000D6: bnez
|
||||||
|
0x000000D6: bez
|
||||||
|
0x000000D8: push
|
||||||
|
0x000000D8: or
|
||||||
|
0x000000D8: and
|
||||||
|
0x000000D8: xor
|
||||||
|
0x000000D8: jmp
|
||||||
|
0x000000D8: bnez
|
||||||
|
0x000000D8: bez
|
||||||
|
0x000000D9: push.string
|
||||||
|
0x000000DB: push
|
||||||
|
0x000000DB: or
|
||||||
|
0x000000DB: and
|
||||||
|
0x000000DB: xor
|
||||||
|
0x000000DB: jmp
|
||||||
|
0x000000DB: bnez
|
||||||
|
0x000000DB: bez
|
||||||
|
0x000000DC: neq
|
||||||
|
0x000000DD: push
|
||||||
|
0x000000DD: or
|
||||||
|
0x000000DD: and
|
||||||
|
0x000000DD: xor
|
||||||
|
0x000000DD: jmp
|
||||||
|
0x000000DD: bnez
|
||||||
|
0x000000DD: bez
|
||||||
|
0x000000DE: pop
|
||||||
|
0x000000DE: syscall
|
||||||
|
0x000000DE: swap
|
||||||
|
0x000000DE: dup
|
||||||
|
0x000000DE: copy
|
||||||
|
0x000000DE: set
|
||||||
|
0x000000DE: mov
|
||||||
|
0x000000DE: call
|
||||||
|
0x000000DF: push
|
||||||
|
0x000000DF: or
|
||||||
|
0x000000DF: and
|
||||||
|
0x000000DF: xor
|
||||||
|
0x000000DF: jmp
|
||||||
|
0x000000DF: bnez
|
||||||
|
0x000000DF: bez
|
||||||
|
0x000000E1: push.string
|
||||||
|
0x000000E3: up
|
||||||
|
0x000000E4: push
|
||||||
|
0x000000E4: or
|
||||||
|
0x000000E4: and
|
||||||
|
0x000000E4: xor
|
||||||
|
0x000000E4: jmp
|
||||||
|
0x000000E4: bnez
|
||||||
|
0x000000E4: bez
|
||||||
|
0x000000E5: push
|
||||||
|
0x000000E5: or
|
||||||
|
0x000000E5: and
|
||||||
|
0x000000E5: xor
|
||||||
|
0x000000E5: jmp
|
||||||
|
0x000000E5: bnez
|
||||||
|
0x000000E5: bez
|
||||||
|
0x000000E6: pop
|
||||||
|
0x000000E6: syscall
|
||||||
|
0x000000E6: swap
|
||||||
|
0x000000E6: dup
|
||||||
|
0x000000E6: copy
|
||||||
|
0x000000E6: set
|
||||||
|
0x000000E6: mov
|
||||||
|
0x000000E6: call
|
||||||
|
0x000000E7: push
|
||||||
|
0x000000E7: or
|
||||||
|
0x000000E7: and
|
||||||
|
0x000000E7: xor
|
||||||
|
0x000000E7: jmp
|
||||||
|
0x000000E7: bnez
|
||||||
|
0x000000E7: bez
|
||||||
84
ntsys-disassembler.h
Normal file
84
ntsys-disassembler.h
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* ntsys-disassembler.h
|
||||||
|
*
|
||||||
|
* Copyright 2026
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301, USA.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if (!defined(__LIB_mKOdwuwdww332_H_))
|
||||||
|
#define __LIB_mKOdwuwdww332_H_
|
||||||
|
|
||||||
|
int ntsys_unassembly_file(char* filename, char* asm_out) {
|
||||||
|
FILE* fp = fopen(filename, "rb");
|
||||||
|
FILE* out = fopen(asm_out, "w");
|
||||||
|
if (fp == NULL || out == NULL) {
|
||||||
|
ntsys_error("Cannot open file!");
|
||||||
|
if (fp != NULL) fclose(fp);
|
||||||
|
if (out != NULL) fclose(out);
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
fputs("; ", out);
|
||||||
|
size_t g = 0;
|
||||||
|
while (g < 8) {
|
||||||
|
__e_byte_t c = getc(fp);
|
||||||
|
fprintf(out, "%X", c);
|
||||||
|
g ++;
|
||||||
|
}
|
||||||
|
fputc('\n', out);
|
||||||
|
char buf[64];
|
||||||
|
while (ferror(fp) == 0 && feof(fp) == 0) {
|
||||||
|
__e_byte_t c = getc(fp);
|
||||||
|
size_t i = 0;
|
||||||
|
while (i < ntsys_command_count) {
|
||||||
|
size_t t = 0;
|
||||||
|
while (t < strlen(ntsys_asm_table[i])) {
|
||||||
|
if (ntsys_asm_table[i][t] == '=') break;
|
||||||
|
t ++;
|
||||||
|
}
|
||||||
|
strncpy(buf, ntsys_asm_table[i], t);
|
||||||
|
buf[t] = '\0';
|
||||||
|
char* name = buf;
|
||||||
|
__e_byte_t f = 0;
|
||||||
|
char* se = &ntsys_asm_table[i][t + 1];
|
||||||
|
while (strlen(se) > 1) {
|
||||||
|
char is[3];
|
||||||
|
strncpy(is, se, 2);
|
||||||
|
is[2] = '\0';
|
||||||
|
if (is[0] != ':') {
|
||||||
|
__e_byte_t d = atoi(is);
|
||||||
|
if (d == c && f == 0
|
||||||
|
&& strcmp(name, "exit")
|
||||||
|
&& strcmp(name, "rcall")
|
||||||
|
&& strcmp(name, "global")
|
||||||
|
) {
|
||||||
|
f = 1;
|
||||||
|
fprintf(out, "0x%08lX: %s \n", ftell(fp) - 8, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
se += sizeof(char) * 2;
|
||||||
|
}
|
||||||
|
i ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
fclose(out);
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* __LIB_mKOdwuwdww332_H_ */
|
||||||
19
ntsys.h
19
ntsys.h
@ -28,6 +28,13 @@
|
|||||||
|
|
||||||
#define NTSYS_VERSION "1.0"
|
#define NTSYS_VERSION "1.0"
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__WIN32) || defined(__WIN64)
|
||||||
|
#define NTSYS_STANDARD_ASM_OUT "NUL"
|
||||||
|
#else
|
||||||
|
#define NTSYS_STANDARD_ASM_OUT "/dev/null"
|
||||||
|
#endif
|
||||||
|
|
||||||
#define NAME_OF_32_BITS_TYPE unsigned int
|
#define NAME_OF_32_BITS_TYPE unsigned int
|
||||||
#define NAME_OF_64_BITS_TYPE unsigned long int
|
#define NAME_OF_64_BITS_TYPE unsigned long int
|
||||||
#define NAME_OF_16_BITS_TYPE unsigned short int
|
#define NAME_OF_16_BITS_TYPE unsigned short int
|
||||||
@ -68,6 +75,7 @@ void ntsys_error(char* _err) {
|
|||||||
word_t fGH6VSEzu7qNiGVE_mem_size = NTSYS_ASSEMBLE_STANDARD_MEMORY_SIZE;
|
word_t fGH6VSEzu7qNiGVE_mem_size = NTSYS_ASSEMBLE_STANDARD_MEMORY_SIZE;
|
||||||
|
|
||||||
#include "ntsys-assembler.h"
|
#include "ntsys-assembler.h"
|
||||||
|
#include "ntsys-disassembler.h"
|
||||||
|
|
||||||
static void __help(void) {
|
static void __help(void) {
|
||||||
puts (
|
puts (
|
||||||
@ -86,7 +94,8 @@ static void __help(void) {
|
|||||||
" " "--out / -o - set output file name" "\n"
|
" " "--out / -o - set output file name" "\n"
|
||||||
" " "--debug / -d - display debugging info" "\n"
|
" " "--debug / -d - display debugging info" "\n"
|
||||||
" " "--mem / -m - asm output memory size" "\n"
|
" " "--mem / -m - asm output memory size" "\n"
|
||||||
" " "--nfull / -n - no print all debug info" "\0"
|
" " "--nfull / -n - no print all debug info" "\n"
|
||||||
|
" " "--unasm / -u - disassembly file" "\0"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
static int __exe_run(__e_byte_t* memory, __e_byte_t fulldebug, unsigned int memorysize, unsigned long filesize, FILE* fp, __e_byte_t debug) {
|
static int __exe_run(__e_byte_t* memory, __e_byte_t fulldebug, unsigned int memorysize, unsigned long filesize, FILE* fp, __e_byte_t debug) {
|
||||||
@ -210,7 +219,7 @@ int ntsys_api_call(char* filename, unsigned char debug, unsigned char isFullDebu
|
|||||||
int _lib_ntsys_main(int argc, char** argv) {
|
int _lib_ntsys_main(int argc, char** argv) {
|
||||||
unsigned int t = 1;
|
unsigned int t = 1;
|
||||||
char* filename = NULL;
|
char* filename = NULL;
|
||||||
char* asm_out = "out.exe";
|
char* asm_out = NTSYS_STANDARD_ASM_OUT;
|
||||||
char mode = 'R';
|
char mode = 'R';
|
||||||
unsigned char out = 0;
|
unsigned char out = 0;
|
||||||
unsigned char debug = 0;
|
unsigned char debug = 0;
|
||||||
@ -240,12 +249,15 @@ int _lib_ntsys_main(int argc, char** argv) {
|
|||||||
break;
|
break;
|
||||||
case 'o':
|
case 'o':
|
||||||
out = 1;
|
out = 1;
|
||||||
mode = 'A';
|
if (mode != 'U') mode = 'A';
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
mem = 1;
|
mem = 1;
|
||||||
mode = 'A';
|
mode = 'A';
|
||||||
break;
|
break;
|
||||||
|
case 'u':
|
||||||
|
mode = 'U';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
ntsys_error("Unknown option!");
|
ntsys_error("Unknown option!");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
@ -268,6 +280,7 @@ int _lib_ntsys_main(int argc, char** argv) {
|
|||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
if (mode == 'R') return ntsys_api_call(filename, debug, is_full_deb);
|
if (mode == 'R') return ntsys_api_call(filename, debug, is_full_deb);
|
||||||
|
else if (mode == 'U') return ntsys_unassembly_file(filename, asm_out);
|
||||||
return ntsys_compile_asm(filename, asm_out);
|
return ntsys_compile_asm(filename, asm_out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user