Показать сообщение отдельно
  #3  
Старый 30.06.2013, 16:47
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Не просто для дос - это походу кусок какого-то загрузчика или операционки. Все указывает именно на это:
Цитата:
mov [ss:0x7afe], sp
mov sp, 0x7afe
push ds
pushad
...
CODEBASEIN1MB
...
xor bx, bx
mov ss, bx
...
mov ds,bx
В нулевом кольце тоже работать не будет - последние две команды в любой существующей операционке вызовут краш скорее всего, 0 - не очень хороший селектор.
ТС видимо пытается написать загрузчик на делфях... Некоторые пытались тут, ничего не вышло толком. Делфа для этого не предназначена.
Цитата:
procedure l2();
asm
loop l2//тут ворчит
А чего бы ему не ворчать? Это скомпилится как-нибудь так:
Код:
l2:
  push ebp
  mov ebp, esp
  loop l2
Поэтому переход на внешние по отношению к асм-вставке имена запрещен. Иначе у делфы бы крыша поехала анализировать асм-код и пытаться так работать со стеком, чтобы все эти переходы не сорвали его.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием