Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прерывания в C++Builder, Обсуждается использование прерываний 
:(
    Опции темы
ParaPik
Дата 9.1.2009, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



Как программа общается с DOS? Через прерывания(и всем это уже давно известо). Но почему C++Builder не дает их нам использовать. Хотя тажа библиотека "iostream" использует низкоуровневые прерывания компьютера. Я начну тему сразу с вопроса: "А как пазрешить использование прерываний в этом компиляторе?" 
PM MAIL   Вверх
Romikgy
Дата 9.1.2009, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



С++ builder работает в виндовс среде , там своя песня с прерываниями , а для доса надо имхо досовский компилятор там есть хедер вроде как interrupt.h там все есть


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Dem_max
Дата 9.1.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Смотря для каких целей нужны тебе прерывания.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
ParaPik
Дата 9.1.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



C++Builder  переводит весь код в assembler, который переводит в объектный код TASM. Так почему же, если писать для него на чистом assembler, то все в норме(для TASM).
Компилирует Builder без проблем. Но во время исполнения...
Ну, а для чего. К примеру, для вывода строки:
Код

char * string = "Hello, World!";

__asm
{
Код

           mov es, ds
           lds dx, string
           mov ah, 9
           int 21h

           mov ds, es

}

Это сообщение отредактировал(а) ParaPik - 9.1.2009, 20:18
PM MAIL   Вверх
Dem_max
Дата 9.1.2009, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



выводи строку стандартными библиотечными средствами средствами, и не парься по поводу DOS прерываний


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
586
Дата 9.1.2009, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



Есть досовские 16 битные исполняемые файлы. Билдер компилирует 32-битные исполняемые файлы, предназначенные для выполнения под Windows. А в Windows нету досовских прерываний. Плоский режим адресации. Доступ к портам ввода-вывода ограничен (после Windows 98 по умолчанию запрещён). 
PM   Вверх
Romikgy
Дата 9.1.2009, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(586 @  9.1.2009,  19:55 Найти цитируемый пост)
А в Windows нету досовских прерываний

шютник да....
Цитата(586 @  9.1.2009,  19:55 Найти цитируемый пост)
Билдер компилирует 32-битные исполняемые файлы, предназначенные для выполнения под Windows. 

правильно
Цитата(586 @  9.1.2009,  19:55 Найти цитируемый пост)
Есть досовские 16 битные исполняемые файлы. 

но есть режимы доса и 32 битные
Цитата(ParaPik @  9.1.2009,  19:13 Найти цитируемый пост)
C++Builder  переводит весь код в assembler, который переводит в объектный код TASM. Так почему же, если писать для него на чистом assembler, то все в норме(для TASM).
Компилирует Builder без проблем. Но во время исполнения...

компилит но структура виндовая к досу отношение опосредственое


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
586
Дата 9.1.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



Цитата(Romikgy @  9.1.2009,  21:08 Найти цитируемый пост)
Цитата
А в Windows нету досовских прерываний

шютник да....

Винда не обрабатывает 21h прерывание. Разве не так?  smile 
А прерывание int 2eh - не досовское. Про него я ничего не писал.  smile 

Это сообщение отредактировал(а) 586 - 9.1.2009, 22:23
PM   Вверх
Romikgy
Дата 9.1.2009, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(586 @  9.1.2009,  21:22 Найти цитируемый пост)
Винда не обрабатывает 21h прерывание. Разве не так?

а дос это не только21 прерывание!
а при большом желании можно сделать что и винда будет понимать 21 прерывание smile  smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Rififi
Дата 10.1.2009, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 1
Всего: 36



ParaPik, 
Как программа общается с DOS?
windows программа - никак. по причине неимения dos.

PM MAIL   Вверх
ParaPik
Дата 10.1.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



Ладно. Тогда объясните, как работает, например, класс "ostream". Здесь без прерываний никак. В Builder есть heder-файл "dos.h". Там же есть функция, которой передаешь номер прерывания. Там же есть есть функции для создания новых окон эмулятора DOS. Я еще попробую C++Builder 5.02. Вроде написано, что он поддерживает 16-битные фаилы DOS.
PM MAIL   Вверх
ParaPik
Дата 10.1.2009, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



Установил С++Builder 5.02. Результатов ноль. Он даже, когда видит хотя бы одну строчку кода на ассемблере, вообще выкидывает, что не может найти Tasm32.exe.
PM MAIL   Вверх
Romikgy
Дата 11.1.2009, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



для какой те цели нужны прерывания?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ParaPik
Дата 11.1.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



Например, для написания собственной библиотеки под DOS.
PM MAIL   Вверх
taiven
Дата 11.1.2009, 20:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 30.6.2008

Репутация: 3
Всего: 9



Цитата(ParaPik @  11.1.2009,  19:51 Найти цитируемый пост)
Например, для написания собственной библиотеки под DOS. 

Borland 3.1  smile 
PM   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0644 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.