Использование ассемблера в Delphi, математический сопроцессор. Урок 2-й.
Здравствуйте, сегодня мы с Вами поговорим об использовании ассемблера в Delphi, в частности математического сопроцессора.
На первом курсе в институте, мы изучали ассемблер. Всем выдали по большому учебнику — 450 страниц, мелким шрифтом. Помню как сейчас, открыл, посмотрел, закрыл. Ничего не понял. Целый месяц пытался изучать, результата — ноль. Потом бросил.. Подходил срок сдачи экзамена. Выручили видео уроки — объясняли понятно и довольно просто, с практической частью проблем не было. Недели через две, я снова открыл учебник и, о чудо ! все понятно. По крайней мере первые 50 страниц я осилить смог. В институте писал программы, кстати практически единственный из группы ). Но перейдем к нашему уроку.
В данном видео уроке рассказывается об использовании стека в математическом сопроцессоре, как загрузить число в стек, как получить квадратный корень из числа, как найти логарифм числа 10 по основанию 2. И об остальных вещах, без которых немыслимо дальше изучать ассемблер.
Понравилась статья? Жми: | Поделиться в соц. сетях |
стоит только понимать, что использование ассемблера (особенно в виде «вставок» в паскальный код) целесообразно на очень редких и специфичных задачах.
В свое время мне приходилось, в программе написанной на турбо делфи, переписывать математическую часть (научные рассчеты) на ассемблере. И действительно был выигрыш. Но это было уже очень давно по меркам IT прогресса. Это Turbo Pascal 7 и 386ые процессоры. С тех пор процессоры стали мощнее, а (что важнее) компиляторы умнее. И после компилятора код написанный на паскале может оказаться эффективнее чем тот же код написанный на ассемблере (ну если вы конечно не состоявшийся асс в ассемблере). Плюс у вас добавляется проблема зависимости от платформы. Если вы написали код для 32 битной системы. То не факт, что будет корректно работать на 63 битной. В случае паскале это проблема компилятора. (Можно считать уже решенная). А если вспомнить что RAD Studio теперь позволяет писать приложения для маков и андроида….. То опять же вам придется разветвлять свой код с учетом платформы самому.