| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Детский вопрос знающим masm32 |
| Автор: VictorBondarenko 2.3.2008, 11:54 |
| Уважаемые друзья! Я работаю в досе в незащищенном режиме. Модель памяти беру .model tiny Моя прога формирует код по адресу 1000h:100h После формирования я хочу выполнить этот код. В Tasm я делал так call far 1000h:100h и все работало отлично. Masm32 такую команду считает ошибочной. Мне советовали push cs push 100h retf не работает. Я даже пробовал от отчаяния jmp 1000h:100h Все ерунда. Посоветуйте, что делать в таких случаях. С уважением, Виктор |
| Автор: AndNot 2.3.2008, 12:26 |
| Правильно делает, что не работает |
| Автор: VictorBondarenko 2.3.2008, 12:36 |
| Ну конечно же я делал mov ax,1000h mov cs,ax push cs mov di,100h push di ; если дать push 100h выдает грамматическую ошибку retf не работает |
| Автор: AndNot 2.3.2008, 14:26 | ||||
| Во первых, попробуй call dword ptr 1000h:100h. За масм не гарантирую, но тасм, в режиме масма, вроде бы проглатывал. А во вторых, зачем портишь CS? Сам подумай, какая инструкция будет выполняться, если CS станет 1000h? Не ломай голову - 1000h:IP, т.е. следующей инструкцией будет не твоя, а что-то другое. Сделай проще:
Добавлено через 13 минут и 45 секунд Забыл добавить
|
| Автор: VictorBondarenko 2.3.2008, 15:10 |
| Спасибо AndNot ! Буду пробовать. |
| Автор: dumb 2.3.2008, 17:20 |
брал бы сразу masm64 - чего уж... с чего тебя вообще на masm32 потянуло? - под DOS-ом ты его даже запустить не сможешь... |
| Автор: dumb 3.3.2008, 02:30 |
| спасибо за старания это становится очевидным уже даже из того факта, что во всех подобных топиках приводятся сообщения об ошибках именно линкера, а не ассемблера. и таки основная направленность этого пакета - win32, иначе авторы вложили бы и 16-битный компоновщик. а уж объяснять все эти тонкости людям, пишущим "хелло ворлд" - увольте-с. для меня проще - посоветовать, а для вопрошающего - использовать другой пакет. в данном случае - неосознанностью. |
| Автор: AndNot 3.3.2008, 05:39 | ||||||||||
Добавлено через 1 минуту и 7 секунд
|
| Автор: VictorBondarenko 3.3.2008, 14:06 |
| Спасибо AndNot ! mov ax,1000h push ax mov ax,100h push ax retf работает отлично. А по по поводу того, почему masm32. Да не почему, просто он был у меня вот и все аргументы. А что masm64? Там что-то покруче? Скажите в двух словах, кто раболал с ним . Если отзывы хорошие,то буду искать его. Спасибо всем, Виктор |
| Автор: sergejzr 3.3.2008, 16:57 |
| Модератор: Название темы должно отражать ее суть! |
| Автор: dumb 3.3.2008, 17:22 | ||||||
| http://forum.vingrad.ru/index.php?showtopic=154815&view=findpost&p=1156173 фраза про "подобные топики" должна была лишь показать, что способность компилить 16-битный код не относится к разряду тайных знаний. разговор шел о пакете masm32, а не о "родственных связях" masm'а.
не стоит понимать все так буквально! но должен извиниться: я попросту не обратил внимания, что в твоем примере была фраза "Hello World"
это шутка была. на всякий случай напомню, что это аналог не call'а, а jmp'а. ps. AndNot, можно я откланяюсь? - нет желания вести спор не о чем. |
| Автор: AndNot 4.3.2008, 17:05 | ||
Видно мы просто по разному поняли вопрос. Для меня разговор шел о компиляторе масма, взятого из пакета Хатча, но не о самом пакете, что довольно разные вещи, ИМХО. Ну да ладно, проехали
Как будто я могу помешать |