Releases: dev-er1/rasm
Releases · dev-er1/rasm
Release list
v0.6.0
v0.5.0
+ Added generation of Mach-O files.Added
- Generating files with
Mach-Oformat.
v0.4.2
+ Added a new flag to the `disasm` command.
- Fixed a bug in the disassembler.Added
- New flag
--offsetfor the disassembler command.
Fixed
- Disassembler behavior: it will no longer crash upon encountering the first unknown opcode.
P.S.: Oops, I forgot to change the version to 0.4.2, so the CLI will still show 0.4.1—sorry about that ;(.
v0.4.1
- Fixed a bug with the AST analyzer.Fixed
- A bug with the AST analyzer; the AST analyzer simply did not check the code.
v0.4.0
+ Added imports.
+ Added analyzer.Added
- Imports — you can now import functions from
kernel32.dllon Windows. - Analyzer — the analyzer will analyze your code for dead code and errors.
Fixed
- Bug with incorrect
Rel32patching.
v0.3.1
+ Added JMP rel8 and Jcc rel8 (short jumps) to the encoder and decoder.
+ Added missing Jcc mnemonics: JO, JNO, JS, JNS, JP, JNP.
+ The parser now accepts `db`/`dw`/`dd`/`dq` without a leading dot.Added
- Short jumps — JMP rel8 (
0xEB) and all 16 Jcc rel8 (0x70–0x7F) are now supported in the decoder and encoder. - New mnemonics —
jo,jno,js,jns,jp,jnpwith aliases (jpe,jpo,jc,jnc, etc.). - Missing Jcc rel32 —
0x0F 0x80–0x8Bfor JO, JNO, JS, JNS, JP, JNP (two-byte opcodes). - Directives without a dot —
db,dw,dd,dqwork without a leading.(for example,db 0x90instead of.byte 0x90).
Fixed
- The decoder
0xC7now correctly accepts the register form (mod=11) forMOV r64, imm32. format_memoryno longer outputs[rbp + -0x8]; the negative offset shows the-sign.decode_memoryreturnsscale: Noneif there is no index case.#[derive(Debug)]added toCodegenOutputandDecodedInstruction.
v0.3.0
+ Added disassembler.Added
disasmcommand in the CLI! You can disassemble.binfiles into human-readable code.
P.S.: The CLI shows the old version 0.2.1, sorry, I hope this doesn't bother you. If you really need me to rework the release, put a "👀" smiley face, or build rasm.exe from the source.
v0.2.1
+ Reworked the release.yml script.
+ Added a new command to the REPL.Added
- New ":clear" command in the REPL to clear the terminal.
- Changed the release system; now all releases will be published as archives containing an executable file.
v0.2.0
+ Added RIP-relative addressing support
+ Added REPL mode to the CLI
+ Added binary number support
- Removed old bug in CLIAdded
-
Added support for RIP-relative addressing! Now you can write:
lea rsi, [rip + msg] mov rax, [rip + val] -
Added a REPL mode to the CLI.
-
Added support for binary literals (
0b...) in the lexer.
Fixed
- Bug with the
rasm checkcommand in the CLI.
Happy coding!