Конференция "Прочее" » из ASM в Pascal
 
  • AET © (01.03.08 14:43) [0]
    кто может помоч перевести из Асамблера в паскаль

    ; 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{DX:AX}>>=N{CX}
     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
    ; ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

  • Сергей М. © (06.03.08 14:12) [1]
    И какая же в результате "Паскаль-конфета" должна, по-твоему, получиться из этого "ASM-дерьма" ?)
  • DrPass © (07.03.08 23:24) [2]

    > Сергей М. ©   (06.03.08 14:12) [1]

    Это не дерьмо, это он чего-то дизассемблировал, и хочет воспроизвести в понятной ему форме ;-)
  • TwentyFourth (08.03.08 23:34) [3]
    Помочь! Ну и ни хрена себе!
  • Johnmen © (08.03.08 23:49) [4]
    Я помогу. $10 за строку исх.текста +100% надбавка за бред.
  • Германн © (09.03.08 01:00) [5]

    > Johnmen ©   (08.03.08 23:49) [4]

    Я бы потребовал ещё и молоко за вредность.
  • Бегущий человек © (26.03.08 17:59) [6]
    Смахивает на расшифровку кейгена - метод блочномго шифрования с перестановками.
  • ANTPro © (26.03.08 19:34) [7]
    Hex-Rays пользуй :)
  • KilkennyCat © (26.03.08 23:11) [8]
    а че, в паскале асм использовать нельзя?
  • Игорь Шевченко © (27.03.08 01:02) [9]
    KilkennyCat ©   (26.03.08 23:11) [8]

    Такой нельзя
  • Германн © (27.03.08 01:42) [10]

    > 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]

    > J_f_S ©   (27.03.08 01:47) [11]
    >
    > Ассемблер по сути гораздо проще любого языка высокого уровня.
    >  Другое дело, что его грамотное использование требует высокой
    > квалификации ;)
    >

    Проще конечно. Но кроме одного. Труднее понять чужой код на ассемблере. Особенно если имеешь в наличии только кусок кода программы.
  • J_f_S © (27.03.08 02:00) [13]

    > Германн ©   (27.03.08 01:58) [12]

    Вот! А вот это уже вопрос квалификации! ;)
  • Игорь Шевченко © (27.03.08 02:02) [14]

    > Труднее понять чужой код на ассемблере.


    В блаженной памяти 1983 году я изучал код ADAMINT и ADAREP (это системы макросов и отчета для ADABAS), написанный на ассемблере и умилялся - до чего ж складно написано :)
  • Германн © (27.03.08 02:13) [15]

    > Игорь Шевченко ©   (27.03.08 02:02) [14]
    >
    >
    > > Труднее понять чужой код на ассемблере.
    >
    >
    > В блаженной памяти 1983 году я изучал код ADAMINT и ADAREP
    > (это системы макросов и отчета для ADABAS), написанный на
    > ассемблере и умилялся - до чего ж складно написано :)
    >

    Да. Я тоже много складных асм кодов встречал в те годы. Ну хотя бы в TurboProfessional. Но тогда "деревья были большими", а коды маленькими. Я и сейчас встречаю много складных кодов. Но для микропроцессоров. А это в последнее десятилетие - моя основная специализация. Да и те коды были полными исходниками чего-либо. А "по куску кода" асм понять трудно.
  • Германн © (27.03.08 02:28) [16]

    > J_f_S ©   (27.03.08 02:00) [13]
    >
    >
    > > Германн ©   (27.03.08 01:58) [12]
    >
    > Вот! А вот это уже вопрос квалификации! ;)
    >

    Ну это да, но.
    Я начинал писать рабочие программы на машинных кодах. Другого варианта не было.
    И я делал без особых проблем вставки inline машинных кодов уже в современное время. В чужую программу для 51-го процессора. Тот компилятор асм не поддерживает. Но это я сам добавлял эти вставки и сам понимал, что я делаю.
    Но кто ещё, кроме меня, поймёт эти вставки, если у него будут в наличии только они?
  • J_f_S © (27.03.08 02:33) [17]

    > Германн ©   (27.03.08 02:28) [16]

    Чтож... Это актуально и для языков высокого уровня, правда в меньшей степени. Докуменнтирование, комментирование, культура кодирования способны облегчить беду :)
  • Германн © (27.03.08 02:42) [18]
    О, пардон.
    Я забыл упомянуть одно существенное обстоятельство.
    Асм код полученный каким-либо дизассемблером понять практически невозможно, если в наличии есть только "кусок" программы. Что, по-моему и представляет сабж.
  • J_f_S © (27.03.08 02:48) [19]
    Угу. Данный код явно продукт дизассемблера :) Без полного листинга или на худой конец контекста даже браться не хочется :)
 
Конференция "Прочее" » из ASM в Pascal
Есть новые Нет новых   [134433   +22][b:0][p:0.005]