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

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Структуры

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


Дата: Сен 26, 2003 12:36:39 · Поправил: 640kb

Простите меня за ламерство. Как в MASMе инициализировать структуры и заполнять их в коде. Точнее говоря, хочу создать соединение через сокет, но не знаю как создать и заполнить структуру SOCKADDR. Помогите плиз, или дайте ссылку где это можно прочитать.


Дата: Сен 26, 2003 12:47:28

Просто
mDATE struct
  mDay   dd ?
  mMonth dd ?
  mYear  dd ?
mDATE ends
...
...
...
.date?
md mDATE <>
...
...
...
.code
...
...
mov md.mDay,25
mov md.mYear,2003
...
...


Дата: Сен 26, 2003 12:56:49 · Поправил: 640kb

Пробовал, на строках с заполнением компилятор выдаёт: immediate operand not allowed


Дата: Сен 26, 2003 12:57:53

640kb
Свой Код покажи...


Дата: Сен 26, 2003 13:03:20 · Поправил: 640kb

...
.data?
...
SOCKADDR STRUC
 sin_family dw ?
 sin_port   dw ?
 sin_addr   dd ?
 sin_zero   db 8 dup (?)
SOCKADDR ENDS
...

.code
...
 invoke socket, AF_INET, SOCK_STREAM, IPPROTO_TCP
 .if eax != INVALID_SOCKET
  mov socketHandle, eax
  mov SOCKADDR.sin_family, 02h ;<-компилятор выдаёт ошибку
 .endif 
...


Дата: Сен 26, 2003 13:07:26 · Поправил: KiNDeR

640kb
Дорогой товарищь, структуры описываются вне сегментов..
SOCKADDR STRUC
 sin_family dw ?
 sin_port   dw ?
 sin_addr   dd ?
 sin_zero   db 8 dup (?)
SOCKADDR ENDS
....
...

.data?
...
...
SA SOCKADDR <>
.code
...
 invoke socket, AF_INET, SOCK_STREAM, IPPROTO_TCP
 .if eax != INVALID_SOCKET
  mov socketHandle, eax
  mov SA.sin_family, 02h
 .endif 
...

Попробуй так...


Дата: Сен 26, 2003 13:11:03 · Поправил: 640kb

Компилятор выдаёт ту-же самую ошибку


Дата: Сен 26, 2003 13:12:18

640kb
Я исправил свой предидущий пост
посмотри...


Дата: Сен 26, 2003 13:16:18

Всё работает.
Спасибо огромное!


Дата: Сен 26, 2003 13:18:20

640kb
Да, всё нормально, бывает... :)))


Дата: Окт 4, 2003 16:20:41 · Поправил: Sk. Inc.

KiNDeR и 640kb
Описание структуры может находится в любом месте кода, где оно не нарушает его выполнение.
Можно даже так:
...
.code
...
MyProc1 proc
...
MyProc1 endp
MyStruct struct
...
MyStruct ends
MyProc2 proc
...
MyProc2 endp
...


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