информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Сетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Каким образом на 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