Здравствуйте! Нужно написать ip-генератор не используя api-функций, тоесть генерить и прямыком в mov sin.sin_addr,eax, без wsprintfA/inet_addr. Решил начать с исходника inet_addr, но как оказалось, там юзается atodw, можно-ли как-нить обходиться без этой функции ? Код (Text): _inet_addr proc wdIP:dword local byte1:byte local byte2:byte local byte3:byte local byte4:byte local sa:dword mov ecx,wdIP lea edx,byte1 @@:push edx mov esi,ecx xor eax,eax _l:lodsb cmp al,'0' jl _n jmp _l _n:dec esi mov byte ptr [esi],0 push eax mov sa,esi invoke atodw,ecx pop ebx mov byte ptr [esi],bl pop edx mov byte ptr [edx],al dec edx mov ecx,sa mov al,byte ptr [ecx] inc ecx cmp al,'.' je @B mov ah,byte4 mov al,byte3 shl eax,16 mov ah,byte2 mov al,byte1 ret _inet_addr endp Спасибо!
Если просто(без правил) генерить то используй любой генератор DWORD_дов, в чем проблема? 127.0.0.1 == 0100007fh. Используй bswap для полученния нетбайт.
Не совсем понял. вот генератор: Код (Text): _rand proc;<((((((((((((((((((((((((((() push edx ;() push ecx ;() mov ecx,eax ;() xor edx,edx ;() db 0fh,031h ;() inc eax ;() imul eax,eax,08088405h ;() mul eax ;() mul ecx ;() mov eax,edx ;() pop ecx ;() pop edx ;() ret ;() _rand endp;<((((((((((((((((((((((((((() как собрать 4 случайных числа чтоб потом пропустить через bswap ?
Генератор - это такая хреновина которая что-то создает, любо по опредиленным правилам либо как попало. (Я так понаю это слово). Так вот если у тебя нет никаких правил то сделай вот так: call _rand mov sin.sin_addr, eax Че непонятно то???