Форум: "Прочее";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];
Внизиз 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]ну так хоть что-то… хотя надо еще по ZX что-нибудь поискать… может повезет.
← →
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®
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];
Память: 0.61 MB
Время: 2.973 c