Я кодирую ассемблер 8086, и у меня возник интересный вопрос. Тема состоит в том, чтобы оценить круглые скобки. Если бы это был вопрос в Java
или C
, я бы просто определил два стека - один для чисел, а другой для операндов. Могу ли я сделать что-то подобное в Assembly
? Насколько я знаю, Stack определяется в последних ячейках памяти сегмента данных. Если я определяю другой сегмент данных, у меня будет другой полезный стек?Два стека в ассемблере?
Другая информация: я не знаю размер ввода в начале, и я должен сделать программу максимально эффективной.
Спасибо!
спасибо. Чем это должно работать? стоп 100ч толкатель топора толчок bx ... мы ах, сс мов Ьх, зр мов сс, 0f00h мов зр, 0f00h И чем у меня есть один стек в топоре: BX и другой стек в SS: зр? – DoronZor
В каждый момент времени может быть только один стек: тот, который определяется SS: SP. Вы можете настроить вторую область памяти для целей стекирования, но вам нужно загрузить полный указатель на этот регион в паре SS: SP. –
Также не существует инструкции типа 'mov ss, 0f00h'! Вы не можете переместить немедленное значение (число) в регистре сегментов. –