Сейчас на форуме: asfa (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› MASM 6.15 виснет |
Посл.ответ | Сообщение |
|
Создано: 27 мая 2010 13:23 · Личное сообщение · #1 Жил я долго с MASM 6.11 и всё было хорошо. Клал в одну папку файл ML.EXE, исходный файл SUBS.ASM и пакетный файл COMP.BAT с содержимым: ML /c /coff /Cp subs.asm Запускал из Fara этот COMP.BAT и благополучно получал файл SUBS.OBJ. Но наступили черные дни, когда MASM 6.11 перестал понимать некоторые инструкции с регистрами XMM, а файл SUBS.ASM их содержит. Скачал MASM 6.15, который их уже понимает. При компиляции ошибок не выдает, но в конце работы при попытке создать SUBS.OBJ виснет. Нажимаю CTRL-BREAK, вываливаюсь из пакетного файла и вижу файл SUBS.OBJ нулевого размера. Попробовал на двух компах (на обоих XP SP2), результат один и тот же. Пробовал менять свойства COMP.BAT, ставил режим совместимости с Windows 95 - не помогает. Чего делать-то? ![]() |
|
Создано: 27 мая 2010 14:54 · Личное сообщение · #2 |
|
Создано: 27 мая 2010 16:19 · Личное сообщение · #3 Скачивал отсюда тоже. Но там MASM 6.14.8444, он тоже не понимает некоторых инструкций. Весь ASM файл выложить не могу - там больше 50000 строк. Получен из IdaPro. Вот одно из критических мест: .686p .xmm .model flat,C _text segment para public 'CODE' use32 assume cs:_text assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing sub_409680 proc near ;... xorpd xmm0, xmm0 ; строка 10785 ;... retn sub_409680 endp _text ends end При компиляции MASM 6.14.844 выдает ошибку: subs.asm(10785) : error A2008: syntax error : xmm MASM 6.15 такой маленький ASM-код компилирует успешно и создает OBJ. Но на файле размером 50000 строк он виснет. Вообще, я заметил, что виснуть он начинает на исходниках более примерно 2000 строк (меньшие компилирует успешно). Пробовал я брать более новые версии ML.EXE из недр Visual Studio 2008 и 2010 (эти скачаны с microsoft.com, так что к ним претензий быть не должно). Эти ML.EXE на моем файле тоже благополучно виснут. А вот MASM 6.11 компилирует успешно. Если конечно в нем закомментировать все эти XMM-инструкции. ![]() |
|
Создано: 27 мая 2010 19:12 · Личное сообщение · #4 |
|
Создано: 28 мая 2010 12:28 · Поправил: nevertime · Личное сообщение · #5 |
|
Создано: 29 мая 2010 14:39 · Личное сообщение · #6 Самое смешное, что в самом деле нужно было подождать. Но только долго - аж целых 35 минут. За это время успел два раза покурить, выпить стакан водки и поприставать к жене. Проблема оказалась в том, что у меня в области данных объявлены несколько больших массивов: byte_484AC0 db 100000h dup(?) word_5C14FC dw 1338BEh dup (?) ну и еще несколько, но поменьше. Без этих массивов masm-ы новых версий компилируют без проблем и задержек и создают OBJ размером 560 Кбайт. Над db 100000h dup(?) задумываются уже 3 минуты, и создают OBJ размером 1,6 Мбайт. Над dw 1338BEh dup(?) и остальными думают те самые 35 минут, и создают OBJ размером 5 Мбайт. MASM 6.11 компилирует все эти варианты мгновенно. Почему новые версии MASM стали так себя вести на больших массивах? Руки бы оторвать этим мелкософтам! ![]() |
![]() |
eXeL@B —› Вопросы новичков —› MASM 6.15 виснет |