Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.18;
Скачать: CL | DM;

Вниз

из ASM в Pascal   Найти похожие ветки 

 
AET ©   (2008-03-01 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
; ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД


 
Сергей М. ©   (2008-03-06 14:12) [1]

И какая же в результате "Паскаль-конфета" должна, по-твоему, получиться из этого "ASM-дерьма" ?)


 
DrPass ©   (2008-03-07 23:24) [2]


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

Это не дерьмо, это он чего-то дизассемблировал, и хочет воспроизвести в понятной ему форме ;-)


 
TwentyFourth   (2008-03-08 23:34) [3]

Помочь! Ну и ни хрена себе!


 
Johnmen ©   (2008-03-08 23:49) [4]

Я помогу. $10 за строку исх.текста +100% надбавка за бред.


 
Германн ©   (2008-03-09 01:00) [5]


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

Я бы потребовал ещё и молоко за вредность.


 
Бегущий человек ©   (2008-03-26 17:59) [6]

Смахивает на расшифровку кейгена - метод блочномго шифрования с перестановками.


 
ANTPro ©   (2008-03-26 19:34) [7]

Hex-Rays пользуй :)


 
KilkennyCat ©   (2008-03-26 23:11) [8]

а че, в паскале асм использовать нельзя?


 
Игорь Шевченко ©   (2008-03-27 01:02) [9]

KilkennyCat ©   (26.03.08 23:11) [8]

Такой нельзя


 
Германн ©   (2008-03-27 01:42) [10]


> KilkennyCat ©   (26.03.08 23:11) [8]

Да и кроме Игорь Шевченко ©   (27.03.08 01:02) [9].
Автору нужно, скорее всего, не использовать этот асм в его первозданном виде, а понять, изменить и уж потом использовать. А понять асм - жила тонка.


 
J_f_S ©   (2008-03-27 01:47) [11]

Ассемблер по сути гораздо проще любого языка высокого уровня. Другое дело, что его грамотное использование требует высокой квалификации ;)


 
Германн ©   (2008-03-27 01:58) [12]


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

Проще конечно. Но кроме одного. Труднее понять чужой код на ассемблере. Особенно если имеешь в наличии только кусок кода программы.


 
J_f_S ©   (2008-03-27 02:00) [13]


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

Вот! А вот это уже вопрос квалификации! ;)


 
Игорь Шевченко ©   (2008-03-27 02:02) [14]


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


В блаженной памяти 1983 году я изучал код ADAMINT и ADAREP (это системы макросов и отчета для ADABAS), написанный на ассемблере и умилялся - до чего ж складно написано :)


 
Германн ©   (2008-03-27 02:13) [15]


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

Да. Я тоже много складных асм кодов встречал в те годы. Ну хотя бы в TurboProfessional. Но тогда "деревья были большими", а коды маленькими. Я и сейчас встречаю много складных кодов. Но для микропроцессоров. А это в последнее десятилетие - моя основная специализация. Да и те коды были полными исходниками чего-либо. А "по куску кода" асм понять трудно.


 
Германн ©   (2008-03-27 02:28) [16]


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

Ну это да, но.
Я начинал писать рабочие программы на машинных кодах. Другого варианта не было.
И я делал без особых проблем вставки inline машинных кодов уже в современное время. В чужую программу для 51-го процессора. Тот компилятор асм не поддерживает. Но это я сам добавлял эти вставки и сам понимал, что я делаю.
Но кто ещё, кроме меня, поймёт эти вставки, если у него будут в наличии только они?


 
J_f_S ©   (2008-03-27 02:33) [17]


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

Чтож... Это актуально и для языков высокого уровня, правда в меньшей степени. Докуменнтирование, комментирование, культура кодирования способны облегчить беду :)


 
Германн ©   (2008-03-27 02:42) [18]

О, пардон.
Я забыл упомянуть одно существенное обстоятельство.
Асм код полученный каким-либо дизассемблером понять практически невозможно, если в наличии есть только "кусок" программы. Что, по-моему и представляет сабж.


 
J_f_S ©   (2008-03-27 02:48) [19]

Угу. Данный код явно продукт дизассемблера :) Без полного листинга или на худой конец контекста даже браться не хочется :)


 
Германн ©   (2008-03-27 02:55) [20]


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

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

> DrPass ©   (07.03.08 23:24) [2]


 
J_f_S ©   (2008-03-27 02:58) [21]


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

В связи с плавной флуктуацией точки обсуждения в подобных ветках я всегда начинаю читать с конца ;)


 
Германн ©   (2008-03-27 03:04) [22]


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

Это что? Си-шники так живут?


 
J_f_S ©   (2008-03-27 03:12) [23]


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

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


 
смарт   (2008-03-27 09:07) [24]


> AET ©   (01.03.08 14:43)  

Откуда ты такое выдрал ?


 
clickmaker ©   (2008-03-27 10:32) [25]


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

