информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяСетевые кракеры и правда о деле ЛевинаSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
не надо Api... 11.12.01 07:48  Число просмотров: 1142
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Все должно работать... Вышли код свой...
> Ты использовал scas через di или edi ?

Я использовал edi
Код высылаю (но он такой корявый)
Прога компилируется нормально но вот при нажатии 105 она зависает

.386
.model flat, stdcall
option casemap :none

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

memsize equ 2000

WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
start_func PROTO ; :DWORD,:DWORD

LOWORD MACRO bigword
mov eax,bigword
and eax,0FFFFh
ENDM
HIWORD MACRO bigword
mov eax,bigword
shr eax,16
ENDM

.data
dlgname db "IDD_DIALOG1",0
hInstance dd 0
hList dd 0
szAbout db "© JoKEr,2001 ",13,10
db "Coded in: Asm (Masm) ",13,10
db "E-mail: JoKEr@rambler.ru ",13,10
db " ",0

buff db '0',0
hfile dd 0
hmemory dd 0
pmemory dd 0
szrw dd 0
hwnd1 dd 0

gettick dd 0
mass_ dd 100 dup (888) ;это типа строка,которую обрабатывать

.code
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke DialogBoxParam,hInstance,ADDR dlgname,0,ADDR WndProc,0
invoke ExitProcess,eax

WndProc proc hWin:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
mov eax,hWin

mov hwnd1,eax

.if uMsg == WM_INITDIALOG
invoke LoadIcon,hInstance,100
invoke SendMessage,hWin,WM_SETICON,1,eax
invoke SetWindowPos,hWin,HWND_TOP+HWND_TOPMOST,NULL,NULL,NULL,NULL,SWP_NOMOVE+SWP_NOSIZE
xor eax,eax
ret

.elseif uMsg == WM_COMMAND
LOWORD wParam

.if eax == 104
invoke MessageBox,hWin,addr szAbout,addr szTitle,MB_OK+MB_ICONINFORMATION




.elseif eax == 103
invoke start_func ;вот нужная строка




.endif
xor eax,eax
ret

.elseif uMsg == WM_CLOSE
invoke ShowWindow,hWin,SW_MINIMIZE
invoke EndDialog,hWin,0
xor eax,eax
ret

.endif
xor eax,eax
ret
WndProc endp



start_func proc


sluch_number: ;здесь получаем типа случайное число (ну почти случайное)
invoke GetTickCount
mov gettick,eax
mov ebx,100
div ebx
mov gettick,edx
invoke SetDlgItemInt,hwnd1,105,gettick,0

mov eax,gettick
lea edi,offset mass_ ;вот эта строчка у меня подозрение вызывает
repe scasd
jcxz next_1
jmp sluch_number

next_1:
mov eax,888

lea edi,offset mass_ ;и эта строчка тоже,а в чем дело не соображу
repe scasd
jcxz next_2
dec edi
mov eax,gettick
stosd mass_

next_2:

invoke SetDlgItemInt,hwnd1,112,gettick,0


xor eax,eax
ret

start_func endp
end start
<programming>
Каким образом на ASM под Win32 10.12.01 08:47  
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Каким образом на ASM под Win32 найти в одной строке нужный элемент (число или символ) и записать на его место другой элемент?
Я пытался использовать scas и stos - и не получилось.
Может там какие API-функции есть?
не надо Api... 10.12.01 09:49  
Автор: Chingachguk <Chingachguk> Статус: Member
Отредактировано 10.12.01 09:50  Количество правок: 1
<"чистая" ссылка>
> Каким образом на ASM под Win32 найти в одной строке нужный
> элемент (число или символ) и записать на его место другой
> элемент?
> Я пытался использовать scas и stos - и не получилось.
> Может там какие API-функции есть?

Все должно работать... Вышли код свой...
Ты использовал scas через di или edi ?
не надо Api... 11.12.01 07:48  
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Все должно работать... Вышли код свой...
> Ты использовал scas через di или edi ?

Я использовал edi
Код высылаю (но он такой корявый)
Прога компилируется нормально но вот при нажатии 105 она зависает

.386
.model flat, stdcall
option casemap :none

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

memsize equ 2000

WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
start_func PROTO ; :DWORD,:DWORD

LOWORD MACRO bigword
mov eax,bigword
and eax,0FFFFh
ENDM
HIWORD MACRO bigword
mov eax,bigword
shr eax,16
ENDM

.data
dlgname db "IDD_DIALOG1",0
hInstance dd 0
hList dd 0
szAbout db "© JoKEr,2001 ",13,10
db "Coded in: Asm (Masm) ",13,10
db "E-mail: JoKEr@rambler.ru ",13,10
db " ",0

buff db '0',0
hfile dd 0
hmemory dd 0
pmemory dd 0
szrw dd 0
hwnd1 dd 0

gettick dd 0
mass_ dd 100 dup (888) ;это типа строка,которую обрабатывать

.code
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke DialogBoxParam,hInstance,ADDR dlgname,0,ADDR WndProc,0
invoke ExitProcess,eax

WndProc proc hWin:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
mov eax,hWin

mov hwnd1,eax

.if uMsg == WM_INITDIALOG
invoke LoadIcon,hInstance,100
invoke SendMessage,hWin,WM_SETICON,1,eax
invoke SetWindowPos,hWin,HWND_TOP+HWND_TOPMOST,NULL,NULL,NULL,NULL,SWP_NOMOVE+SWP_NOSIZE
xor eax,eax
ret

.elseif uMsg == WM_COMMAND
LOWORD wParam

.if eax == 104
invoke MessageBox,hWin,addr szAbout,addr szTitle,MB_OK+MB_ICONINFORMATION




.elseif eax == 103
invoke start_func ;вот нужная строка




.endif
xor eax,eax
ret

.elseif uMsg == WM_CLOSE
invoke ShowWindow,hWin,SW_MINIMIZE
invoke EndDialog,hWin,0
xor eax,eax
ret

.endif
xor eax,eax
ret
WndProc endp



start_func proc


sluch_number: ;здесь получаем типа случайное число (ну почти случайное)
invoke GetTickCount
mov gettick,eax
mov ebx,100
div ebx
mov gettick,edx
invoke SetDlgItemInt,hwnd1,105,gettick,0

mov eax,gettick
lea edi,offset mass_ ;вот эта строчка у меня подозрение вызывает
repe scasd
jcxz next_1
jmp sluch_number

next_1:
mov eax,888

lea edi,offset mass_ ;и эта строчка тоже,а в чем дело не соображу
repe scasd
jcxz next_2
dec edi
mov eax,gettick
stosd mass_

next_2:

invoke SetDlgItemInt,hwnd1,112,gettick,0


xor eax,eax
ret

start_func endp
end start
не надо Api... 11.12.01 08:31  
Автор: Chingachguk <Chingachguk> Статус: Member
<"чистая" ссылка>
> > Все должно работать... Вышли код свой...
> > Ты использовал scas через di или edi ?
> Я использовал edi
> Код высылаю (но он такой корявый)
> Прога компилируется нормально но вот при нажатии 105 она
> зависает
>

OK. Будет время - гляну обязательно внимательно.

А пока мне не нравится только это:
jcxz next_2 ; Все OK, edi где - то в массиве
dec edi ; И счас она в массиве, но указывает совсем не на
; элементы размером dd
mov eax,gettick
stosd mass_ ; Немного странновато так индексировать ...
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach