|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Май 14, 2004 03:50:05 Зачем *.com? Должен загружаться с дискеты (что-то вроде загрузочной). Ниже приведен листинг программы, которая обрабатывает прерывания поступающие от мыши (com port1). При компиляции всё прекрасно работает. Но получается exe-шник. Для com-а определяю сегмент, ставлю необходимые параметры при линковке и др. компилирую появляется дофига предупреждений и ошибок. Исправляю ошибки ничего не работает. Просто уже запарился. Люди посмотрите листинг посоветуй что-нибудь. Спасибо за любую помощь. _48804492__LIST.ASM |
|
|
Дата: Май 14, 2004 10:04:44 · Поправил: Anonimka Брр... В общем, сегмент в com-программе один единственный, а ты там стек определяешь... не надо. Точка входа всегда 100h, и что там стоит, то и будет выполняться. Значит, первыми по-любому должны быть команды, а не данные. P.S. Ты лучше исправленный исходник покажи, конечный вариант com-а, который компилируется. |
|
|
Дата: Май 14, 2004 14:00:17 .286 .model tiny .code org 100h begin: ... ... int 20h end begin tasm program.asm tlink program.obj /t а дальше получаешь свой program.com |
|
|
Дата: Май 14, 2004 14:04:08 едрЁн батон !!! Ахтунг !!! Вот ты там понагародил то !"!!! Зачем всё так сложно то ???? Честно гоаоря я не совсем понимаю , а что значит "Должен загружаться с дискеты (что-то вроде загрузочной). " ?? |
|
|
Дата: Май 14, 2004 21:17:42 · Поправил: defvitguru P.S. Ты лучше исправленный исходник покажи, конечный вариант com-а, который компилируется. Как раз это я и пытаюсь сделать. А приведённый листинг прекрасно компилируется, но только в exe. Я читал, что что-бы получить com файл обязательно нужно: prg segment assume cs:prg,ds:prg,es:prg,ss:prg org 100h ...а что значит "Должен загружаться с дискеты (что-то вроде загрузочной). " ?? Комп загружается с дискеты и начинает обрабатывать прерывания мыши поступающие с ком порта. А перед этим я записываю прогу на 2-3 дорожку дискеты. |
|
|
Дата: Май 14, 2004 22:31:37 Уфф.. А можно посоветовать сначала все-таки попробовать переделать так, как говорят учебники? Это ж в любом есть.. В общем, как и было сказано, в com-программе один сегмент, стек непосредственно не определяется (ss:sp указывает на тот же единственный сегмент, только с конца), org 100h вначале. Ну RTFM же! |
|
|
Дата: Май 16, 2004 11:33:29 итак, тебе необходим файл типа ком, но не ком, поскольку ты грузишься с дискеты, кстати, а кто загружает твою прогу ??? тебе для этого нужен загрузчик, а он уже должен быть исполнен по определённым правилам(прикрепляю примерчик). Или твоя прога сама исполняет это действо ??. В таком случае , стэк и все сегменты тебе придётся настраивать только самому, и не забудь, что БИОС работает на стеке пользователя, так как INT13h юзать тебе всяко придётся. А вообще, смотри примерчика загрузчика. Небольшой, простенький, разберёшься. 1179341283__BL.ASM |
|
|
Дата: Май 16, 2004 22:43:32 Спасибо за загрузчик! Ладно. Объясняю проблему. В институте дали задание. Задание: Составить программу, которая бы, загрузившись с загрузочной дискеты, обрабатывала бы прерывания мыши и показывала перемещение курсора, а по клику правой кнопки завершала бы работу. Вот! 1. Загрузчик у меня есть. См. внизу. 2. Обработчик прерывания мыши тоже есть. Проблема заключается в том, что мне необходимо переделать (или настроить) листинг так, что бы он компилировался в ком файл, пока он настроен только на exe. Если я не ошибаюсь, то загрузчик может загружать ком файлы а не exe. Если это не так пожалуйста исправьте меня. Большое спасибо. _106287628__3.asm |
|
|
Дата: Май 17, 2004 14:59:36 Если я не ошибаюсь, то загрузчик может загружать ком файлы а не exe. Если это не так пожалуйста исправьте меня. ехе файл - это файл, имеющий сложную структуру, и требует для своей загрузки ось, которая настроит сегменты, релокэшэны и тд. Кончно, можно сделать всё это самостоятельно, но, зачем усложнять себе жизнь. К тому же, если на то пошло, тебе категорически запрещено использовать сервисы ос, так как её просто нет там. Поэтому, юзаем ком, как наиболее простой и удобный формат, а главное понятный. так что - всё правильна :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.116 |