summaryrefslogtreecommitdiff
path: root/ecomp-c/asm-i386.c
AgeCommit message (Collapse)Author
2020-08-30asm-i386: fixed patchup of forward references (again)Andreas Baumann
2020-08-15correct returning from procedure with argumentsAndreas Baumann
- ec: first working return from a procedure with parameters - asm-i386: needed a ret imm16 to clean up stack when returning from call with parameters - asm-i386: introduced min and max operands constraints (better than arbitrary expections by opcode, for instance dd)
2020-08-14started handling value parameters for proceduresAndreas Baumann
- asm386 handles also negative numbers (for negative offsets for parameters on stack) - parameter handling in stdcall style (procedure handles all of the stack operations)
2020-08-06added procedure ESP and EBP stack frame handlingAndreas Baumann
- asm-i386: added ESP and EBP registers - emul: set EBP to ESP when starting the emulation
2020-08-06removed playing with noreturn attributeAndreas Baumann
2020-08-03some work on noreturn and exit/HaltAndreas Baumann
2020-07-28asm-386 is working on simple ELF testAndreas Baumann
2020-07-27asm-i386: tried to fix assignmentAndreas Baumann
2020-07-26asm-i386: minifix in debug output (REGISTER_AL)Andreas Baumann
2020-07-25asm-i386: some work on expresion tree evaluations and new opcodesAndreas Baumann
- added dw, dd and arbitrary length data - added INT nn for syscalls - rearanged the elf.asm test so it only needs the minimal set of opcodes we have - added and assignment for variables to expressions - some work on evaluation of expressions
2020-07-24asm-i386: fixes initializations and some hexnum debug outputAndreas Baumann
2020-07-24refactored asm-i386 also for symbols in expression trees, tests working againAndreas Baumann
2020-07-23parsing $ and $$ in asm-i386Andreas Baumann
- freestanding libc: added ungetc function with one pushback character - asm-i386: for now adding $ and $$ as special addresses to the operands in the expression tree
2020-07-23asm-i386: started to work on const expressions, works again for pure ↵Andreas Baumann
integer/hex constants
2020-07-18playing with small elf binaries in assemblyAndreas Baumann
2020-06-27implemented simple proceduresAndreas Baumann
asm-i386: added call and ret opcodes ec: simple procedure declarations and calls without parameters
2020-06-27fixed endless loop in asm-i386 when parsing operands and an unknown symbol ↵Andreas Baumann
appears before newline
2020-06-25another example with integer arraysAndreas Baumann
asm-i386: added parsing of empty lines ec: array dimensions can be const expressions now (simple const expression being a number or a constant)
2020-06-25asm-i386: fixed patching of addresses in prolongued jumpsAndreas Baumann
2020-06-21added an example for divisors remembered in an array of integersAndreas Baumann
ec: added jmp workaround in while in order to avoid far conditional jumps asm-i386: issues with correct far address calculation in jmp (still existing)
2020-06-20asm-i386: added checks for 32-bit stack pushesAndreas Baumann
2020-06-19asm-i386: added nop for easier debugging in emulAndreas Baumann
2020-06-15asm-i386:Andreas Baumann
- added register indirect reads for expression evaluation with arrays ec: - started to add array expressions
2020-06-14libc-freestandingAndreas Baumann
- added a memcpy asm-i386: - fixed address calculation for dd and multiple operands - added support for register indirect moved (writing only at the moment, needed for array assignments) ec: - added support for array assignments - removed "variable not initialized" check, too hard to implement correctly and besides we initialize static variables always)
2020-05-31added support for multi-operand db in asm-i386 for string definitionsAndreas Baumann
added string and character tests
2020-05-30asm-i386:Andreas Baumann
started to support strings in db fixed embarrassingly wrong parser for hexadecimal numbers
2020-05-23asm-i386: implemented byte movesAndreas Baumann
more little-endian tests fixing
2020-05-10some work on char typeAndreas Baumann
2020-04-13ec: fixed memory leaks and snprintf in hosted environmentAndreas Baumann
asm-i386: some output about uses passes, some cleanup
2020-04-13asm-i386: fixed rel8/rel32 jmps for example_divisors.eAndreas Baumann
2020-04-13more code cleanupAndreas Baumann
2020-04-13asm-i386: nicer debug outputAndreas Baumann
2020-04-13code cleanupAndreas Baumann
2020-04-12asm-i386: epilogue and deinit cleanupAndreas Baumann
2020-04-11added some comments on address rewritingAndreas Baumann
2020-04-10on the way to a multi-pass assemblerAndreas Baumann
2020-04-05renamed incr to size in asmAndreas Baumann
2020-04-04some better assembly error messagesAndreas Baumann
2020-04-03implemented '%' (remainder)Andreas Baumann
problems with rel8 in jmp in while in example_divisors.e
2020-04-02we have an ifAndreas Baumann
2020-03-29filled out the rest of compare operationsAndreas Baumann
2020-03-29implemented je and jmp in asm-i386Andreas Baumann
improved debug output in asm-i386 (label names, addresses) added more test
2020-03-28implemented evaluation of equals in expression with relational operator in ecAndreas Baumann
started to implement cmp, je, jmp in asm-i386
2020-03-26better error handling in asm-i386 for unknown operand combinationsAndreas Baumann
2020-03-24implemented asm-i386, so it can handle test1.e for nowAndreas Baumann
2020-03-23implemented explicit moveAndreas Baumann
2020-03-22fixed fputc to use print_char (needed to print strange non-C-chars like a \0 ↵Andreas Baumann
into a binary) added Emit_little_endian (for DD and rel32)
2020-03-20some work on binary generation in asm-i386Andreas Baumann
2020-03-18forgot a checkinAndreas Baumann
2020-03-15some work on understand Intel opcodes add and subAndreas Baumann