+;; Read a word from a buffer. Expects (buffer buffer-length) on the stack.
+;; Updates buffer and buffer-length, such that the word has been removed from
+;; the buffer. Appends (word-buffer word-buffer-length) to the stack.
+forth_asm POP_WORD, 'POP-WORD'
+ pushr rsi
+
+ pop rcx ; Length
+ pop rsi ; Buffer
+
+ call pop_word
+
+ push rsi ; Updated buffer
+ push rcx ; Length of updated buffer
+ push rdi ; Word buffer
+ push rdx ; Length of word buffer
+
+ popr rsi
+ next
+