|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.06.2008, 15:58 | #1 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Правильная работа из под Win с прерываниями в МАСМ
Позволю себе понадоедать наверное заежженным вопросом. Поскольку асм у меня еще на стадии изучения то всего не знаю. Вот стало интересно вспомнить работу с прерываниями. Нашел литературку читаю.
Там есть пример: Код:
Но под виндой вызов прерывания ведет куда-то в Exception-обработчик Вопрос: Как правильно в МАСМ делать приложения, работающие с прерываниями? Вроде как нельзя с прерываниями работать, но как тогда работают старые бейсиковские программы, в которых целый набор ДОС прерываний. Может компилить как то нужно. В общем не откажусь от обьяснений и ссылок по этому поводу. ...А еще на всякий пожарный добавлю что работа ведется в ring3
I'm learning to live...
|
06.06.2008, 16:05 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Ну так программа-то под Win32? Тогда GetSystemTime/GetLocalTime/GetTickCount/INT 2AH
-------- P.S. Int 21h под виндами - пустой гейт, потому exception и поднимается. Последний раз редактировалось B_N; 06.06.2008 в 16:08. Причина: Уточнил. не просто Windows, а Win32 |
06.06.2008, 16:15 | #3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А старие программы то как работают? Кто-то ж их эмулирует?
Вот TP7 то это вот: Код:
I'm learning to live...
Последний раз редактировалось Stilet; 06.06.2008 в 16:34. |
06.06.2008, 16:34 | #4 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
DOS - подсистема NTVDM.EXE. А под Win32 прерывания выглядят вот так: (по "материалам" WinDbg.exe)
Цитата:
|
|
06.06.2008, 16:47 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Интересно как же тогда паскаль компилит...?
I'm learning to live...
|
06.06.2008, 17:01 | #6 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
|
06.06.2008, 17:06 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Хм. Я кажись начинаю понимать.
Теперь скажи пожалуйста как откомпиленый в МАСМ код запустить из под NTVDM? Как его оформлять я понял, но как запустить из командной строки? Например такое: Код:
I'm learning to live...
|
06.06.2008, 17:36 | #8 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Stilet, ну так экзешник-то линкуется под Win32, линкером link32.exe (он, кажется вообще под ДОС линковать не умеет, давно таким извратом не занимался , не помню точно по версиям MASMa, сейчас сам смотрю его ключи). Можно поискать старый линкер...
А вот это: Цитата:
----------------------------- Вот, кажется, старый линкер: ftp://ftp.microsoft.com/softlib/mslfiles/lnk563.exe Последний раз редактировалось B_N; 06.06.2008 в 17:47. |
|
09.06.2008, 09:27 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
В общем спасибо за ответы. Думаю тема исчерпана.
I'm learning to live...
|
|
09.06.2008, 20:05 | #10 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Правильная организация класса для работы с таблицей mysql | Choo | PHP | 10 | 08.08.2008 08:55 |
Правильная программа? | Надюха | Помощь студентам | 10 | 28.09.2007 14:40 |