|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 4, 2004 06:10:22 1) Почему TASM после условных переходов вставляет несколько nop'ов? 2)TASM генерит 4к кода из обычного Hello_World. Можно ли как-нибудь убрать нули? |
|
|
Дата: Апр 4, 2004 06:37:30 · Поправил: Quantum xLat 1. Короткий переход занимает меньше байт чем длинный и, т.к. TASM парсит листинг только один раз, то в некоторых случаях он просто не знает заранее будет ли переход длинным или коротким. Поэтому он резервирует несколько байт на всякий случай ;-) Во избежание подобных казусов рекомендуется использовать по возможности короткие переходы (JMP SHORT вместо JMP). |
|
|
Дата: Апр 4, 2004 08:29:51 Quantum Я догадывался что здесь замешаны near-far |
|
|
Дата: Апр 4, 2004 08:30:02 Quantum Я догадывался что здесь замешаны near-far ;) |
|
|
Дата: Апр 4, 2004 10:33:07 В командной строке надо указывать параметр /m9, тогда можно и обычными jmp пользоваться. |
|
|
Дата: Апр 4, 2004 12:21:35 Quantum Верно. И ключик m# тоже помогает. Увеличиваешь число проходов и компилятор сам разберется где far, а где short. Спасибо за помощь. |
|
|
Дата: Апр 4, 2004 12:23:03 dragon Угу. Я уже сам домедитировал ;-) |
|
|
Дата: Апр 4, 2004 12:23:43 · Поправил: xLat dragon Угу. Я уже сам домедитировал ;-) А что про второй вопрос никто из здешних Паладинов ничего не знает? PS. Извиняюсь за дубли - вечно все в последний момент додумываю... |
|
|
Дата: Апр 4, 2004 13:05:20 Только rebuild PE, сам TASM так не может. Можно PeTools /REBUILDPE EXE.exe И ещё, как линкер лучше использовать ilink32 из С++Builder. |
|
|
Дата: Апр 4, 2004 15:35:03 dragon Спасибо. |
|
|
Дата: Апр 10, 2004 20:54:57 По поводу второго вопроса - насколько я знаю, в тасме меньше чем 4кб не получится, но собственно, если Вы и сделаете файл меньшим весом, смысла в этом будет мало, тк для размещения 1го файла на диске _реально_ требуется не меньше именно 4кб, те если даже файл будет занимать 100 байт, на диске под него все равно выделится 4кб, нууу разве что из чисто эстетических целей приятно видить размер меньше 4кб :))) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.057 |