Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Dll на ASMеё


Автор: Mephisto 27.4.2004, 17:18
Люди, раздуплите как создать библиотеку с внешней функцией на асме. Функцию мона сделать элементарную. Вполне подойдет inc. Так чтобы я передал байт, она сделала inc. Я забрал байт.
Очень нуна. Спасибо всем кто ответит!

Автор: Akina 27.4.2004, 17:54
DLL by Babek
TASM | 7.29 kb
Создание и использование динамической библиотеки
http://www.wasm.ru/srclist.php?list=6

Автор: Kurt 29.4.2004, 23:38
Сегодня понадобилась библиотека с функцией, к-я переводит BigInt в SmallInt. Я тебе ее скидываю - можь, поможет.
Написана на MASM:
Код

;myDLL.asm
;this unit is only for MASM compilier!
.486
.model flat
public _IntConvert@4;function returns iverted integer value
.data?
tmpValue dd ?
.code
_start@12:
mov eax,1
ret 12
_IntConvert@4 proc
pop ecx
pop eax
bswap eax
push ecx
ret
_IntConvert@4 endp
end _start@12

Автор: Mephisto 6.5.2004, 17:52
Люди, шо я делаю неправильно?
Код
Public MaximTest
Code Segment byte public 'CODE'
Start:
assume cs:Code
MaximTest Proc
mov dx, 378h
in al, dx
mov ah, al
shl ah, 7
cmp ah, 128
je Left
shr al, 1
cmp al, 100b
jne exit
mov al, 10001b
jmp exit
Left:
shl al, 1
xor al, 11b
cmp al, 1
jne exit
mov al, 64
exit:
out dx, al
ret
MaximTest EndP
Code ends
end Start

Сделано на ТАСМе. Не хочет компилировать ДЛЛ. withstupid.gif

Автор: Mephisto 12.5.2004, 16:48
Есть у кого очень простой пример на тасме. Просто я очень давно не писал в асме. Тогда ещё не было такого понятия как длл и внешних функций, появилось достаточное количество непонятных для меня регистров. Просто последний раз писал прогу на асме ещё в 10 лет. smile.gif
Нужен очень простой пример! Плиз. Все попытки приводят к одной ошибке "Не удается создать СОМ файл" или что-то вроде этого. Если кто может, помогите написать для примера внешнюю функцию с одной входящей переменной ByRef(ссылка на переменную), в самой функции будет её инкремент, конец функции.

Автор: Lan 12.5.2004, 18:25
Цитата
Люди, шо я делаю неправильно?

Во-первых, DLL линкуется в TASM'е со специальным ключём.
Во-вторых, сама структура программы у тебя неправильна. Например, должна быть функция инициализации DLL.

Автор: Mephisto 12.5.2004, 18:44
Цитата
Во-первых, DLL линкуется в TASM'е со специальным ключём.

Да, есть такое дело. Линкую именно как длл.
Цитата
Во-вторых, сама структура программы у тебя неправильна. Например, должна быть функция инициализации DLL.

Если мона тут подробнее. notify.gif

Автор: Jin X 15.5.2004, 22:40
http://pascal.sources.ru/asm/faq/index.htm#dll

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)