Seems I fixed the memory offset bugs, so far anyway...
This commit is contained in:
+9
-6
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user