| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > ошибка |
| Автор: try_to_get 5.8.2007, 18:20 | ||
Написал все как в книге, а исполняемый файл не создался?!
Где ошибка никто не занет? |
| Автор: try_to_get 5.8.2007, 18:41 | ||
|
| Автор: cardinal 5.8.2007, 18:44 |
| Пропиши полностью название файла. Мне кажется в этом загвоздка... |
| Автор: try_to_get 5.8.2007, 18:49 |
| Урааа.... |
| Автор: cardinal 5.8.2007, 18:52 |
| Не за что... |
| Автор: try_to_get 5.8.2007, 18:53 |
| А почему он так много весит? 1 024 bytes |
| Автор: cardinal 5.8.2007, 19:17 |
| Открой каким-нибудь Hex-Editor'ом и посмотри в нем размер... |
| Автор: Shaggie 7.8.2007, 07:44 | ||
http://forum.codenet.ru/showthread.php?t=40165&page=2 |
| Автор: try_to_get 7.8.2007, 07:57 |
| Shaggie У меня еще один есть компилятор MASM он создает файл с размером примерно 500 байт, где- то еще читал WASM чтоли создает 81 байт что они не придесживаются стандарту PE-файлов??? |
| Автор: try_to_get 7.8.2007, 09:11 | ||||
Вот здесь видел http://ruasm.ru/asm2/ch04_02.php, там внизу такая запись:
http://ruasm.ru/asm2/ch01_01.php здесь написано, что WASM создан Watcom |
| Автор: Shaggie 7.8.2007, 09:42 | ||
| Ага, Watcom Assembler... посыпаю голову пеплом У исполняемых файлов под DOS другой заголовок. Точнее сказать, современный PE-формат файлов в Windows является расширением MZ-формата DOS. Насколько я помню (могу ошибаться), в DOS заголовок файла 64 байта, плюс код - как раз получается 81 байт. Но такой файл не будет запускаться в Windows. Из того же листинга
Это устаревшая директива создания .exe файла, сейчас используется .model flat Плюс ко всему в коде используется 1) 16 разрядные регистры, 2) 21 прерывание. Если использование 16 разрядных регистров просто неэффективно, то практически к любому прерыванию напрямую из-под защищённого режима операционной системы обращаться запрещено. |
| Автор: try_to_get 7.8.2007, 10:02 |
| У меня возник вопрос насчет регистров!? Не зняю правильно ли я понял! регистры eax, ecx и т.д. 32 разрядные. У меня процессор 64 разрядный, значит у него есть 64 разрядные регистры? Это так или я ошибаюсь? |
| Автор: Shaggie 7.8.2007, 10:07 |
| Не ошибаешься. Только чтобы работать с 64 разрядными регистрами, нужна поддерживающая их операционка :( И вообще народ серьёзно спорит о том, нужна ли на десктопе 64 разрядность. Бывают мнения, что это не есть гут. Однако если только учишься - сначала классический 32 разрядный ассемблер освоить нужно. |
| Автор: try_to_get 7.8.2007, 10:10 |
| Понятно! Добавлено через 6 минут и 6 секунд Shaggie, спасибо за помощь! Я думаю, вопрос решен и тему можно закрыть. |
| Автор: W4FhLF 7.8.2007, 10:23 |
| try_to_get, в твоём распоряжении есть ещё куча регистров, помимо основных 7ми. FPU(80 бит), MMX(64 бита), XMM(128 бит). Но, конечно же, область их применения ограничена, в качестве регистров адресации они использованы быть не могут. |
| Автор: somewhere 8.8.2007, 09:53 |
По сути один и тот же регистр, но стоит добавить что их восемь по 80 бит. |
| Автор: Samotnik 9.10.2007, 10:57 |
| а можно вопрос! почему собственно ты используешь режим .386 а к регистрам обращаешся в 32-р режиме???? |