· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Несколько вопросов от начинающего...

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Ноя 1, 2003 03:47:24

Да я всё о Win32 говорю!

Если ты объявляешь переменную как структуру...
А в чём тогда разница в секциях?
В .data данные хранятся прямо в файле, а для .data? — выделяется память при загрузке? Или дело только в инициализации?

Да, нет, вспоминаю всё, что прочитал о секциях.
Дело в выделении памяти и инициализации?


Дата: Ноя 1, 2003 03:53:09 · Поправил: Sk. Inc.

В учебнике Юрова есть глава о взаимодействии С-Ассемблер. Там написано, что для того, чтобы компилятор TASM сам заботился о взаимодействии этих языков, необходимо объявить процедуру следующим образом:
_asmproc proc с a:byte
При этом подчеркивание перед именем обязательно. "С" после "proc" указывает на язык. Так же, написано, что используется директива "MODEL" с операндом "C", хотя в примере написано просто "MODEL small"? Может это очередная его (Юрова) опечатка?

P.S. Вся глава, кажется, про Dos.


Дата: Ноя 1, 2003 04:01:10 · Поправил: Sk. Inc.

чём тогда разница в секциях
В случае с .data?, память для переменной выделяется при загрузке программы, в при .data, в самом EXE-шнике.
Если в .data объявлять переменную "MyVariable dd ?", то это будет равносильно "MyVariable dd 0" и знак вопроса в этом случае будет просто заменен на 0 в процессе компиляции.


Дата: Ноя 1, 2003 04:16:17 · Поправил: IceStudent

TASM
TASM...
Я за MASM'ом сижу...

Там написано:
имя_процедуры PROC [[модификатор языка]язык][расстояние]
с. 332

И потом таблица языков. Но кто его знает, как определять в примере? (Дискета, что с книгой, девственно чистой оказалось)
И ещё в таблице есть С и С++. А что, компилятор стерпит эти плюсы?
...
А, вот нашёл, тут "с" такая маленькая, что я в темноте не разглядел.
Но он пишет, что с директивой MODEL «мы доверяем компилятору...», а потом, что «при использовании конкретных программных средств организация... намного проблематичней»
И кому верить?
Поэтому я и не захотел объявлять глобальную cdecl, а буду объявлять прсто "с" в подпрограмме.

А как насчёт секций?
P.S. Уже понял, как я и думал...


Дата: Ноя 1, 2003 04:20:07 · Поправил: Sk. Inc.

IceStudent
А как насчёт секций?
А разве я не ответил (предыдущий пост от Ноя 1, 2003 04:01:10)?


Дата: Ноя 1, 2003 04:27:47

P.S. Вся глава, кажется, про Dos.
Да, там одни прерывания.
А читать про программирование в Windows — смех один, такое впечатление, что книга была написана в 97-98 годах...

А разве я не ответил
А разве я не поправил? Просто забыл P.S. поставить, а ведь надо было!

Спасибо за помощь!


Дата: Ноя 1, 2003 04:30:54

А разве я не поправил?
Похоже, что я успел прочитать пост до правки. Какой я шустрый ;)

Дискета, что с книгой, девственно чистой оказалось
А у меня нормальная, могу поделиться, если нужно :)


Дата: Ноя 1, 2003 04:46:08

А у меня нормальная, могу поделиться, если нужно :)
Спасибо, но я на форуме пост встретил о том, что в издательстве на халяву дают вложения, вот и накачал себе примеров кучу, только книг мало. Качал я с "Питера".
Обущали на Королевстве Delphi подарить, но до сих пор нет...


Дата: Ноя 4, 2003 07:56:16

И ещё вопрос.

Есть такое, что получается при компиляции:
 Load proc near
    lpArg = dword ptr 8
...

Нужно:

Load proc near
   lpArg = dword ptr 4

Как сделать?

И вот:
function Func(MyStruct: TStruct):Boolean;
begin
Result:= MyStruct.Hello(6);
end;

Можно так?
MyFunc proc pMyStruct: PTStruct
 mov eax,pMyStruct.Hello
 call eax
MyFunc endp

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.079