В бытность мою студентом-практикантом проходил практику в одном из наших КБ... так там люди написали свою ось реального (!) времени на asm86. Талмуд с описанием и исходниками по толщине чуть не догонял БСЭ. И его давали читать всем новоприбывшим, как проверку... ) Осилишь - наш человек ) Нет - тем более )


 
boriskb ©   (2008-03-27 11:43) [26]

> по толщине чуть не догонял БСЭ. И его давали читать всем
> новоприбывшим, как проверку... ) Осилишь - наш человек )
> Нет - тем более )

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


 
clickmaker ©   (2008-03-27 11:48) [27]


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

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


 
J_f_S ©   (2008-03-27 12:21) [28]


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

Чем-то историю с "Эльбрусом" напоминает :)


 
Alien1769 ©   (2008-03-27 14:04) [29]

Что-то мне подсказывает, что эта ветка тесно связана со следующей

http://delphimaster.net/view/15-1206533074/


 
KilkennyCat ©   (2008-03-27 14:35) [30]

Все-таки жаль, что автошема не получилась, тут бы она пригодилась...


 
clickmaker ©   (2008-03-27 15:00) [31]

тут, скорее, нужен "конвектор форматов"


 
Alien1769 ©   (2008-03-27 15:03) [32]


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

А вот не все поймут :))


 
ANTPro ©   (2008-04-05 01:18) [33]

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

адская работа понимать дизассмблированный асм :(
Кстати кроме wasm.ru есть, что-нибудь стоящее по этой теме?
А то с пониманием математики вообще туго :(


 
Германн ©   (2008-04-05 01:36) [34]


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

Ничего "стоящего по этой теме" я вообще не знаю. И не потому, что его "искал, но не нашёл", а потому, что "не искал, бо ненадобно".
Просто в последние и уже многие годы я в основном пишу на ассемблере. Имхо, для большинства микроконтроллеров - это оптимальный вариант.
Но это для микроконтроллеров. А wasm.ru - это для x86.


 
Германн ©   (2008-04-05 01:55) [35]


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

Эээ. А что с математикой?


 
korneley ©   (2008-04-05 02:01) [36]


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

Репитую:"Туго."


 
ANTPro ©   (2008-04-05 02:07) [37]

ну так хоть что-то&#133 хотя надо еще по ZX что-нибудь поискать&#133 может повезет.


 
ANTPro ©   (2008-04-05 02:14) [38]

> [35] Германн ©   (05.04.08 01:55)

много математических операций которые сложно распознать.


 
Германн ©   (2008-04-05 02:30) [39]


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

Опыт + знание стандартных библиотек, коих множество.


 
Loki ©   (2008-04-05 02:54) [40]


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

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

---
WBR, Loki®


 
ANTPro ©   (2008-04-05 02:56) [41]

> [39] Германн ©   (05.04.08 02:30)

под msp430 что является стандартом? (на RTOS не похоже, хотя в 64кб долго ковыряться надо :( )


 
ANTPro ©   (2008-04-05 03:01) [42]

> [40] Loki ©   (05.04.08 02:54)

Писать на асме и понимать по дизассемблированному коду что происходит — это разные вещи.
PS: На асме я тоже писал когда то в школе под ZX :)


 
Германн ©   (2008-04-05 03:04) [43]


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

А я то тут причём? Я - старый, больной человек. (с)  И.О. Паниковский


 
ANTPro ©   (2008-04-05 03:06) [44]

> [43] Германн ©   (05.04.08 03:04)

а вдруг&#133 :)


 
Loki ©   (2008-04-05 05:09) [45]


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

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

---
WBR, Loki®


 
Anatoly Podgoretsky ©   (2008-04-05 15:40) [46]

> Loki  (05.04.2008 5:09:45)  [45]

Не сложно, если голова есть, язык то очень простой, кристально чистый.
Надо изучить архитектуру процессара, быть в ладах с логикой и общей теорией программирования, и держать под рукой справочник команд. На это достаточно 2 часов.
Реальное написание сложных проектов, со скоротью совместимой с ЯВУ требует несколько лет подготовки, на создание хорошо документированой библиотеки макросов.
После чего написание почти не отличается.



Страницы: 1 2 вся ветка

Текущий архив: 2008.05.18;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.028 c
15-1207070549
Andy BitOff
2008-04-01 21:22
2008.05.18
Интерактивный отладчик для PHP


2-1208676738
Mag
2008-04-20 11:32
2008.05.18
Редактирование текстового файла. Замена части текста на другой.


2-1208365866
Dmitry
2008-04-16 21:11
2008.05.18
Ошибка при присваивании значения переменной класса


2-1208585538
Мастак
2008-04-19 10:12
2008.05.18
Процесс не может получить доступ к файлу


2-1208512575
aleko
2008-04-18 13:56
2008.05.18
EnumChildWindows