-
кто может помоч перевести из Асамблера в паскаль
; 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]
Чтож... Это актуально и для языков высокого уровня, правда в меньшей степени. Докуменнтирование, комментирование, культура кодирования способны облегчить беду :)
-
О, пардон. Я забыл упомянуть одно существенное обстоятельство. Асм код полученный каким-либо дизассемблером понять практически невозможно, если в наличии есть только "кусок" программы. Что, по-моему и представляет сабж.
-
Угу. Данный код явно продукт дизассемблера :) Без полного листинга или на худой конец контекста даже браться не хочется :)
-
> J_f_S © (27.03.08 02:48) [19] > > Угу. Данный код явно продукт дизассемблера
Это уже давно было определено:
> DrPass © (07.03.08 23:24) [2]
-
> Германн © (27.03.08 02:55) [20]
В связи с плавной флуктуацией точки обсуждения в подобных ветках я всегда начинаю читать с конца ;)
-
> J_f_S © (27.03.08 02:58) [21] > >
Это что? Си-шники так живут?
-
> Германн © (27.03.08 03:04) [22] > > J_f_S © (27.03.08 02:58) [21]> > Это что? Си-шники так > живут?
Сишники еще и не так живут ;) Чтение с конца треда это не моя перверсия, а скорее особеность общения на форумах с плоской организацией хода обсуждения. Но мы как раз уводим обсуждение далеко от проблематики автора.
-
> AET © (01.03.08 14:43)
Откуда ты такое выдрал ?
-
> [14] Игорь Шевченко © (27.03.08 02:02) > > > Труднее понять чужой код на ассемблере. > > > В блаженной памяти 1983 году я изучал код ADAMINT и ADAREP > (это системы макросов и отчета для ADABAS), написанный на > ассемблере и умилялся - до чего ж складно написано :)
В бытность мою студентом-практикантом проходил практику в одном из наших КБ... так там люди написали свою ось реального (!) времени на asm86. Талмуд с описанием и исходниками по толщине чуть не догонял БСЭ. И его давали читать всем новоприбывшим, как проверку... ) Осилишь - наш человек ) Нет - тем более )
-
> по толщине чуть не догонял БСЭ. И его давали читать всем > новоприбывшим, как проверку... ) Осилишь - наш человек ) > Нет - тем более )
И что подразумевалось под "осилишь"? :))
-
> И что подразумевалось под "осилишь"? :))
прочитать, сделать умное лицо, сказать "круто", прокомментировать пару строчек "здесь вот mov ax, 0 я бы убрал, а вместо него... ну и т.д." шутка. на самом деле, никто кроме отцов-основателей в этом хозяйстве не разбирался, но в те времена еще жива была такая установка: использовать только самописный софт и электронику только отечественного производства. Потому что в буржуинских могут сидеть "жучки"... )
-
> clickmaker © (27.03.08 11:48) [27]
Чем-то историю с "Эльбрусом" напоминает :)
-
-
Все-таки жаль, что автошема не получилась, тут бы она пригодилась...
-
тут, скорее, нужен "конвектор форматов"
-
> конвектор форматов
А вот не все поймут :))
-
> [18] Германн © (27.03.08 02:42) > Асм код полученный каким-либо дизассемблером понять практически > невозможно
адская работа понимать дизассмблированный асм :( Кстати кроме wasm.ru есть, что-нибудь стоящее по этой теме? А то с пониманием математики вообще туго :(
-
> ANTPro © (05.04.08 01:18) [33] > > > [18] Германн © (27.03.08 02:42) > > Асм код полученный каким-либо дизассемблером понять практически > > невозможно > > адская работа понимать дизассмблированный асм :( > Кстати кроме wasm.ru есть, что-нибудь стоящее по этой теме? > > А то с пониманием математики вообще туго :( >
Ничего "стоящего по этой теме" я вообще не знаю. И не потому, что его "искал, но не нашёл", а потому, что "не искал, бо ненадобно". Просто в последние и уже многие годы я в основном пишу на ассемблере. Имхо, для большинства микроконтроллеров - это оптимальный вариант. Но это для микроконтроллеров. А wasm.ru - это для x86.
-
> А то с пониманием математики вообще туго :( >
Эээ. А что с математикой?
-
> Германн © (05.04.08 01:55) [35] > > Эээ. А что с математикой?
Репитую:"Туго."
-
ну так хоть что-то
хотя надо еще по ZX что-нибудь поискать
может повезет.
-
> [35] Германн © (05.04.08 01:55)
много математических операций которые сложно распознать.
-
> ANTPro © (05.04.08 02:14) [38] > > > [35] Германн © (05.04.08 01:55) > > много математических операций которые сложно распознать. > >
Опыт + знание стандартных библиотек, коих множество.
-
> [37] ANTPro © (05.04.08 02:07) > хотя надо еще по ZX что-нибудь поискать… > может повезет.
если есть сканнер и вы в Питере - то повезёт. Есть много бумаги по asm-у для него (но именно БУМАГИ, в электронке нет ничего :( ). P.S.: Не хочу понтоваться, но в детстве (87 г., 7-й класс гуманитарной школы), когда я написал СОБСТВЕННЫЙ загрузчик уровней для игрушки (с графикой и музыкой) на чистом асме (для АГАТ-2 (если кто такое чудо видел/помнит)) - препод в школе был в полном ауте... P.P.S.: Заняло недели две, пару кб, листинги валяются дома до-сих пор (жалко выкинуть детские поделки)...
--- WBR, Loki®
-
> [39] Германн © (05.04.08 02:30)
под msp430 что является стандартом? (на RTOS не похоже, хотя в 64кб долго ковыряться надо :( )
-
> [40] Loki © (05.04.08 02:54)
Писать на асме и понимать по дизассемблированному коду что происходит это разные вещи. PS: На асме я тоже писал когда то в школе под ZX :)
-
> ANTPro © (05.04.08 02:56) [41] > > > [39] Германн © (05.04.08 02:30) > > под msp430 что является стандартом? (на RTOS не похоже, > хотя в 64кб долго ковыряться надо :( ) >
А я то тут причём? Я - старый, больной человек. (с) И.О. Паниковский
-
> [43] Германн © (05.04.08 03:04)
а вдруг
:)
-
> [42] ANTPro © (05.04.08 03:01)
Да я прекрасно знаю, что "написать своё" и "разобрать чужое" - далеко не одно и то же. Мой пост относился к вопросу: "сложно-ли освоить asm самостоятельно (по книжкам)".
--- WBR, Loki®
-
> Loki (05.04.2008 5:09:45) [45]
Не сложно, если голова есть, язык то очень простой, кристально чистый. Надо изучить архитектуру процессара, быть в ладах с логикой и общей теорией программирования, и держать под рукой справочник команд. На это достаточно 2 часов. Реальное написание сложных проектов, со скоротью совместимой с ЯВУ требует несколько лет подготовки, на создание хорошо документированой библиотеки макросов. После чего написание почти не отличается.
|