load mem Stack         = do
    (MemoryValue8 sp') <- load mem Sp
    store mem Sp (MemoryValue8 $ sp' - 1)
    readArray (stack mem) (sp' - 1) >>= \v -> return $ MemoryValue16 v
load mem Stack         = do
    (MemoryValue8 sp') <- load mem Sp
    store mem Sp (MemoryValue8 $ sp' - 1)
    readArray (stack mem) (sp' - 1) >>= \v -> return $ MemoryValue16 v
load mem Stack         = do
    (MemoryValue8 sp') <- load mem Sp
    store mem Sp (MemoryValue8 $ sp' - 1)
    readArray (stack mem) (sp' - 1) >>= \v -> return $ MemoryValue16 v