blog:pushbx:2024:0428_mid_late_april_work
Table of Contents
Mid late April work
2024-04-21
This week I worked on several projects.
Instruction reference
- Fix NTVDM BOP, it is an LES not LEA
MSDebug
- Bugfix: CALL and JMP with an operand of the form SSSS:OOOO is always assembled as far, even if the segment matches the segment being assembled into (bug in original MS-DOS Debug)
- Insert maximum height and width for listing using page directives
- Feature added: Support semicolon at start of line as comment indicator
- Use tractest convmasm.pl to create trace listing file for lDebug TracList
TracList / tractest
- Add the E. (again)
- Add convmasm.pl script to convert MSDebug map and listing files to a trace listing usable by us
- Add convdebx.pl script to convert Debug/X listing file to a trace listing usable by us
The Debug/X listing file needs to be created by a patched JWasm to really be useful for us. This patch makes the assembler mark relocations in its listing, in a style similar to NASM.
lDebug
- Assemble and disassemble shift/rotate with BYTE 1 for 186+ form with an imm8 that happens to equal 1
- mktables: Check that no duplicate keys exist
- Allow CALL/JMP FAR imm, a form of far branch that takes a default segment from the a_addr (segment being assembled into). Compatible to MSDebug. As suggested in a comment to Debug/X.
- Add new type OP_IMM_NOT_EXTEND which will disassemble with a WORD or DWORD size keyword if the immediate is in imms8 range
- Assembler: Allow to specify displacement size within square brackets, allowing to specify BYTE, WORD, or DWORD size. If permissible the displacement is extended to this size. (1, 2)
- Assembler: Forbid assembling MOVSX/MOVZX with 32-bit destination and unspecified source size (new operand type OP_ASM_MOVX)
You could leave a comment if you were logged in.
blog/pushbx/2024/0428_mid_late_april_work.txt · Last modified: by ecm
