From 3534d54b61a8ce858d9fb447374ee495df694049 Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Sun, 7 Jul 2024 20:38:40 -0400 Subject: [PATCH] Check for underflow --- data_stack.inc | 7 +++++++ defs.inc | 1 + 2 files changed, 8 insertions(+) diff --git a/data_stack.inc b/data_stack.inc index 8c8844c..45e3019 100644 --- a/data_stack.inc +++ b/data_stack.inc @@ -28,12 +28,19 @@ data_stack_push: data_stack_pop: mov rsi, [_data_stack.here] + cmp rsi, [_data_stack.base] + jle .underflow + std lodsq mov [_data_stack.here], rsi lodsq cld + ret + + .underflow: + die ERR_UNDERFLOW data_stack_depth: mov rax, [_data_stack.here] diff --git a/defs.inc b/defs.inc index a715aa3..94efb71 100644 --- a/defs.inc +++ b/defs.inc @@ -11,6 +11,7 @@ ERR_BAD_BASE = 167 ERR_BAD_PAD = 168 ERR_NO_WORD = 169 ERR_BAD_SE = 170 +ERR_UNDERFLOW = 171 TYPE_OFFSET = 0x00