machine-code 2.3.0
Assembler for x86, ELF reader, various disassemblers
Includes an assembler for x86 capable of producing ELF binaries.
Disassemblers for arm a64, i8080, m68hc12, mips and x86 (all modes).
And a library for reading ELF files.
$ akku update $ akku install machine-code $ .akku/env
Authors
Gwen Weinholt
Vadym Kochan
Uploaded to Akku by Gwen Weinholt
Homepage
Information missing.
License
MIT
Dependencies
^1.0.0
Source code
https://gitlab.com/weinholt/machine-code.git git
83b6f93aaf348224e39b96e78933ef63820cbc7d
Tag: v2.3.0
Package contents
- (machine-code assembler elf) R6
- → elf-32-assembler elf-64-assembler
- ← (rnrs) R6
- ← (struct pack)
- ← (machine-code format elf)
- (machine-code assembler pe) R6
- → pe-32-assembler pe-64-assembler
- ← (rnrs) R6
- ← (rnrs mutable-strings) R6
- ← (machine-code format pe)
- (machine-code assembler x86-misc) R6
- → make-modr/m make-sib bitwidth<= number->bytevector
- ← (rnrs) R6
- (machine-code assembler x86-operands) R6
- → registers lookup-register register? register-name register-type register-index memory? memory-addressing-mode memory-datasize memory-segment memory-expr memory-scale memory-index memory-base encode-memory expression? expression-operand-size build-expression eval-expression expression-in-range? far-pointer? far-pointer-seg far-pointer-offset translate-operands operand-labels
- ← (rnrs) R6
- ← (machine-code assembler x86-misc)
- (machine-code assembler x86) R6
- → assemble
- ← (rnrs) R6
- ← (machine-code assembler x86-operands)
- ← (machine-code assembler x86-misc)
- ← (machine-code disassembler x86-opcodes)
- (machine-code disassembler arm-a64) R6
- → get-instruction invalid-opcode?
- ← (rnrs) R6
- ← (machine-code disassembler arm-aarch64)
- ← (machine-code disassembler arm-private)
- ← (machine-code disassembler private)
- (machine-code disassembler arm-aarch64) R6
- → system-registers
- ← (rnrs) R6
- (machine-code disassembler arm-private) R6
- → define-encoding != &= !&=
- ← (rnrs) R6
- ← (machine-code disassembler private)
- (machine-code disassembler i8080) R6
- → get-instruction invalid-opcode?
- ← (rnrs) R6
- ← (machine-code disassembler private)
- (machine-code disassembler m68hc12) R6
- → get-instruction invalid-opcode?
- ← (rnrs) R6
- ← (machine-code disassembler private)
- (machine-code disassembler mips) R6
- → get-instruction invalid-opcode?
- ← (rnrs) R6
- ← (machine-code disassembler private)
- (machine-code disassembler private) R6 Internal
- → raise-UD invalid-opcode? map-in-order register-disassembler available-disassemblers get-disassembler make-disassembler disassembler? disassembler-name disassembler-min-instruction-size disassembler-max-instruction-size disassembler-instruction-getter
- ← (rnrs) R6
- (machine-code disassembler x86-opcodes) R6
- → opcodes pseudo-mnemonics mnemonic-aliases lock-instructions branch-hint-instructions rep-instructions repz-instructions bnd-instructions XOP-opcode-map-8 XOP-opcode-map-9 XOP-opcode-map-A
- ← (rnrs) R6
- (machine-code disassembler x86) R6
- → get-instruction invalid-opcode?
- ← (rnrs) R6
- ← (machine-code disassembler private)
- ← (machine-code disassembler x86-opcodes)
- (machine-code disassembler) R6
- → invalid-opcode? available-disassemblers get-disassembler disassembler? disassembler-name disassembler-min-instruction-size disassembler-max-instruction-size disassembler-instruction-getter
- ← (rnrs) R6
- ← (machine-code disassembler private)
- ← (machine-code disassembler arm-a64)
- ← (machine-code disassembler i8080)
- ← (machine-code disassembler m68hc12)
- ← (machine-code disassembler mips)
- ← (machine-code disassembler x86)
- (machine-code format elf) R6
- → is-elf-image? open-elf-image make-elf-image elf-image? elf-image-port elf-image-word-size elf-image-endianness elf-image-os-abi elf-image-abi-version elf-image-type elf-image-machine elf-image-version elf-image-entry elf-image-phoff elf-image-shoff elf-image-flags elf-image-ehsize elf-image-phentsize elf-image-phnum elf-image-shentsize elf-image-shnum elf-image-shstrndx make-elf-section elf-section? elf-section-name elf-section-type elf-section-flags elf-section-addr elf-section-offset elf-section-size elf-section-link elf-section-info elf-section-addralign elf-section-entsize make-elf-segment elf-segment? elf-segment-type elf-segment-flags elf-segment-offset elf-segment-vaddr elf-segment-paddr elf-segment-filesz elf-segment-memsz elf-segment-align make-elf-symbol elf-symbol? elf-symbol-name elf-symbol-other elf-symbol-shndx elf-symbol-value elf-symbol-size elf-symbol-binding elf-symbol-type elf-symbol-info elf-image-section-by-name elf-image-sections elf-image-segments elf-image-symbols elf-architecture-symbol make-string-table string-table? string-table-empty? string-table-size string-table-bytes string-table-list-index string-table-byte-index ELF-MAGIC ELFCLASS32 ELFCLASS64 ELFDATA2LSB ELFDATA2MSB ET-NONE ET-REL ET-EXEC ET-DYN ET-CORE ET-LOOS ET-HIOS ET-LOPROC ET-HIPROC EV-CURRENT ELFOSABI-SYSV ELFOSABI-HPUX ELFOSABI-NETBSD ELFOSABI-LINUX ELFOSABI-SOLARIS ELFOSABI-AIX ELFOSABI-IRIX ELFOSABI-FREEBSD ELFOSABI-TRU64 ELFOSABI-MODESTO ELFOSABI-OPENBSD ELFOSABI-OPENVMS ELFOSABI-NSK ELFOSABI-AROS EM-NONE EM-M32 EM-SPARC EM-386 EM-68K EM-88K EM-860 EM-MIPS EM-MIPS-RS3-LE EM-PARISC EM-SPARC32PLUS EM-PPC EM-PPC64 EM-S390 EM-ARM EM-SPARCV9 EM-IA-64 EM-68HC12 EM-X86-64 EM-68HC11 EM-AARCH6 elf-machine-names SHT-NULL SHT-PROGBITS SHT-SYMTAB SHT-STRTAB SHT-RELA SHT-HASH SHT-DYNAMIC SHT-NOTE SHT-NOBITS SHT-REL SHT-SHLIB SHT-DYNSYM SHT-LOOS SHT-HIOS SHT-LOPROC SHT-HIPROC SHF-WRITE SHF-ALLOC SHF-EXECINSTR SHF-MASKOS SHF-MASKPROC SHN-UNDEF SHN-ABS SHN-COMMON PT-NULL PT-LOAD PT-DYNAMIC PT-INTERP PT-NOTE PT-PHDR PT-TLS PT-LOOS PT-HIOS PT-LOPROC PT-HIPROC PF-R PF-W PF-X PF-MASKOS PF-MASKPROC STB-LOCAL STB-GLOBAL STB-WEAK STB-LOOS STB-HIOS STB-LOPROC STB-HIPROC STT-NOTYPE STT-OBJECT STT-FUNC STT-SECTION STT-FILE STT-LOOS STT-HIOS STT-LOPROC STT-HIPROC
- ← (rnrs) R6
- ← (struct pack)
- (machine-code format ihex) R6
- → ihex-image? open-ihex-image ihex-image-cs ihex-image-ip ihex-image-eip ihex-image-base ihex-image-cells ihex-cell-address ihex-cell-data ihex-cell?
- ← (rnrs) R6
- (machine-code format pe) R6
- → is-pe-image? make-import-table import-table? import-table-base import-table-modules make-import-module import-module? import-module-name import-module-functions make-import-function import-function? import-function-name import-function-address open-pe-image make-pe-image pe-image? pe-image-port pe-image-dos-header pe-image-nt-signature pe-image-machine pe-image-number-of-sections pe-image-time-date-stamp pe-image-symbol-table-offset pe-image-number-of-symbols pe-image-optional-header-size pe-image-characteristics pe-image-magic pe-image-is-64bit? pe-image-major-linker-version pe-image-minor-linker-version pe-image-size-of-code pe-image-size-of-initialized-data pe-image-size-of-uninitialized-data pe-image-address-of-entry-point pe-image-base-of-code pe-image-base-of-data pe-image-base pe-image-section-alignment pe-image-file-alignment pe-image-major-os-version pe-image-minor-os-version pe-image-major-version pe-image-minor-version pe-image-major-subsystem-version pe-image-minor-subsystem-version pe-image-win32-version pe-image-size pe-image-size-of-headers pe-image-checksum pe-image-subsystem pe-image-dll-characteristics pe-image-size-of-stack-reserve pe-image-size-of-stack-commit pe-image-size-of-heap-reserve pe-image-size-of-heap-commit pe-image-loader-flags pe-image-rva-and-sizes pe-image-data-directories pe-image-sections pe-image-entry-point-file-offset pe-image-code-section pe-architecture-symbol make-pe-section pe-section? pe-section-name pe-section-virtual-size pe-section-virtual-address pe-section-size-of-raw-data pe-section-pointer-to-raw-data pe-section-pointer-to-relocations pe-section-pointer-to-line-numbers pe-section-number-of-relocations pe-section-number-of-line-numbers pe-section-characteristics pe-section-absolute-address dos-header? dos-header-magic dos-header-last-page-bytes-count dos-header-pages-in-file dos-header-relocations dos-header-paragraphs-per-header dos-header-min-extra-paragraphs dos-header-max-extra-paragraphs dos-header-ss dos-header-sp dos-header-checksum dos-header-ip dos-header-cs dos-header-reloc-table-offset dos-header-overlay-number dos-header-reserved1 dos-header-oem-id dos-header-oem-info dos-header-reserved2 dos-header-pe-offset DOS-HEADER-MAGIC PE-NT-SIGNATURE PE-OPTIONAL-HDR32-MAGIC PE-OPTIONAL-HDR64-MAGIC PE-MACHINE-AMD64 PE-MACHINE-I386 PE-MACHINE-ARM64 PE-FLAG-RELOCS-STRIPPED PE-FLAG-EXECUTABLE-IMAGE PE-FLAG-LINE-NUMS-STRIPPED PE-FLAG-LOCAL-SYMS-STRIPPED PE-FLAG-AGGRESSIVE-WS-TRIM PE-FLAG-LARGE-ADDRESS-AWARE PE-FLAG-BYTES-REVERSED-LO PE-FLAG-32BIT-MACHINE PE-FLAG-DEBUG-STRIPPED PE-FLAG-REMOVABLE-RUN-FROM-SWAP PE-FLAG-NET-RUN-FROM-SWAP PE-FLAG-SYSTEM PE-FLAG-DLL PE-FLAG-UP-SYSTEM-ONLY PE-FLAG-BYTES-REVERSED-HI PE-SUBSYSTEM-UNKNOWN PE-SUBSYSTEM-NATIVE PE-SUBSYSTEM-WINDOWS-GUI PE-SUBSYSTEM-WINDOWS-CUI PE-SUBSYSTEM-OS2-CUI PE-SUBSYSTEM-POSIX-CUI PE-SUBSYSTEM-NATIVE-WINDOWS PE-SUBSYSTEM-WINDOWS-CE-GUI PE-SUBSYSTEM-EFI-APPLICATION PE-SUBSYSTEM-EFI-BOOT-SERVICE-DRIVER PE-SUBSYSTEM-EFI-RUNTIME-DRIVER PE-SUBSYSTEM-EFI-ROM PE-SUBSYSTEM-XBOX PE-SUBSYSTEM-WINDOWS-BOOT-APPLICATION PE-SECTION-CODE PE-SECTION-INITIALIZED-DATA PE-SECTION-UNINITIALIZED-DATA PE-SECTION-GPREL PE-SECTION-ALIGN-1BYTES PE-SECTION-ALIGN-2BYTES PE-SECTION-ALIGN-4BYTES PE-SECTION-ALIGN-8BYTES PE-SECTION-ALIGN-16BYTES PE-SECTION-ALIGN-32BYTES PE-SECTION-ALIGN-64BYTES PE-SECTION-ALIGN-128BYTES PE-SECTION-ALIGN-256BYTES PE-SECTION-ALIGN-512BYTES PE-SECTION-ALIGN-1024BYTES PE-SECTION-ALIGN-2048BYTES PE-SECTION-ALIGN-4096BYTES PE-SECTION-ALIGN-8192BYTES PE-SECTION-NRELOC-OVFL PE-SECTION-MEM-DISCARDABLE PE-SECTION-MEM-NOT-CACHED PE-SECTION-MEM-NOT-PAGED PE-SECTION-MEM-SHARED PE-SECTION-MEM-EXECUTE PE-SECTION-MEM-READ PE-SECTION-MEM-WRITE PE-EXPORT-TABLE PE-IMPORT-TABLE PE-RESOURCE-TABLE PE-EXCEPTION-TABLE PE-CERTIFICATE-TABLE PE-BASE-RELOCATION-TABLE
- ← (rnrs) R6
- (machine-code tests check) R6 Test
- → check check-report check-passed?
- ← (rnrs) R6
Version history
- 2026-07-11 ~ 2.3.0
- 2021-04-18 ~ 2.2.0
- 2019-06-22 ~ 2.1.0
- 2018-04-08 ~ 2.0.0