-
кто может помоч перевести из Асамблера в паскаль
; Attributes: bp-based frame
sub_2E4 proc near ; CODE XREF: PROGRAM+4D2p
var_202 = word ptr -202h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push bp
mov bp, sp
mov ax, 202h
call @__StackCheck$q4Word ; Stack overflow check (AX)
sub sp, 202h
mov ax, word_2338
mov dx, word_233A
mov word_236C, ax
mov word_236E, dx
mov ax, word_233C
mov dx, word_233E
mov word_2370, ax
mov word_2372, dx
mov ax, word_2340
mov dx, word_2342
mov word_2374, ax
mov word_2376, dx
xor ax, ax
mov word_237C, ax
mov word_237E, ax
mov ax, word_2370
mov dx, word_2372
mov word_2338, ax
mov word_233A, dx
xor ax, ax
mov word_233C, ax
mov word_233E, ax
mov word_2340, 8
mov word_2342, 0
les di, [bp+arg_4]
push es
push di
call loc_0
mov ax, word_2390
mov dx, word_2392
mov word_2388, ax
mov word_238A, dx
mov ax, word_2370
mov dx, word_2372
mov word_2338, ax
mov word_233A, dx
mov word_233C, 8
mov word_233E, 0
mov word_2340, 8
mov word_2342, 0
les di, [bp+arg_4]
push es
push di
call loc_0
mov word_2378, 10h
mov word_237A, 0
mov ax, word_2390
mov dx, word_2392
mov word_2384, ax
mov word_2386, dx
mov ax, word_237C
mov dx, word_237E
cmp dx, word_2376
jg short loc_3BA
jl short loc_3BD
cmp ax, word_2374
jb short loc_3BD
loc_3BA: ; CODE XREF: sub_2E4+CCj
jmp loc_C99
; ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
loc_3BD: ; CODE XREF: sub_2E4+CEj sub_2E4+D4j ...
mov ax, word_2370
mov dx, word_2372
mov word_2338, ax
mov word_233A, dx
loc_3CB: ; CODE XREF: sub_2E4+8EBj
mov ax, word_2378
mov dx, word_237A
mov word_233C, ax
mov word_233E, dx
mov word_2340, 1
mov word_2342, 0
les di, [bp+arg_4]
push es
push di
call loc_0
mov word_2394, 1
mov word_2396, 0
mov ax, word_2378
mov dx, word_237A
add ax, 1
adc dx, 0
mov word_2378, ax
mov word_237A, dx
mov ax, word_2390
mov dx, word_2392
cmp dx, word_2396
jnz short loc_420
cmp ax, word_2394
jz short loc_423
loc_420: ; CODE XREF: sub_2E4+134j
jmp loc_BDD
; ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
loc_423: ; CODE XREF: sub_2E4+13Aj
mov ax, word_2378
mov dx, word_237A
mov word_233C, ax
mov word_233E, dx
mov ax, word_2388
mov dx, word_238A
mov word_2340, ax
mov word_2342, dx
mov ax, word_2370
mov dx, word_2372
mov word_2338, ax
mov word_233A, dx
les di, [bp+arg_4]
push es
push di
call loc_0
mov ax, word_2390
mov dx, word_2392
mov word_2380, ax
mov word_2382, dx
mov ax, word_2370
mov dx, word_2372
mov word_2338, ax
mov word_233A, dx
mov ax, word_2378
mov dx, word_237A
add ax, word_2388
adc dx, word_238A
mov word_2378, ax
mov word_237A, dx
mov ax, word_2378
mov dx, word_237A
mov word_233C, ax
mov word_233E, dx
mov ax, word_2384
mov dx, word_2386
mov word_2340, ax
mov word_2342, dx
les di, [bp+arg_4]
push es
push di
call loc_0
mov ax, word_2378
mov dx, word_237A
add ax, word_2384
adc dx, word_2386
mov word_2378, ax
mov word_237A, dx
mov ax, word_2390
mov dx, word_2392
add ax, 3
adc dx, 0
mov word_2348, ax
mov word_234A, dx
mov ax, word_237C
mov dx, word_237E
cmp dx, word_2382
jl short loc_4EA
jg short loc_4EC
cmp ax, word_2380
jnb short loc_4EC
loc_4EA: ; CODE XREF: sub_2E4+1FCj
jmp short loc_533
; ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
loc_4EC: ; CODE XREF: sub_2E4+1FEj sub_2E4+204j
mov ax, word_237C
mov dx, word_237E
add ax, word_2348
adc dx, word_234A
mov word_2364, ax
mov word_2366, dx
mov ax, word_2374
mov dx, word_2376
cmp dx, word_2366
jg short loc_517
jl short loc_527
cmp ax, word_2364
jb short loc_527
loc_517: ; CODE XREF: sub_2E4+229j
mov ax, word_2348
mov dx, word_234A
mov word_234C, ax
mov word_234E, dx
jmp short loc_536
; ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
loc_527: ; CODE XREF: sub_2E4+22Bj sub_2E4+231j
mov word_2390, 0FFFFh
mov word_2392, 0FFFFh
loc_533: ; CODE XREF: sub_2E4:loc_4EAj
jmp loc_C99
; ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
loc_536: ; CODE XREF: sub_2E4+241j
cmp word_234E, 0
jl short loc_546
jg short loc_554
cmp word_234C, 0
ja short loc_554
loc_546: ; CODE XREF: sub_2E4+257j
mov word_2358, 1
mov word_235A, 0
jmp short loc_55C
; ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
loc_554: ; CODE XREF: sub_2E4+259j sub_2E4+260j
xor ax, ax
mov word_2358, ax
mov word_235A, ax
loc_55C: ; CODE XREF: sub_2E4+26Ej
mov ax, word_2358
or ax, word_235A
jz short loc_56D
xor ax, ax
mov word_234C, ax
mov word_234E, ax
loc_56D: ; CODE XREF: sub_2E4+27Fj
mov ax, word_234C
mov dx, word_234E
mov cx, 3
xor bx, bx
call @$brrsh$q7Longint7Integer ; X1>>=N
mov word_2350, ax
mov word_2352, dx
xor ax, ax
mov word_2344, ax
mov word_2346, ax
mov ax, word_2350
or ax, word_2352
jnz short loc_599
jmp loc_A3D
; ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
-
И какая же в результате "Паскаль-конфета" должна, по-твоему, получиться из этого "ASM-дерьма" ?)
-
> Сергей М. © (06.03.08 14:12) [1]
Это не дерьмо, это он чего-то дизассемблировал, и хочет воспроизвести в понятной ему форме ;-)
-
Помочь! Ну и ни хрена себе!
-
Я помогу. $10 за строку исх.текста +100% надбавка за бред.
-
> Johnmen © (08.03.08 23:49) [4]
Я бы потребовал ещё и молоко за вредность.
-
Смахивает на расшифровку кейгена - метод блочномго шифрования с перестановками.
-
Hex-Rays пользуй :)
-
а че, в паскале асм использовать нельзя?
-
KilkennyCat © (26.03.08 23:11) [8]
Такой нельзя
-
> KilkennyCat © (26.03.08 23:11) [8]
Да и кроме Игорь Шевченко © (27.03.08 01:02) [9]. Автору нужно, скорее всего, не использовать этот асм в его первозданном виде, а понять, изменить и уж потом использовать. А понять асм - жила тонка.
-
Ассемблер по сути гораздо проще любого языка высокого уровня. Другое дело, что его грамотное использование требует высокой квалификации ;)
-
> J_f_S © (27.03.08 01:47) [11] > > Ассемблер по сути гораздо проще любого языка высокого уровня. > Другое дело, что его грамотное использование требует высокой > квалификации ;) >
Проще конечно. Но кроме одного. Труднее понять чужой код на ассемблере. Особенно если имеешь в наличии только кусок кода программы.
-
> Германн © (27.03.08 01:58) [12]
Вот! А вот это уже вопрос квалификации! ;)
-
> Труднее понять чужой код на ассемблере.
В блаженной памяти 1983 году я изучал код ADAMINT и ADAREP (это системы макросов и отчета для ADABAS), написанный на ассемблере и умилялся - до чего ж складно написано :)
-
> Игорь Шевченко © (27.03.08 02:02) [14] > > > > Труднее понять чужой код на ассемблере. > > > В блаженной памяти 1983 году я изучал код ADAMINT и ADAREP > (это системы макросов и отчета для ADABAS), написанный на > ассемблере и умилялся - до чего ж складно написано :) >
Да. Я тоже много складных асм кодов встречал в те годы. Ну хотя бы в TurboProfessional. Но тогда "деревья были большими", а коды маленькими. Я и сейчас встречаю много складных кодов. Но для микропроцессоров. А это в последнее десятилетие - моя основная специализация. Да и те коды были полными исходниками чего-либо. А "по куску кода" асм понять трудно.
-
> J_f_S © (27.03.08 02:00) [13] > > > > Германн © (27.03.08 01:58) [12] > > Вот! А вот это уже вопрос квалификации! ;) >
Ну это да, но. Я начинал писать рабочие программы на машинных кодах. Другого варианта не было. И я делал без особых проблем вставки inline машинных кодов уже в современное время. В чужую программу для 51-го процессора. Тот компилятор асм не поддерживает. Но это я сам добавлял эти вставки и сам понимал, что я делаю. Но кто ещё, кроме меня, поймёт эти вставки, если у него будут в наличии только они?
-
> Германн © (27.03.08 02:28) [16]
Чтож... Это актуально и для языков высокого уровня, правда в меньшей степени. Докуменнтирование, комментирование, культура кодирования способны облегчить беду :)
-
О, пардон. Я забыл упомянуть одно существенное обстоятельство. Асм код полученный каким-либо дизассемблером понять практически невозможно, если в наличии есть только "кусок" программы. Что, по-моему и представляет сабж.
-
Угу. Данный код явно продукт дизассемблера :) Без полного листинга или на худой конец контекста даже браться не хочется :)
|