С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Последний раз редактировалось Destr; 16.10.2011 в 23:22.
когда выполняется CLEAR xxxxx, интерпретатор по адресу xxxxx заносит байт #3e (это маркёр для стека Go-Sub),далее стек опускается ещё на еденицу.если дальше загрузить код по адресу xxxxx он этот байт естественно затрёт, что повлияет на работу GoSub/Return. в принципе если не использовать подпрограммы в бейсике про этот момент можно забыть.
Последний раз редактировалось goodboy; 17.10.2011 в 01:06.
Стек конечно нужно из машкода устанавливать. А из бейсика вроде ниже #5cf4 (без ТР-ДОСа) не установить. Да и то зависит есть бесик программа или нет.
Из всего этого следует что стек госуб действует по какому-то другому принципу. Иначе нафига "стек опускается ещё на еденицу"? Ведь асмовский PUSH сперва декрементирует SP, а потом пихает байт и так два раза. А госубом занимается видимо интерпритатор и "стек" там не совсем стек, а что-то с наворотами. Так или не так?
Последний раз редактировалось Destr; 17.10.2011 в 20:13.
Именно так, там еще идет очистка 5 байт ниже Go-Sub. И изменение кое-каких переменных.
Посмотрел ПЗУ, там или #3С или #01 или #ff, если стек сделать #3FFF, то возврат по RET можно организовать в зависимости от ПЗУ использующемуся в данный момент. Например Бейсик 48 #xx3c Бейсик 128 #xx01, ТР-ДОС #xxff. Чем не поле для деятельности? xx первый байт картинки для тех кто не понял.
Последний раз редактировалось Killer; 17.10.2011 в 20:28.
Так ведь бейсик не даст туда стек поставить, а коды юзать - это уже неинтересно, в кодах можно ещё и не того наворотить...
Вот если бы заставить бейсик ставить стек куда угодно в ПЗУ - тогда да! Это круть! Можно всяких замуток придумать. Даже самонастраивающихся на конкретное ПЗУ
Где-то ведь хранится значение для CLEAR?
Или не? Прямо в SP? Да ну чушь порю, какое SP, в пзу куча call и т.д. SP при первом прерывании ласты склеит (точней не SP а то, на что он там указывает).
Последний раз редактировалось Destr; 17.10.2011 в 20:34.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)