|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 29, 2004 21:51:15 · Поправил: Asterix Понадобилось мне, значит, запихать такой код в .DATA ну вроде как практически скомпилилось, но, почему-то ругается на jne Address, и никак не могу его(masm) уговорить: .DATA some_proc EQU $ sub esp, 20h mov eax, [ebp+10h] cmp eax, PID jne Address xor eax, eax jmp Address PID dd 0 Address dd 0 some_proc_len EQU $ - some_proc |
|
|
Дата: Апр 29, 2004 22:00:04 Ругается он скорее всего на инструкцию по этому адресу. Попробуй поставить не Address dd 0, а Address: - т.е. метку. Мало ли.. |
|
|
Дата: Апр 29, 2004 22:00:58 Уже пробовал :-( |
|
|
Дата: Апр 29, 2004 22:06:53 хмм.. напрашивается вывод, что для такой вещи секция должна быть executable, но это на масме сделать сложно.. А почему надо код в данных писать? Не проще данные в коде указать? |
|
|
Дата: Апр 29, 2004 22:10:21 Она и есть executable т.к. совмещена c .text и выставлены соответствующие атрибуты ;-) |
|
|
Дата: Апр 29, 2004 22:11:14 Более того, masm и на такой же код в .CODE тоже ругается.. |
|
|
Дата: Апр 29, 2004 22:30:23
some_proc db 90h
sub esp,20h
mov eax,[ebp+10h]
cmp eax,PID
jne @F
xor eax,eax
jmp @F
PID dd 0
@@: Address db 0,0,0,0
some_proc_len EQU $ - some_proc
А если так? |
|
|
Дата: Апр 29, 2004 22:41:51 KiNDeR А так потерялся смысл прыжков ;-) Прыжки должны осуществляться по адресу лежащему в переменной Address. |
|
|
Дата: Апр 29, 2004 23:07:06 Если короткий, делается: jmp_delta db ??h jmp_oper db 74h (75h) т.е. будет скачок на 2+?? при "Z=1" или "Z=0" соотв-но для длинного, только надо почитать как строится комманда. не читал :) могу ошибаться jmp_delta dd ??h jmp_oper dw ??h xor eax,eax jmp jmp_delta |
|
|
Дата: Апр 29, 2004 23:16:22 > Прыжки должны осуществляться по адресу лежащему в переменной Address. jmp [Address] ? |
|
|
Дата: Апр 29, 2004 23:46:03 Это в fasme ;-) А в masm'е можно делать как я написал, кстати jmp Address работает, а вот jne нет. |
|
|
Дата: Апр 29, 2004 23:50:24 Вот что собственно пишет: Assembling: PROJ01.BAT PROJ01.BAT(20) : error A2077: instruction does not allow NEAR indirect addressin g LINK : warning LNK4001: no object files specified; libraries used LINK : warning LNK4068: /MACHINE not specified; defaulting to X86 LINK : fatal error LNK1159: no output file specified Файл не найден Нажмите любую клавишу . . . |
|
|
Дата: Апр 29, 2004 23:50:45 · Поправил: S_T_A_S_ ХМ. Тогда так jne @f xor eax, eax @@: jmp Address |
|
|
Дата: Апр 30, 2004 00:16:38 · Поправил: Asterix Тоже не работает в .DATA Assembling: PROJ01.BAT PROJ01.BAT(20) : error A2107: cannot have implicit far jump or call to near labe l LINK : warning LNK4001: no object files specified; libraries used LINK : warning LNK4068: /MACHINE not specified; defaulting to X86 LINK : fatal error LNK1159: no output file specified Файл не найден |
|
|
Дата: Апр 30, 2004 00:22:20 · Поправил: Asterix |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.165 |