• 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]
    Угу. Данный код явно продукт дизассемблера :) Без полного листинга или на худой конец контекста даже браться не хочется :)
  • Германн © (27.03.08 02:55) [20]

    > J_f_S ©   (27.03.08 02:48) [19]
    >
    > Угу. Данный код явно продукт дизассемблера

    Это уже давно было определено:

    > DrPass ©   (07.03.08 23:24) [2]
  • J_f_S © (27.03.08 02:58) [21]

    > Германн ©   (27.03.08 02:55) [20]

    В связи с плавной флуктуацией точки обсуждения в подобных ветках я всегда начинаю читать с конца ;)
  • Германн © (27.03.08 03:04) [22]

    > J_f_S ©   (27.03.08 02:58) [21]
    >
    >

    Это что? Си-шники так живут?
  • J_f_S © (27.03.08 03:12) [23]

    > Германн ©   (27.03.08 03:04) [22]
    > > J_f_S ©   (27.03.08 02:58) [21]> > Это что? Си-шники так
    > живут?

    Сишники еще и не так живут ;) Чтение с конца треда это не моя перверсия, а скорее особеность общения на форумах с плоской организацией хода  обсуждения. Но мы как раз уводим обсуждение далеко от проблематики автора.
  • смарт (27.03.08 09:07) [24]

    > AET ©   (01.03.08 14:43)  

    Откуда ты такое выдрал ?
  • clickmaker © (27.03.08 10:32) [25]

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

    В бытность мою студентом-практикантом проходил практику в одном из наших КБ... так там люди написали свою ось реального (!) времени на asm86. Талмуд с описанием и исходниками по толщине чуть не догонял БСЭ. И его давали читать всем новоприбывшим, как проверку... ) Осилишь - наш человек ) Нет - тем более )
  • boriskb © (27.03.08 11:43) [26]
    > по толщине чуть не догонял БСЭ. И его давали читать всем
    > новоприбывшим, как проверку... ) Осилишь - наш человек )
    > Нет - тем более )

    И что подразумевалось под "осилишь"? :))
  • clickmaker © (27.03.08 11:48) [27]

    > И что подразумевалось под "осилишь"? :))

    прочитать, сделать умное лицо, сказать "круто", прокомментировать пару строчек "здесь вот mov ax, 0 я бы убрал, а вместо него... ну и т.д."
    шутка.
    на самом деле, никто кроме отцов-основателей в этом хозяйстве не разбирался, но в те времена еще жива была такая установка: использовать только самописный софт и электронику только отечественного производства. Потому что в буржуинских могут сидеть "жучки"... )
  • J_f_S © (27.03.08 12:21) [28]

    > clickmaker ©   (27.03.08 11:48) [27]

    Чем-то историю с "Эльбрусом" напоминает :)
  • Alien1769 © (27.03.08 14:04) [29]
    Что-то мне подсказывает, что эта ветка тесно связана со следующей

    http://pda.delphimaster.net/?id=1206533074&n=3
  • KilkennyCat © (27.03.08 14:35) [30]
    Все-таки жаль, что автошема не получилась, тут бы она пригодилась...
  • clickmaker © (27.03.08 15:00) [31]
    тут, скорее, нужен "конвектор форматов"
  • Alien1769 © (27.03.08 15:03) [32]

    > конвектор форматов

    А вот не все поймут :))
  • ANTPro © (05.04.08 01:18) [33]
    > [18] Германн ©   (27.03.08 02:42)
    > Асм код полученный каким-либо дизассемблером понять практически
    > невозможно

    адская работа понимать дизассмблированный асм :(
    Кстати кроме wasm.ru есть, что-нибудь стоящее по этой теме?
    А то с пониманием математики вообще туго :(
  • Германн © (05.04.08 01:36) [34]

    > ANTPro ©   (05.04.08 01:18) [33]
    >
    > > [18] Германн ©   (27.03.08 02:42)
    > > Асм код полученный каким-либо дизассемблером понять практически
    > > невозможно
    >
    > адская работа понимать дизассмблированный асм :(
    > Кстати кроме wasm.ru есть, что-нибудь стоящее по этой теме?
    >
    > А то с пониманием математики вообще туго :(
    >

    Ничего "стоящего по этой теме" я вообще не знаю. И не потому, что его "искал, но не нашёл", а потому, что "не искал, бо ненадобно".
    Просто в последние и уже многие годы я в основном пишу на ассемблере. Имхо, для большинства микроконтроллеров - это оптимальный вариант.
    Но это для микроконтроллеров. А wasm.ru - это для x86.
  • Германн © (05.04.08 01:55) [35]

    > А то с пониманием математики вообще туго :(
    >

    Эээ. А что с математикой?
  • korneley © (05.04.08 02:01) [36]

    > Германн ©   (05.04.08 01:55) [35]
    > > Эээ. А что с математикой?

    Репитую:"Туго."
  • ANTPro © (05.04.08 02:07) [37]
    ну так хоть что-то… хотя надо еще по ZX что-нибудь поискать… может повезет.
  • ANTPro © (05.04.08 02:14) [38]
    > [35] Германн ©   (05.04.08 01:55)

    много математических операций которые сложно распознать.
  • Германн © (05.04.08 02:30) [39]

    > ANTPro ©   (05.04.08 02:14) [38]
    >
    > > [35] Германн ©   (05.04.08 01:55)
    >
    > много математических операций которые сложно распознать.
    >
    >

    Опыт + знание стандартных библиотек, коих множество.
  • Loki © (05.04.08 02:54) [40]

    > [37] ANTPro ©   (05.04.08 02:07)
    > хотя надо еще по ZX что-нибудь поискать…
    > может повезет.

    если есть сканнер и вы в Питере - то повезёт. Есть много бумаги по asm-у для него (но именно БУМАГИ, в электронке нет ничего :( ).
    P.S.: Не хочу понтоваться, но в детстве (87 г., 7-й класс гуманитарной школы), когда я написал СОБСТВЕННЫЙ загрузчик уровней для игрушки (с графикой и музыкой) на чистом асме (для АГАТ-2 (если кто такое чудо видел/помнит)) - препод в школе был в полном ауте...
    P.P.S.: Заняло недели две, пару кб, листинги валяются дома до-сих пор (жалко выкинуть детские поделки)...

    ---
    WBR, Loki®
  • ANTPro © (05.04.08 02:56) [41]
    > [39] Германн ©   (05.04.08 02:30)

    под msp430 что является стандартом? (на RTOS не похоже, хотя в 64кб долго ковыряться надо :( )
  • ANTPro © (05.04.08 03:01) [42]
    > [40] Loki ©   (05.04.08 02:54)

    Писать на асме и понимать по дизассемблированному коду что происходит — это разные вещи.
    PS: На асме я тоже писал когда то в школе под ZX :)
  • Германн © (05.04.08 03:04) [43]

    > ANTPro ©   (05.04.08 02:56) [41]
    >
    > > [39] Германн ©   (05.04.08 02:30)
    >
    > под msp430 что является стандартом? (на RTOS не похоже,
    > хотя в 64кб долго ковыряться надо :( )
    >

    А я то тут причём? Я - старый, больной человек. (с)  И.О. Паниковский
  • ANTPro © (05.04.08 03:06) [44]
    > [43] Германн ©   (05.04.08 03:04)

    а вдруг… :)
  • Loki © (05.04.08 05:09) [45]

    > [42] ANTPro ©   (05.04.08 03:01)

    Да я прекрасно знаю, что "написать своё" и "разобрать чужое" - далеко не одно и то же. Мой пост относился к вопросу: "сложно-ли освоить asm самостоятельно (по книжкам)".

    ---
    WBR, Loki®
  • Anatoly Podgoretsky © (05.04.08 15:40) [46]
    > Loki  (05.04.2008 5:09:45)  [45]

    Не сложно, если голова есть, язык то очень простой, кристально чистый.
    Надо изучить архитектуру процессара, быть в ладах с логикой и общей теорией программирования, и держать под рукой справочник команд. На это достаточно 2 часов.
    Реальное написание сложных проектов, со скоротью совместимой с ЯВУ требует несколько лет подготовки, на создание хорошо документированой библиотеки макросов.
    После чего написание почти не отличается.
Есть новые Нет новых   [118799   +35][b:0][p:0.005]