История изменений
Исправление SZT, (текущая версия) :
Я вам открою страшную тайну, но ассемблер МЦСТ писали сами, и дизассемблер, надо понимать, тоже.
Вы можете взять binutils-ы и сами проверить.
.../lcc-1.20.17.e2k-generic.3.14/binutils/bin$ ./e2k-linux-objdump --version
GNU objdump (GNU Binutils) 2.25
Copyright (C) 2014 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
.../lcc-1.20.17.e2k-generic.3.14/binutils/bin$ ./e2k-linux-objdump --help
Usage: ./e2k-linux-objdump <option(s)> <file(s)>
Display information from object <file(s)>.
At least one of the following switches must be given:
-a, --archive-headers Display archive header information
-f, --file-headers Display the contents of the overall file header
-p, --private-headers Display object format specific file header contents
-P, --private=OPT,OPT... Display object format specific contents
-h, --[section-]headers Display the contents of the section headers
-x, --all-headers Display the contents of all headers
-d, --disassemble Display assembler contents of executable sections
-D, --disassemble-all Display assembler contents of all sections
-S, --source Intermix source code with disassembly
-s, --full-contents Display the full contents of all sections requested
-g, --debugging Display debug information in object file
-e, --debugging-tags Display debug information using ctags style
-G, --stabs Display (in raw form) any STABS info in the file
-W[lLiaprmfFsoRt] or
--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,
=frames-interp,=str,=loc,=Ranges,=pubtypes,
=gdb_index,=trace_info,=trace_abbrev,=trace_aranges,
=addr,=cu_index]
Display DWARF info in the file
-t, --syms Display the contents of the symbol table(s)
-T, --dynamic-syms Display the contents of the dynamic symbol table
-r, --reloc Display the relocation entries in the file
-R, --dynamic-reloc Display the dynamic relocation entries in the file
@<file> Read options from <file>
-v, --version Display this program's version number
-i, --info List object formats and architectures supported
-H, --help Display this information
The following switches are optional:
-b, --target=BFDNAME Specify the target object format as BFDNAME
-m, --architecture=MACHINE Specify the target architecture as MACHINE
-j, --section=NAME Only display information for section NAME
-M, --disassembler-options=OPT Pass text OPT on to the disassembler
-EB --endian=big Assume big endian format when disassembling
-EL --endian=little Assume little endian format when disassembling
--file-start-context Include context from start of file (with -S)
-I, --include=DIR Add DIR to search list for source files
-l, --line-numbers Include line numbers and filenames in output
-F, --file-offsets Include file offsets when displaying information
-C, --demangle[=STYLE] Decode mangled/processed symbol names
The STYLE, if specified, can be `auto', `gnu',
`lucid', `arm', `hp', `edg', `gnu-v3', `java'
or `gnat'
-w, --wide Format output for more than 80 columns
-z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling
--start-address=ADDR Only process data whose address is >= ADDR
--stop-address=ADDR Only process data whose address is <= ADDR
--prefix-addresses Print complete address alongside disassembly
--[no-]show-raw-insn Display hex alongside symbolic disassembly
--insn-width=WIDTH Display WIDTH bytes on a single line for -d
--adjust-vma=OFFSET Add OFFSET to all displayed section addresses
--special-syms Include special symbols in symbol dumps
--prefix=PREFIX Add PREFIX to absolute paths for -S
--prefix-strip=LEVEL Strip initial directory names for -S
--dwarf-depth=N Do not display DIEs at depth N or greater
--dwarf-start=N Display DIEs starting with N, at the same depth
or deeper
--dwarf-check Make additional dwarf internal consistency checks.
./e2k-linux-objdump: supported targets: elf32-e2k elf32-e2k-pm elf64-e2k elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex eir
./e2k-linux-objdump: supported architectures: generic:64 generic:32 generic:pm elbrus-v1:64 elbrus-v1:32 elbrus-v1:pm elbrus-v2:64 elbrus-v2:32 elbrus-v2:pm elbrus-v3:64 elbrus-v3:32 elbrus-v3:pm elbrus-v4:64 elbrus-v4:32 elbrus-v4:pm elbrus-v5:64 elbrus-v5:32 elbrus-v5:pm elbrus-8c:64 elbrus-8c:32 elbrus-8c:pm elbrus-8c:64 elbrus-8c:32 elbrus-8c:pm elbrus-8c:64 elbrus-8c:32 el
-d, --disassemble Display assembler contents of executable sections
-D, --disassemble-all Display assembler contents of all sections
.../lcc-1.20.17.e2k-generic.3.14/binutils/bin$ strings e2k-linux-objdump | grep "div"
DW_OP_div
udivx
sdivx
sdivs
sdivd
udivs
udivd
fxdivss
fxdivsx
fxdivdd
fxdivdx
fxdivxx
fxdivxd
fxdivxs
fxdivtss
fxdivtdd
fxdivtsx
fxdivtdx
pfdivs
pfdivd
trunc_div
Odivide
__divdi3
__udivmoddi4
__udivdi3
__divdi3
__udivdi3
Т.е. они взяли binutils-ы от GNU и их пропатчили. Ч.Т.Д.
Исходников нет.
Исправление SZT, :
Я вам открою страшную тайну, но ассемблер МЦСТ писали сами, и дизассемблер, надо понимать, тоже.
Вы можете взять binutils-ы и сами проверить.
.../lcc-1.20.17.e2k-generic.3.14/binutils/bin$ ./e2k-linux-objdump --version
GNU objdump (GNU Binutils) 2.25
Copyright (C) 2014 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
.../lcc-1.20.17.e2k-generic.3.14/binutils/bin$ ./e2k-linux-objdump --help
Usage: ./e2k-linux-objdump <option(s)> <file(s)>
Display information from object <file(s)>.
At least one of the following switches must be given:
-a, --archive-headers Display archive header information
-f, --file-headers Display the contents of the overall file header
-p, --private-headers Display object format specific file header contents
-P, --private=OPT,OPT... Display object format specific contents
-h, --[section-]headers Display the contents of the section headers
-x, --all-headers Display the contents of all headers
-d, --disassemble Display assembler contents of executable sections
-D, --disassemble-all Display assembler contents of all sections
-S, --source Intermix source code with disassembly
-s, --full-contents Display the full contents of all sections requested
-g, --debugging Display debug information in object file
-e, --debugging-tags Display debug information using ctags style
-G, --stabs Display (in raw form) any STABS info in the file
-W[lLiaprmfFsoRt] or
--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,
=frames-interp,=str,=loc,=Ranges,=pubtypes,
=gdb_index,=trace_info,=trace_abbrev,=trace_aranges,
=addr,=cu_index]
Display DWARF info in the file
-t, --syms Display the contents of the symbol table(s)
-T, --dynamic-syms Display the contents of the dynamic symbol table
-r, --reloc Display the relocation entries in the file
-R, --dynamic-reloc Display the dynamic relocation entries in the file
@<file> Read options from <file>
-v, --version Display this program's version number
-i, --info List object formats and architectures supported
-H, --help Display this information
The following switches are optional:
-b, --target=BFDNAME Specify the target object format as BFDNAME
-m, --architecture=MACHINE Specify the target architecture as MACHINE
-j, --section=NAME Only display information for section NAME
-M, --disassembler-options=OPT Pass text OPT on to the disassembler
-EB --endian=big Assume big endian format when disassembling
-EL --endian=little Assume little endian format when disassembling
--file-start-context Include context from start of file (with -S)
-I, --include=DIR Add DIR to search list for source files
-l, --line-numbers Include line numbers and filenames in output
-F, --file-offsets Include file offsets when displaying information
-C, --demangle[=STYLE] Decode mangled/processed symbol names
The STYLE, if specified, can be `auto', `gnu',
`lucid', `arm', `hp', `edg', `gnu-v3', `java'
or `gnat'
-w, --wide Format output for more than 80 columns
-z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling
--start-address=ADDR Only process data whose address is >= ADDR
--stop-address=ADDR Only process data whose address is <= ADDR
--prefix-addresses Print complete address alongside disassembly
--[no-]show-raw-insn Display hex alongside symbolic disassembly
--insn-width=WIDTH Display WIDTH bytes on a single line for -d
--adjust-vma=OFFSET Add OFFSET to all displayed section addresses
--special-syms Include special symbols in symbol dumps
--prefix=PREFIX Add PREFIX to absolute paths for -S
--prefix-strip=LEVEL Strip initial directory names for -S
--dwarf-depth=N Do not display DIEs at depth N or greater
--dwarf-start=N Display DIEs starting with N, at the same depth
or deeper
--dwarf-check Make additional dwarf internal consistency checks.
./e2k-linux-objdump: supported targets: elf32-e2k elf32-e2k-pm elf64-e2k elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex eir
./e2k-linux-objdump: supported architectures: generic:64 generic:32 generic:pm elbrus-v1:64 elbrus-v1:32 elbrus-v1:pm elbrus-v2:64 elbrus-v2:32 elbrus-v2:pm elbrus-v3:64 elbrus-v3:32 elbrus-v3:pm elbrus-v4:64 elbrus-v4:32 elbrus-v4:pm elbrus-v5:64 elbrus-v5:32 elbrus-v5:pm elbrus-8c:64 elbrus-8c:32 elbrus-8c:pm elbrus-8c:64 elbrus-8c:32 elbrus-8c:pm elbrus-8c:64 elbrus-8c:32 el
-d, --disassemble Display assembler contents of executable sections
-D, --disassemble-all Display assembler contents of all sections
.../lcc-1.20.17.e2k-generic.3.14/binutils/bin$ strings e2k-linux-objdump | grep "div"
DW_OP_div
udivx
sdivx
sdivs
sdivd
udivs
udivd
fxdivss
fxdivsx
fxdivdd
fxdivdx
fxdivxx
fxdivxd
fxdivxs
fxdivtss
fxdivtdd
fxdivtsx
fxdivtdx
pfdivs
pfdivd
trunc_div
Odivide
__divdi3
__udivmoddi4
__udivdi3
__divdi3
__udivdi3
Т.е. они взяли binutils-ы от GNU и их пропатчили. Ч.Т.Д.
Исходников нет.
Исходная версия SZT, :
Я вам открою страшную тайну, но ассемблер МЦСТ писали сами, и дизассемблер, надо понимать, тоже.
Вы можете взять binutils-ы и сами проверить.
.../lcc-1.20.17.e2k-generic.3.14/binutils/bin$ ./e2k-linux-objdump --version
GNU objdump (GNU Binutils) 2.25
Copyright (C) 2014 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
.../lcc-1.20.17.e2k-generic.3.14/binutils/bin$ ./e2k-linux-objdump --help
Usage: ./e2k-linux-objdump <option(s)> <file(s)>
Display information from object <file(s)>.
At least one of the following switches must be given:
-a, --archive-headers Display archive header information
-f, --file-headers Display the contents of the overall file header
-p, --private-headers Display object format specific file header contents
-P, --private=OPT,OPT... Display object format specific contents
-h, --[section-]headers Display the contents of the section headers
-x, --all-headers Display the contents of all headers
-d, --disassemble Display assembler contents of executable sections
-D, --disassemble-all Display assembler contents of all sections
-S, --source Intermix source code with disassembly
-s, --full-contents Display the full contents of all sections requested
-g, --debugging Display debug information in object file
-e, --debugging-tags Display debug information using ctags style
-G, --stabs Display (in raw form) any STABS info in the file
-W[lLiaprmfFsoRt] or
--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,
=frames-interp,=str,=loc,=Ranges,=pubtypes,
=gdb_index,=trace_info,=trace_abbrev,=trace_aranges,
=addr,=cu_index]
Display DWARF info in the file
-t, --syms Display the contents of the symbol table(s)
-T, --dynamic-syms Display the contents of the dynamic symbol table
-r, --reloc Display the relocation entries in the file
-R, --dynamic-reloc Display the dynamic relocation entries in the file
@<file> Read options from <file>
-v, --version Display this program's version number
-i, --info List object formats and architectures supported
-H, --help Display this information
The following switches are optional:
-b, --target=BFDNAME Specify the target object format as BFDNAME
-m, --architecture=MACHINE Specify the target architecture as MACHINE
-j, --section=NAME Only display information for section NAME
-M, --disassembler-options=OPT Pass text OPT on to the disassembler
-EB --endian=big Assume big endian format when disassembling
-EL --endian=little Assume little endian format when disassembling
--file-start-context Include context from start of file (with -S)
-I, --include=DIR Add DIR to search list for source files
-l, --line-numbers Include line numbers and filenames in output
-F, --file-offsets Include file offsets when displaying information
-C, --demangle[=STYLE] Decode mangled/processed symbol names
The STYLE, if specified, can be `auto', `gnu',
`lucid', `arm', `hp', `edg', `gnu-v3', `java'
or `gnat'
-w, --wide Format output for more than 80 columns
-z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling
--start-address=ADDR Only process data whose address is >= ADDR
--stop-address=ADDR Only process data whose address is <= ADDR
--prefix-addresses Print complete address alongside disassembly
--[no-]show-raw-insn Display hex alongside symbolic disassembly
--insn-width=WIDTH Display WIDTH bytes on a single line for -d
--adjust-vma=OFFSET Add OFFSET to all displayed section addresses
--special-syms Include special symbols in symbol dumps
--prefix=PREFIX Add PREFIX to absolute paths for -S
--prefix-strip=LEVEL Strip initial directory names for -S
--dwarf-depth=N Do not display DIEs at depth N or greater
--dwarf-start=N Display DIEs starting with N, at the same depth
or deeper
--dwarf-check Make additional dwarf internal consistency checks.
./e2k-linux-objdump: supported targets: elf32-e2k elf32-e2k-pm elf64-e2k elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex eir
./e2k-linux-objdump: supported architectures: generic:64 generic:32 generic:pm elbrus-v1:64 elbrus-v1:32 elbrus-v1:pm elbrus-v2:64 elbrus-v2:32 elbrus-v2:pm elbrus-v3:64 elbrus-v3:32 elbrus-v3:pm elbrus-v4:64 elbrus-v4:32 elbrus-v4:pm elbrus-v5:64 elbrus-v5:32 elbrus-v5:pm elbrus-8c:64 elbrus-8c:32 elbrus-8c:pm elbrus-8c:64 elbrus-8c:32 elbrus-8c:pm elbrus-8c:64 elbrus-8c:32 el
-d, --disassemble Display assembler contents of executable sections
-D, --disassemble-all Display assembler contents of all sections
.../lcc-1.20.17.e2k-generic.3.14/binutils/bin$ strings e2k-linux-objdump | grep "div"
DW_OP_div
udivx
sdivx
sdivs
sdivd
udivs
udivd
fxdivss
fxdivsx
fxdivdd
fxdivdx
fxdivxx
fxdivxd
fxdivxs
fxdivtss
fxdivtdd
fxdivtsx
fxdivtdx
pfdivs
pfdivd
trunc_div
Odivide
__divdi3
__udivmoddi4
__udivdi3
__divdi3
__udivdi3
Т.е. они взяли binutils-ы и их пропатчили. Ч.Т.Д.