информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Атака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
в основном smile'y. 21.11.01 01:15  Число просмотров: 1049
Автор: kar Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Везде надо не dword ptr, а far ptr, или проcто call
>
>

> .MODEL Large,Pascal
>
> EXTRN Sound: FAR
>
> .DATA
> ; put external data here
> EXTRN i: Byte
>
> .CODE
> PUBLIC Init
> Init PROC FAR
> mov ax, 500
> push ax
> call Sound
> ret
> Init ENDP
> END

хотел вот уто4нить кое-4то:
1.здесь кажется нужно писать proc вместо far( EXTRN Sound:proc ),процедура
как никак.
2.4e за модель такая,pascal?;)
и главное:
.DATA
EXTRN i: Byte
.немножко непонял смысла этой записи...

<programming>
[PAS&ASM]Объектный file из pas-процедур (obj-library). 17.11.01 20:52  
Автор: kar Статус: Незарегистрированный пользователь
<"чистая" ссылка>
такой трабл:
пишу прогу на асме,нужно подгрузить процедуры,написанные на пасе.

хотелось бы pas-progs скомпилить в obj.
это возможно?
Прога под Dos или Win? По моему нормально это сделать нельзя для BP 7.0 19.11.01 13:07  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
есть правда утилита binobj.exe
но это совсем не супер :(

В принципе в дельфях есть возможность генерить obj файлы,
но для дос это мало помогает.



нет я извиняюсь меня кто ваще видит? 19.11.01 12:23  
Автор: kar Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> такой трабл:
> пишу прогу на асме,нужно подгрузить процедуры,написанные на
> пасе.
>
> хотелось бы pas-progs скомпилить в obj.
> это возможно?

hm...
Может, проще сделать ? 20.11.01 12:06  
Автор: Chingachguk <Chingachguk> Статус: Member
<"чистая" ссылка>
Если я правильно понял, есть довольно большая прога на asm и хочется что-то дергать из нее на pas ? Например, интерфейс или форматированный вывод ?

В этом случае есть такой вариант:

Все-таки делаешь свою прогу на asm в виде obj и подключаешь ее
к pas. Вызываешь ее основную процедуру из паса в самом начале программы (begin / external call / end.).
В asm - программе те ф-ции паса, которые тебе нужны, объявляешь в заголовке как extrn, например:
;...
extrn sound:far
extrn delay:far
extrn nosound:far
;...
;И вызываешь их в коде на asm(выдать звук):
; Sound(100);
push 100
call dword ptr Sound
; Delay(500);
push 500
call dword ptr Delay
; NoSound;
call dword ptr NoSound.
Может, проще сделать ? 20.11.01 20:29  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
[skipped]
> ;И вызываешь их в коде на asm(выдать звук):
> ; Sound(100);
> push 100
> call dword ptr Sound
> ; Delay(500);
> push 500
> call dword ptr Delay
> ; NoSound;
> call dword ptr NoSound.

Везде надо не dword ptr, а far ptr, или проcто call


.MODEL Large,Pascal

EXTRN Sound: FAR

.DATA
; put external data here
EXTRN i: Byte

.CODE
PUBLIC Init
Init PROC FAR
mov ax, 500
push ax
call Sound
ret
Init ENDP
END

в основном smile'y. 21.11.01 01:15  
Автор: kar Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Везде надо не dword ptr, а far ptr, или проcто call
>
>

> .MODEL Large,Pascal
>
> EXTRN Sound: FAR
>
> .DATA
> ; put external data here
> EXTRN i: Byte
>
> .CODE
> PUBLIC Init
> Init PROC FAR
> mov ax, 500
> push ax
> call Sound
> ret
> Init ENDP
> END

хотел вот уто4нить кое-4то:
1.здесь кажется нужно писать proc вместо far( EXTRN Sound:proc ),процедура
как никак.
2.4e за модель такая,pascal?;)
и главное:
.DATA
EXTRN i: Byte
.немножко непонял смысла этой записи...

в основном smile'y. 21.11.01 09:25  
Автор: :-) <:-)> Статус: Elderman
Отредактировано 21.11.01 09:27  Количество правок: 2
<"чистая" ссылка>
> хотел вот уто4нить кое-4то:
> 1.здесь кажется нужно писать proc вместо far( EXTRN
> Sound:proc ),процедура
> как никак.
нет, надо far

> 2.4e за модель такая,pascal?;)
это чтобы удобнее писать процедуры - не устанавливать самому фрейм
push bp
mov bp, sp
...
pop bp
это будет делаться автоматически. Параметры процедуры можно просто перечислить в ее заголовке:
PROC Init x:Byte, у:Byte
(не помню точный синтаксис)
и в процедуре обращаться к ним просто
mov al, x
а компилятор будет сам их адресовать относ. bp
В паскале объявить ее: procedure Init(x:Byte, y:Byte); Exterlnal;


> и главное:
> .DATA
> EXTRN i: Byte
> .немножко непонял смысла этой записи...

Тут надо объявлять переменные, объявленные в pas проге, к которым ты хочешь получить доступ из asm кода.
напр. если в Паскалевской проге объявлена
var
i: Byte;
то объявив ее
EXTRN i: Byte
можно обратиться к ней так:
mov i, 1
Thank$ all. 21.11.01 12:43  
Автор: kar Статус: Незарегистрированный пользователь
<"чистая" ссылка>
см выше
Я вижу 19.11.01 13:22  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
> > такой трабл:
> > пишу прогу на асме,нужно подгрузить
> процедуры,написанные на
> > пасе.
> >
> > хотелось бы pas-progs скомпилить в obj.
> > это возможно?
>
> hm...

Ты навероне под ДОС пишешь на Турбо Паскале? Турбо Паскаль .obj не делает :( Возможный вырианты:
1) писать основную прогу на pas и вызывать asm из нее
2) переписать pas-процедуры на C (pas2c тебе поможет)
3) найти компилятор Паскаля, делающий .obj (я таких не встречал)

З.Ы. Дельфи делает .obj, правда не помню какие - COFF или OMF
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach