Читаем Язык программирования Euphoria. Справочное руководство полностью

Здесь сгруппированы подпрограммы, которые пригодятся вам, если вы решите поработать со своей машиной на уровне машинных кодов. Предлагаемый интерфейс низкого уровня позволяет вам читать и записывать данные и код непосредственно в оперативной памяти. Это значит, что вы можете разрабатывать свои собственные подпрограммы в кодах машин 386+ и вызывать их на исполнение.

Некоторые из подпрограмм, перечисленных ниже, не являются безопасными в том смысле, что Euphoria не сможет подстраховать вас при некорректном их использовании. Вы рискуете "подвесить" свою программу, операционную систему или даже машину, если сделаете что-то не так, как следовало бы. Если под DOS32 вы обратитесь к негодным адресам в памяти, то в дело вступит расширитель DOS CauseWay, и вы получите от него на экране сообщение об ошибке плюс распечатку информации на машинной тарабарщине в файле cw.err. Под WIN32 операционная система выдаст вам обычную свою табличку о прерывании прогона вашей программы со скупым диагностическим сообщением плюс информацию из регистров процессора. Под Linux в типовом случае вы получите аварийную остановку программы и сообщение о нарушении сегментации.

Примечание: Чтобы помочь программистам в этих рискованных занятиях, мы поставляем библиотечный файл safe.e, как отладочную замену файла machine.e. Если вы скопируете safe.e из каталога euphoria\include\ в каталог, содержащий вашу программу, и переименуете safe.e как machine.e в этом вашем рабочем каталоге, ваша программа будет исполняться с использованием более безопасного, но и более медленного, варианта обычных подпрограмм низкого уровня. Этот safe.e может отловить многие ошибки, в том числе и такие, как запись в память по негодным адресам. Просмотрите комментарии в начале файла safe.e, чтобы получить полную инструкцию по его применению и оптимальному его конфигурированию под вашу программу. Подпрограммы интерфейса уровня машины очень важны для продвинутого программирования, так как они позволяют Euphoria-программистам получить доступ ко всем ресурсам, заложенным на низком уровне в ваше оборудование и вашу операционную систему. В некоторых особо ответственных случаях данная возможность может иметь решающее значение.

Подпрограммы в машинных кодах могут быть написаны вручную или же получены путем дизассемблирования выходных файлов компиляторов Си или некоторых других языков. Пит Эберлейн написал "мини-ассемблер" для использования с Euphoria. Просмотрите Архив файлов. Не забывайте, что ваш машинный код будет исполняться в 32-разрядном защищённом режиме. Просмотрите файл demo\dos32\callmach.ex, чтобы получить более конкретное представление о деталях этого дела.

peek (читать_из_памяти)

- выдаёт один или более байтов из памяти с заданного адреса

peek4s (читать_из_памяти_4_байта_и_знак)

- выдаёт 4-х байтовую величину со знаком из памяти с заданного адреса

peek4u (читать_из_памяти_4_байта_без_знака)

- выдаёт 4-х байтовую величину без знака из памяти с заданного адреса

poke (записать_в_память)

- записывает один или более байтов в память, начиная с заданного адреса

poke4 (записать_в_память_4_байта)

- записывает 4-х байтовую величину в память по заданному адресу

mem_copy (копировать_память)

- копирует в памяти последовательность байтов с одного заданного адреса по другому

mem_set (заполнить_память)

- устанавливает все байты заданного участка памяти в заданное значение

call (вызвать)

- вызывает на исполнение подпрограмму, написанную в машинных кодах

dos_interrupt (прерывание_dos)

- вызывает подпрограмму обработки прерывания DOS (DOS32)

allocate (выделить_память)

- выдаёт адрес свободного участка памяти заданного объёма

free (освободить_память)

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

allocate_low (выделить_память_внизу)

- выдаёт адрес свободного участка нижней памяти (адреса менее 1Mb) (DOS32)

free_low (освободить_память_внизу)

- освобождает участок памяти, ранее выделенный по команде allocate_low (DOS32)

allocate_string (поместить_строку_в_память)

- размещает в памяти заданную строку с нуль-терминатором и выдаёт её адрес

register_block (учесть_блок)

- регистрирует в списке безопасных блоков участок памяти, ранее уже выделенный какой-либо подпрограммой

unregister_block (вычеркнуть_блок)

- вычёркивает из списка безопасных ранее зарегистрированный блок памяти (см. выше)

get_vector (получить_адрес_вектора)

- выдаёт адрес обработчика прерывания (DOS32)

Перейти на страницу:

Все книги серии Euphoria

Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных