Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2011, 17:16   #1
Chena
Новичок
Джуниор
 
Регистрация: 25.04.2011
Сообщений: 1
Смущение что делает программа&

Ребята! Помогите плиз разобраться, что выполняет фрагмент программы:
var_28 =byte ptr -28h
var_18 =byte ptr -18h
var_E =byte ptr -0Eh
var_D =byte ptr -0Dh
var_4 =byte ptr -4
var_2 =byte ptr -2
push si
push di
lea ax, [bp+var_28]
push ss
push ax
push ds
push offset unk_16978
mov cx, 10h
call N_SCOPY@
xor dx, dx
jmp short loc_102B5

loc_102AC:
lea bx, [bp+var_18]
add bx, dx
mov byte ptr [bx], 0
inc dx

loc_102B5:
cmp dx, 0Ah
jl short loc_102AC
mov [bp+var_2], 0Ah
jmp short loc_102D4

loc_102C1:
mov bx, 0Ah
sub bx, [bp+var_2]
lea ax, [bp+var_E]
add bx, ax
mov al, byte ptr [bp+var_2]
mov [bx], al
dec [bp+var_2]

loc_102D4:
cmp [bp+var_2], 0
jge short loc_102C1
mov [bp+var_2], 3
xor si, si
jmp short loc_10328

loc_102E3:
mov al, [bp+si+var_E]
cbw
mov dx, ax
mov cl, byte ptr[bp+var_2]
shl dx, cl
and dx, 0FFh
mov al, [bp+si+var_D]
cbw
mov [bp+var_4], ax
xor di, di
jmp short loc_1031F

loc_102FD:
mov bx, di
add bx, bx
lea ax, [bp+var_28]
add bx, ax
mov ax, [bp+var_4]
test [bx], ax
jz short loc_1031E
mov bx, 8
sub bx, [bp+var_2]
add bx, di
add bx, bx
lea ax, [bp+var_28]
add bx, ax
or dx, [bx]

loc_1031E:

inc di
loc_1031F:
cmp di, [bp+var_2]
jl short loc_102FD
mov [bp+si+var_18], dl
inc si

loc_10328:
cmp si, 0Ah
jl short loc_102E3
pop di
pop si
return 0
N_SCOPY@ proc near
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push bp
mov bp,sp
push si
push di
push ds
lds si, [bp+arg_0]
les di, [bp+arg_4]
cld
shr cx, 1
rep movsw
adc cx,cx
rep mowsb
pop ds
pop di
pop si
pop bp
return 8
N_SCOPY@ endp


Особенно интересует инициализация: почему указатели минусовые? Пожалуйста помогите девушке...
Chena вне форума Ответить с цитированием
Старый 25.04.2011, 18:52   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Сразу виден дизассемблер. Минусовые потомучто это переменные в стеки.
p51x вне форума Ответить с цитированием
Старый 04.05.2011, 12:40   #3
UsamaBenLadan
Пользователь
 
Аватар для UsamaBenLadan
 
Регистрация: 01.05.2011
Сообщений: 23
По умолчанию

Точнее сказать пока не могу
Вложения
Тип файла: zip dump.zip (1.2 Кб, 12 просмотров)
UsamaBenLadan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опишите что делает программа на каждом шаге( 1Илья1 Помощь студентам 0 07.04.2011 07:53
Обьясните, что делает это программа??? ~Леди~ Общие вопросы Delphi 2 05.04.2011 10:47
Что делает программа (забыл) С\С++ Айдар Помощь студентам 6 27.06.2010 12:39
Как работает программа и что делает dragun4ik Помощь студентам 0 23.05.2010 15:51
что делает эта программа и где ошибка? дангер Паскаль, Turbo Pascal, PascalABC.NET 27 28.01.2008 13:38