Сейчас на форуме: hgdagon, asfa (+3 невидимых)

 eXeL@B —› Программирование —› MASM - error A2042: statement too complex
Посл.ответ Сообщение

Ранг: 42.0 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 18 декабря 2004 02:42
· Личное сообщение · #1

Используя массив более чем из 48 определённых элементов получаю ошибку при компиляции:
error A2042: statement too complex
Почему так? Вот пример:

.386
.model flat, stdcall
option casemap: none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

.data
array db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h,
030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h,
030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h,
030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h,
030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h;, 038h, 039h

.data?
stdout dd ?
nWritten dd ?

.code
start:
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov stdout, eax
invoke WriteConsoleA, stdout, ADDR array, SIZEOF array, ADDR nWritten, NULL
invoke ExitProcess, NULL
end start




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 18 декабря 2004 03:53
· Личное сообщение · #2

Сделай так:
array db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h

db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h
db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h
db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h
db 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h, 039h
array_len EQU $ - OFFSET array


array_len - это вместо SIZEOF array



Ранг: 42.0 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 18 декабря 2004 04:25
· Личное сообщение · #3

Asterix
БОЛЬШОЕ спасибо, это то что нужно




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 17 июня 2007 00:55 · Поправил: mak
· Личное сообщение · #4

Вот код ...

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 17 июня 2007 01:08
· Личное сообщение · #5

вот он ..отредактировал и все пропало ..жость ...вобщем вот он , и там не могу массив обявить ошибку выдает такую же , что делать де ошибка ???

fa01_16.06.2007_CRACKLAB.rU.tgz - masiv.txt

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 17 июня 2007 02:13
· Личное сообщение · #6

Во-первых не db, а dd.
Во-вторых написано же: строка слишком длинная.
Приведи все строки к виду:
dd 0C0AC29B7h,0C97C50DDh,03F84D5B5h,0B5470917h,09216D5D9h,08979FB1Bh

То есть dd в начале каждой и нет запятых нигде. Делать это удобнее всего в RadASM'e включив вертикальные блоки (ctrl+B > Shift+курсор вниз > "dd").

-----
Всем привет, я вернулся





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 17 июня 2007 15:15
· Личное сообщение · #7

Спасибо !!! )))) я сделал в Емедиторе за пару сек) Удобнее . Пасиб Bitfry

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 29.2 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 18 июня 2007 05:34
· Личное сообщение · #8

Asterix пишет:
Сделай так:

array db 030h, 031h, 032h, 033h, 034h,


...а можно и так...

.data
simptomStr label byte
db 08 dup (20h)
db 30h
db 30h
db 31h
db 30h
db 049h dup (20h)
db 0dh
db 0ah
db 08 dup (20h)
db 31h
db 31h
db 30h
db 30h
db 049h dup (20h)
db 0dh
db 0ah


 eXeL@B —› Программирование —› MASM - error A2042: statement too complex
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати