· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› генерация ip

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


Дата: Июл 8, 2004 16:15:36 · Поправил: Flasher

Привет всем!
есть код:
.data
seen dd 12345
num db '%i.',0
chis db 8 dup(0)
ip db 32 dup(0)
.code
gen proc max_num:dword
    mov eax,08088405h
    xor edx,edx
    mul seen
    inc eax
    mov seen,eax
    mul max_num
    ret
gen endp
start:
          call GetTickCount
          mov seen,eax
          mov ebx,4
      res:push 254
          call gen
          inc edx
          push edx
          push offset num
          push offset chis
          call wsprintfA
          push offset chis
          push offset ip
          call lstrcatA
           dec ebx
           jnz res
          push offset ip
          call lstrlenA
          mov byte ptr (ip-1)[eax],00h
          invoke MessageBoxA,0,offset ip,offset ip,MB_OK
end start

хотел узнать, есть-ли более оптимальный вариант генерации случайного ip ?


Дата: Июл 9, 2004 16:14:09 · Поправил: Valka

Ну... например используй invoke вместо call
.data
	seed		dd 12345
	fmtIP		db "%u.%u.%u.%u",0
	buffer		db 17 dup(0)
.code
gen proc max_num:dword
	mov eax,08088405h
	xor edx,edx
	mul seed
	inc eax
	mov seed,eax
	mul max_num
	ret
gen endp
start:
	invoke GetTickCount
	mov seed,eax
	mov ebx,4

	invoke gen,254
	inc edx
	push edx
	invoke gen,254
	inc edx
	push edx
	invoke gen,254
	inc edx
	push edx
	invoke gen,254
	inc edx
	push edx
	push offset fmtIP
	push offset buffer
	call wsprintfA

	invoke MessageBoxA,0,offset buffer,0,MB_OK
end start


*** Код протестирован.


Дата: Июл 10, 2004 13:13:18

thenx, good-code ;)


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