throw error with non-register operands

This commit is contained in:
andromeda
2026-03-18 20:52:00 +01:00
parent ac0a10fafd
commit ad6a79d937

View File

@@ -661,17 +661,27 @@ tokenise:
mov cx, ax ; cx = length counter for safe keeping
call evaluate_operand
; dl = return code
; ax = register's token ID
pop rsi
pop rdi ; rdi = first byte of operand
add di, cx ; rdi = last byte of operand
mov cx, ax ; cx = register's token ID for safe keeping
add di, cx ; rdi = last byte of operand
mov rcx, rax ; rcx = evaluate_operand's return value
pop rax ; rax = number of tokens processed
; operand is a register
; cx = token ID
cmp dl, 0x00
je .operand_register
jmp .unexpected_operand
.operand_register:
mov [TOKEN_TABLE_ADDR + rax * TOKEN_TABLE_ENTRY_SIZE], cx
inc rax ; another token processed
jmp .operand_break_continue
.operand_break_continue:
mov byte [.expecting], E_COMMENT | E_NEWLINE | E_WHITESPACE | E_COMMA
jmp .loop