![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() ![]() |
![]() |
AET |
![]()
Сообщение
#1
|
Гость ![]() |
народ можете подсказать я дизасамблировал программу теперь надо перевести в паскаль что зто может означать
add sp, 4
call @__IOCheck$qv ; Exit if error
mov al, byte ptr [bp+var_202+1]
xor ah, ah
xor dx, dx
mov word_2364, ax
mov word_2366, dx
les di, [bp+arg_0]
push es
push di
push word_2392
push word_2390
call @Seek$qm4File7Longint ; Seek(var f; n: Longint)
|
andriano |
![]()
Сообщение
#2
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Предположительно должно быть примерно так:
первая строка говорит о том, что в подпрограмме используются локальные переменные суммарной длиной 4 байта. __IOCheck$qv;
word_2364 := lo(var_202[1]);
word_2366 := 0;
Seek$qm4File7Longint(arg_0,word_2392,word_2390)
Сообщение отредактировано: andriano - 12.03.2008 9:02 |
Гость |
![]()
Сообщение
#3
|
Гость ![]() |
Предположительно должно быть примерно так: первая строка говорит о том, что в подпрограмме используются локальные переменные суммарной длиной 4 байта. __IOCheck$qv;
word_2364 := lo(var_202[1]);
word_2366 := 0;
Seek$qm4File7Longint(arg_0,word_2392,word_2390)
помоему так
dword_2364 := Var_202[1];
Seek(arg_0, dword_2390);
Var_202 - массив байтов. |
Гость |
![]()
Сообщение
#4
|
Гость ![]() |
а это как будет на паскале
mov al, byte ptr word_2364
mov byte ptr [bp+var_202+1], al
les di, [bp+arg_0]
push es
push di
lea di, [bp+var_202+1]
push ss
push di
call @Write$qm4Filem3Any ; Write(var f: File{; buf: PByte})
add sp, 4
call @__IOCheck$qv ; Exit if error
|
AET |
![]()
Сообщение
#5
|
Гость ![]() |
помагите перевел из асамблерного сода в паскаль правельно или нет асамблерныи код прекрепил а вот код паскаль
begin
w236C:=w2338;
w2370:=w233C;
w2374:=w2340;
w237C:=0;
w2338:=w2370;
w233C:=0;
w2340:=8;
sub_0(arg_0);
w2338:=w2370;
w2338:=8;
w2340:=8;
sub_0(arg_0);
w2384:=w2390;
if w2374 < w2376 then
w2338 := w2370;
w233C:=w2378;
w2340:=1;
sub_0(arg_0);
w2394:=1;
w2378:=w2378+1;
if w2394=0 then
w233c:=w2378;
w2340:=w2388;
w2338:=w2370;
sub_0(arg_0);
w2380:=w2390;
w2338:=w2370;
w2378:=w2378+w2388;
w233C:=w2378;
w2340:=w2384;
sub_0(arg_0);
w2378:=w2378+w2384;
w2348:=w2390+3;
if w2380>w237c then
begin
w2364:=w237c+w2348;
if w2364 < w2374 then
w234c:=w2348;
w2390:=$FFFF;
else
if w234c > 0 or w2358=0 or 2350<>0 then
w2358:=0;
else
w2358:=1;
w2350:w234c shr 3;
w2344:=0;
end;
else
begin
w2394:=w237c - w2380;
w2394:= w236c + w2394;
w2390:= w236c + w237c;
w2344:w2350 shl 3;
end;
seek(arg_0,w2396);
read(arg_0,var_202[1]);
w2364:=var_202[1];
seek(arg_0,w2392);
var_202[1]:=w2364;
write(arg_0,var_202[1]);
seek(arg_202,w2394+1);
read(arg_0,var_202[1]);
w2360:=var_202[1];
seek(arg_0,w2390+1);
var_202[1]:=w2360;
write(arg_0,var_202[1]);
seek(arg_0,w2394+2);
read(arg_0,var_202[1]);
w235c:=var_202[1];
seek(arg_0,w2390+2);
var_202[1]:=w235c;
write(arg_0,var_202[1]);
seek(arg_0,w2394+3);
read(arg_0,var_202[1]);
2358:=var_202[1];
seek(arg_0,2390+3);
var_202[1]:=w2358;
seek(arg_0,w2394+4);
read(arg_0,var_202[1]);
w2360:=var_202[1];
seek(arg_0,2390+4);
var_202[1]:=w2360;
write(arg_0,var_202[1]);
seek(arg_0,w2394+5);
read(arg_0,var_202[1]);
w235c:=var_202[1];
var_202[1]:=w235c;
seek(arg_0,w2390+5);
write(arg_0,var_202[1]);
seek(arg_0,w2394+6);
read(arg_0,var_202[1]);
w2358:=var_202[1];
var_202[1]:=w2358;
seek(arg_0,w2390+6)
write(arg_0,var_202[1]);
seek(arg_0,w2394+7);
read(arg_0,var_202[1]);
w2368:=var_202[1];
var_202[1]:=w2368;
seek(arg_0,w2390+7);
write(arg_0,var_202[1]);
w2390:=w2390+8;
w2394:=w2394+8;
w2350:=w2350-1;
w2350:=234c+7;
w2394:=w2380-w237c;
w2394:=w2394+w2344;
w2394:=w2394+w236c;
w2390:=w2344+w237c;
w2390:=w2390+w236c;
w2390:=w2390+1;
w2394:=w2394+1;
seek(arg_0,w2394-1);
read(arg_0,var_202[1]);
w2360:=var_202[1];
w2350:=w2350-1;
seek(arg_0,w2390-1);
var_202[1]:=w2360;
write(arg_0,var_202[1]);
w237c:=w2348+w237c;
else begin
w233c:=2378;
w2340:=8;
w2338:=w2370;
loc_0(arg_4);
w2378:=w2378+8;
w2380:=w236c+w237c;
w237c:=w237c+1;
var:_202[1]:=w2390;
seek(arg_0,w2382);
write(arg_0,var_202[1]);
end;
else
Close(arg_4);
end.
|
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 5:45 |