Seems I fixed the memory offset bugs, so far anyway...

This commit is contained in:
2022-08-25 19:54:47 +00:00
parent 4f6d5f652e
commit 03d5660677
+9 -6
View File
@@ -54,12 +54,13 @@ void ParseTokens(List* tokens) {
HandleAssemblerDirective();
break;
case Opcode:
ProgramCounter++;
HandleOperation();
break;
case Immediate16:
ProgramCounter++;
AddSymbol(t, ProgramCounter);
if (t->type == LABEL) {
printf("%s: \n", t->lexeme);
AddSymbol(t, ProgramCounter);
}
break;
default:
break;
@@ -70,7 +71,7 @@ void ParseTokens(List* tokens) {
PrintSymbols();
DestroyList(SymbolsTable);
printf("Program Counter: %d\n", ProgramCounter);
//printf("Program Counter: %d\n", ProgramCounter);
//printf("Heap Top: %#06X\n", HeapTop);
}
@@ -90,9 +91,9 @@ void HandleAssemblerDirective(void) {
switch(PeekToken()->type) {
case STRING:
ProgramCounter += strlen(PeekToken()->lexeme);
printf("[INFO] %s = '%s' (%#04X)\n", identifier->lexeme, PeekToken()->lexeme, ProgramCounter);
printf("[INFO] %s = '%s'\n", identifier->lexeme, PeekToken()->lexeme);
ProgramCounter += strlen(PeekToken()->lexeme);
AdvanceParser();
@@ -127,6 +128,8 @@ void HandleOperation(void) {
printf("[%#05X] %s ", ProgramCounter, inst->lexeme);
ProgramCounter++;
if (inst->parameter_one == None) {
printf("\n");
return;