+12.51
Рейтинг
56.93
Сила

Руслан

  • avatar ShaMAN
  • 1
хренассе топик развел)
тогда уж давайте придумаем универсальный скрипт
  • avatar ShaMAN
  • 6
как говорится «надежда умирает последней»)))
я вообще как кот Леопольд — люблю мирных друзей)
  • avatar ShaMAN
  • 5
меня это не расстроило. просто тут и так идет оппозиционная война непонимающих/недопонимающих друг друга людей)
  • avatar ShaMAN
  • 2
а зачем в новости перенесли? по мне дак на глагне самое место)
  • avatar ShaMAN
  • 4
да, и шутка неудачная
  • avatar ShaMAN
  • 5
у меня один вопрос — а нахрена подливать масла в огонь?
  • avatar ShaMAN
  • 0
примечание: на стек идут только регистровые пары и данные по 2 байта
  • avatar ShaMAN
  • 1
принцип работы стека знаешь? надеюсь, что знаешь)
но на всякий случай — первый пришел, последний ушел.
допустим мы стек бросаем значения
1, 2, 3, 4.
на вершине стека у нас значение 4.
что бы достать значение 1, то надо стек разобрать в обратном порядке — достаем 4,3,2,1
  • avatar ShaMAN
  • 1
я вот для этого написал
Я так понял, там какая-то работа со стеком, но не очень допер, что и как реально работает.

Артем, смотри — объясню как умею и понимаю:
когда процессор встречает команду call <адрес>, то он бросает на стек содержимое регистра PC+3, меняет значение PC на <адрес> и продолжает выполнение. т.е. следующая команда будет браться уже из <адрес>. а когда встречается команда ret, то берется значение с вершины стека и пихается в PC, потом опять же идет продолжение выполнения программы.
командами push/pop ты сохраняешь/восстанавливаешь значения регистров в стек/ из стека. и соответственно косвенно изменяешь значение регистра SP (указатель на вершину стека). и если ты запихал в стек допустим 2 регистра, а восстановил 1, то при выполнении команды ret со стека возьмется что? правильно — хрень! и выполнение программы начнеться по направлению неведомой черной дыры :)
вот как-то так
  • avatar ShaMAN
  • 0
только надо добавить, что в начале процедуры надо push все регистры которые портишь, а перед выхором pop их обратно
  • avatar ShaMAN
  • 1
оу! типа не с первого байта, а со стодвадцатьвосьмого? круто, чо)
  • avatar ShaMAN
  • 1
вот мне как-то Нючек пример накидал yadi.sk/d/xn5k9AYxv9GYB
  • avatar ShaMAN
  • 0
асмах*
  • avatar ShaMAN
  • 3
incbin "..." — инклудит бинарные данные
include "..." — инклудит другой файл асм

в бинарниках у тебя может быть картинка, музыка, что-то еще (прекалк)
ну а в амсах могут быть отдельные процедуры, которые не стоит копировать из проекта в проект, а проще приинклудить из какой-то общей папки
  • avatar ShaMAN
  • 0
ага, уже обратил внимание))
  • avatar ShaMAN
  • 1
Z80Asm > Settings > Build script (win)
слона-то я и не приметил!)))
этож красивее и умнее можно сделать!))
как минимум проверять на маке. бат и запускать его если имеется, иначе по дефолту сделать как у меня.
/me потирает руки
  • avatar ShaMAN
  • 0
кхм… тогда вопрос как это делается? ибо саблим с плагом имеются, собсна в саблиме и пушу
  • avatar ShaMAN
  • 2
естественно на абсолютную истину не претендую)))
просто мне, как мегаленивому и стольже полоротому, лень в текстах писать имя проекта
типа
spgbld.exe -b spgbld.ini zifi.spg
имя проекта пишу 1 раз, когда создаю папку проекта.
потом ctrl+b, все компиляется с нужными именами, собирается в трдэшник, киляется существующий экземпляр анрила, и запускается новый.
  • avatar ShaMAN
  • 1
ну в моем случае скорее автосборщик, да не скорее, а он и есть
  • avatar ShaMAN
  • 1
ишь, какой хитрый способ))