Трансляция и компоновка. Модели памяти взаимодействующих подпрограмм должны быть согласованы

Модели памяти взаимодействующих подпрограмм должны быть согласованы. Этого можно достигнуть, либо установив одинаковые модели для C-компилятора (команда Options+Compiler+ Code generation) и ассемблера (директива model), либо указав явно модификаторы подпрограмм и параметров-указателей (атрибуты near или far).

Компоновка может быть выполнена в интегрированной среде Borland C++. В этом случае следует использовать файл проекта, в который включить ОМ или ИМ ассемблерной ПП. В первом слу­чае потребуется только настройка компоновщика, во втором – и ас­семблера.

При настройке компоновщика с помощью команды Options+Linker+Settings следует обязательно включить режим Case-sensitive link (различение прописных и строчных букв).

При настройке ассемблера с помощью команды Options+Transfer следует в список Program Titles внести ассемблер (он там наверняка уже будет) и правильно задать для него путь доступа (Program Path) и командную строку (Command Line), которая может выгля­деть так – /MX /ZI $TASM. Здесь ключи задают, соответственно, для глобальных имен различать строчные и прописные буквы и вклю­чать полную отладочную информацию. Параметр $TASM обязате­лен.

Допустимо использование для компоновки непосредственно компоновщика TLINK, в этом случае в командной строке обяза­тельно следует задать ключ различения строчных и прописных букв в именах – /c.

ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫ

В разделе приведен пример ассемблерной подпрограммы, вы­полняющей подсчет количества символов и количества строк (в смысле последовательность символов, завершающаяся \n) в строке (массиве символов), завершающейся нулевым байтом. Пример представлен в двух вариантах: с интерфейсом Pascal и C.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: