Помощь - Поиск - Пользователи - Календарь
Полная версия: Использ-ие ассембленой вставки в Borland C++ for DOS
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Account
Не подскажете какую биюлиотеку так сказать подключить в #include чтоб можно было вставлять
ассемблерый код не указаниме в каждой строке что далее идет код ассемблера
Код
asm mov ax,a


а просто
Код
asm
{
<код ассемблера>
}


а то в документации пример есть а что то не написано что подключить(
volvo
А ничего подключать не надо. Скобка (открывающая) должна быть на той же строке, что и слово asm:
asm {
<код ассемблера>
}
Account
Спасибо)
Account
volvo, запускаю под виндой в тотже борланд с++ только под винду компилю допустим
#include <stdio.h>
#include <iostream.h>
void main()
{
int a=2;
asm{
mov ax,a ;
mov bl,2 ;
div bl ;
cbw ;
mov a,ax ;
}
cout<<a<<endl;;
cout<<"Stroka!";
getchar();

}


Окно результата потом как правильно закрывается не знаешь, а то висит, пробовал комбинации клавишь разные ничего не действует, можно просто закрыть но тогда в процессах висит ntvdm.exe
ТОт же результат после запуска exe-ника(
volvo
Не знаю, что ты имеешь в виду под Борланд С++, но вот это прекрасно работает:
Нажмите для просмотра прикрепленного файла

Чем не Борланд? Ты лучше расскажи, почему необходимо именно вставками решать эту задачу? Средств языка уже недостаточно, надо обязательно сделать программу непереносимой не то что на другие ОСи, так даже и на другие компиляторы? С++ не для этого создавался...
Account
volvo, ты не понял компилится то нормально, но вот если под винду компилить, там присутсвиет оболочка для работы в винде, а не в досе, то не пойму как убирать окно работы программы (справа снизу, окно выполнения) если просто закрыть его то как писал выше в процессах висит ntvdm.exe и его подпроцесс wowexec.exe

А по поводу вставки это для так сказать общего развития интересуюсь)
volvo
Цитата
ты не понял компилится то нормально
Это ты не понял, я тебе привел кроме окна редактора еще и содержимое Output, а значит, программа мало того, что откомпилировалась, так еще и отработала и благополучно вернулась в редактор.

Цитата
не пойму как убирать окно работы программы
В программе у тебя написано getchar(); - значит, надо нажать что-нибудь на клавиатуре, когда это окно активно? Но с Windows-окнами getchar() может отказаться работать. Я не помню, в твоем компиляторе есть возможность создать консольное приложение (где-нибудь в Options)? Если да, то это единственный вариант нормально завершить программу.

А вообще - выброси этот компилятор, он настолько стар что ты будешь учить на нем не С++, а учиться обходиться без привычных в других компиляторах средств, и все время писать костыли, потому что "этого в BC нельзя, и вот этого нельзя, и здесь тоже придется обойтись по-старинке".
Account
volvo, на нажатие клавиши он вроде как реагирует , в заголовке окна меняется сообщение, но вот выполнение почемут о не завершается, но это ладно, лучьше посоветуй тогда нормальную среду?))

Я для себя года 4-5 назад изучал С, сейчас вот надо вспоминать)))

А вообще буду делать решение нелинейных уравненний методом итераций, Ньютона, интерполяцию функций с помощью полинома Лагранжа, решение интегралов по формуле трапеций и Симпсона)
Впринципе кое что уже ранее делал на паскале)
volvo
Цитата
лучьше посоветуй тогда нормальную среду?))
Из бесплатного: Code::Blocks с компилятором gcc (сам пользуюсь, по-моему, кого-то из форумчан перетянул на нее тоже smile.gif ) или MSVC (этим не пользуюсь и не хочу, но она бесплатна в Express Edition).

Только вот и там и там про вставки придется забыть, потому что они хоть и есть, но в очень разном формате. Лучше обходиться средствами самого языка.
Account
volvo, очередной раз спасибо за совет, воспользуюсь первой ссылкой, вещица гляжу компактная, да и вообще я как то пользовался gcc в FreeBSD)).

А вставками я просто баловался, эксперементировал)))
Account
volvo, а как в Code::Blocks скомпилить exe-ник?
Создаю консольное проект, там генерируется простой код по выводу стандартной фразы, вроде компилю, а исполняемого файла не появляется)))

volvo
Содержимое Build Log - в студию smile.gif
Account
Вот
P.S. Извиняюсь за дублирование
volvo
Зайди в "Project -> Build Options", измени компилятор с "GNU GCC Compiler" на "Cygwin GCC", и пересобери проект... И, чтобы не делать это каждый раз, потом, ДО открытия рабочего проекта сделай то же самое для IDE: "Settings -> Compiler and Debugger"
Account
Всеравно тоже самое(
volvo
Не понял... Ты какой файл качал по ссылке, что я дал? Который "codeblocks-8.02-setup.exe" или "codeblocks-8.02mingw-setup.exe"? Если первый, то тебе надо установить компилятор самостоятельно, он не идет в комплекте. А если второй - то должно быть все в порядке при Cygwin GCC... Показывай окно настройки компилятора, и смотри, 1) есть ли такая папка, которая в нем указана 2) есть ли все те EXE-файлы, которые указаны ниже:
Account
Ты прав, по поводу скачанных файлов, я тоже пока тебе надоедал, стал подозревать что нужен второй, поставил его на закачку))
Счас установлю и отпишусь)

Добавлено через 17 мин.
volvo, все сделал, заработало) Благодарю за помощь)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.