Сборник по задачам и примерам Assembler



Стек - часть 2


pop_stkchar_stk.<offset temp>

cmp temp,"<"

jne mes__error

jmp r_next m_push: включение скобки в стек

pushstk char_stk.ebx r_next:add ebx,char_stk.si ze_i tern

dec ecx

jmp cycl mes_error: :вывод на экран сообщения об ошибке mes_e

jmp exitexit

exit:

определяем стек на пустоту

pop_stkchar_stk,<offset temp> jncmes_error :стек не пуст :вывод на экран сообщения mes_ok

exit_exit: :выход из приложения

delete_stk char_stk :удаляем блок памяти со стеком

Код, выполняющий работу со стеком, оформлен в виде макрокоманд. При необходимости код можно сделать еще более гибким. Для этого нужно использовать функцию API Win32 HeapReAl 1 ос, которая изменяет размер выделенного блока в сторону его увеличения или уменьшения. В принципе, полезной может оказаться операция определения объема стека, то есть количества элементов в нем. Попробуйте реализовать ее самостоятельно.




Содержание  Назад  Вперед