-
1. Data: 2017-08-25 01:05:19
Temat: (announce) organic asm
Od: fir <p...@g...com>
jak wspomnielem zaczlem pisac swoj wlasny asembler na x86
na razie dodalem jedynie pare mnemoniekow (i zero kontroli bledow ani nawet logow)
ale ogolnie poczatkowa wersja dziala
minddetonator.htw.pl/organic2.zip
na razie jest zdolne kompilowac takiego asma jak nizej (prosts testy czy wywola
printfa albo czy stack po callach sie zgadza)
pisanie tego asma jest wielce pouczajace o czym jednak pozniej
(pewnie w weekend dodam wiekszosc podstawowych mnemonikow i jakas elementarna
kontrole bledow)
.code
mov eax 10
back:
dec eax
push eax
push note
call msvcrt.printf
pop eax
pop eax
cmp eax 0
jne back
mov eax esp
push eax
push note2
call msvcrt.printf
pop eax
pop eax
push 0
push zero
push msg
push 0
call user32.MessageBoxA
mov eax esp
push eax
push note2
call msvcrt.printf
pop eax
pop eax
push 0
push zero
push msg
push 0
call user32.MessageBoxA
push 0
call kernel32.ExitProcess
.data
note: " x = %d " 10 0
note2: " esp = %x " 10 0
msg: " hello asm world ! " 0
zero: 0
-
2. Data: 2017-08-25 10:15:08
Temat: Re: (announce) organic asm
Od: fir <p...@g...com>
W dniu piątek, 25 sierpnia 2017 01:05:21 UTC+2 użytkownik fir napisał:
> jak wspomnielem zaczlem pisac swoj wlasny asembler na x86
>
> na razie dodalem jedynie pare mnemoniekow (i zero kontroli bledow ani nawet logow)
ale ogolnie poczatkowa wersja dziala
>
> minddetonator.htw.pl/organic2.zip
>
> na razie jest zdolne kompilowac takiego asma jak nizej (prosts testy czy wywola
printfa albo czy stack po callach sie zgadza)
>
> pisanie tego asma jest wielce pouczajace o czym jednak pozniej
>
>
> (pewnie w weekend dodam wiekszosc podstawowych mnemonikow i jakas elementarna
kontrole bledow)
>
>
> .code
>
>
> mov eax 10
> back:
> dec eax
> push eax
> push note
> call msvcrt.printf
> pop eax
> pop eax
> cmp eax 0
> jne back
>
> mov eax esp
>
> push eax
> push note2
> call msvcrt.printf
> pop eax
> pop eax
>
> push 0
> push zero
> push msg
> push 0
> call user32.MessageBoxA
>
> mov eax esp
>
> push eax
> push note2
> call msvcrt.printf
> pop eax
> pop eax
>
> push 0
> push zero
> push msg
> push 0
> call user32.MessageBoxA
>
> push 0
> call kernel32.ExitProcess
>
> .data
>
> note: " x = %d " 10 0
> note2: " esp = %x " 10 0
>
> msg: " hello asm world ! " 0
> zero: 0
wyglad asma tutaj jeszcze jako tako mi sie podoba - choc nie wiem czy etykiety nie
nalezaloby jednak pisac jakos inaczej, by bylo czytelniej
niepodoba mi sie wyglad sekcji danych - ale na razie nie wiem jak to przerobic - o
tym moze pozniej
-
3. Data: 2017-08-25 19:26:18
Temat: Re: (announce) organic asm
Od: fir <p...@g...com>
minddetonator.htw.pl/organic3.zip
dorobilem jakies reportowanie
wynikow roboty assemblera (co jest przydatne imo)
wyglada to mw tak ->
Organic Assembler (org-asm) by fir 2017
note: this is very early version with some artificial
constraints, no error messages and only few mnemonics implemented,
i will work on it in few days, though
Opening: input.asm
Code selected for assembly :
0 ''
1 ''
2 'mov eax 10'
3 'back:'
4 'dec eax'
5 'push eax'
6 'push note'
7 'call msvcrt.printf'
8 'pop eax'
9 'pop eax'
10 'cmp eax 0'
11 'jne back'
12 ''
13 'mov eax esp'
14 ''
15 'push eax'
16 'push note2'
17 'call msvcrt.printf'
18 'pop eax'
19 'pop eax'
20 ''
21 'push 0'
22 'push zero'
23 'push msg'
24 'push 0'
25 'call user32.MessageBoxA'
26 ''
27 'mov eax esp'
28 ''
29 'push eax'
30 'push note2'
31 'call msvcrt.printf'
32 'pop eax'
33 'pop eax'
34 ''
35 'push 0'
36 'push zero'
37 'push msg'
38 'push 0'
39 'call user32.MessageBoxA'
40 ''
41 'push 0'
42 'call kernel32.ExitProcess'
43 ''
Data selected for build :
0 ''
1 'note: " x = %d " 10 0'
2 'note2: " esp = %x " 10 0'
3 ''
4 'msg: " hello asm world ! " 0'
5 'zero: 0'
6 ''
Building imports :
msvcrt
printf (0x00402400)
user32
MessageBoxA (0x00402440)
kernel32
ExitProcess (0x00402480)
Building data section :
label note: (0x00403000)
label note2: (0x0040300b)
label msg: (0x00403017)
label zero: (0x0040302b)
44 (0x002c) bytes collected in data section
Assembling asm :
111 (0x006f) bytes assembled:
401000 b8 0a 00 00 00 48 50 68 00 30 40 00 ff 15 00 24
401010 40 00 58 58 3d 00 00 00 00 0f 85 e6 ff ff ff 89
401020 e0 50 68 0b 30 40 00 ff 15 00 24 40 00 58 58 6a
401030 00 68 2b 30 40 00 68 17 30 40 00 6a 00 ff 15 40
401040 24 40 00 89 e0 50 68 0b 30 40 00 ff 15 00 24 40
401050 00 58 58 6a 00 68 2b 30 40 00 68 17 30 40 00 6a
401060 00 ff 15 40 24 40 00 6a 00 ff 15 80 24 40 00
Saving Output: result.exe
OK
teraz trzebby dorobic wiecej mnemonikow, (podobnie skoki to etykiety dzialaja tylko w
tyl ;c
-
4. Data: 2017-08-26 11:40:48
Temat: Re: (announce) organic asm
Od: fir <p...@g...com>
dodalem jeszcze troche nowsza wersje
minddetonator.htw.pl/organic4.zip
ktora moze kompilowac kilka wiecej mnemonikow.. w weekend jak mi ogolne obolenie
minie dodam jeszcze
pare
code
mov eax 7
call print_eax
hoo:
add eax 3
call print_eax
; jmp hoo
sub eax 5
call print_eax
imul eax 8
call print_eax
mov eax some_value
call print_eax_hex
mov ecx eax
mov eax (ecx)
call print_eax
mov eax 55
cmp eax 5
jne skip
mov eax 100
call print_eax
skip:
mov eax 200
call print_eax
mov eax 10
back:
dec eax
call print_eax
cmp eax 0
jne back
; zzzzz
call print_esp
call show_msgbox_hello
call print_esp
call show_msgbox_hello
push 0
call kernel32.ExitProcess
print_esp:
mov eax esp
push eax
push note_esp
call msvcrt.printf
pop eax
pop eax
ret
print_eax:
push eax
push note_eax
call msvcrt.printf
pop eax
pop eax
ret
print_eax_hex:
push eax
push note_eax_hex
call msvcrt.printf
pop eax
pop eax
ret
show_msgbox_hello:
push 0
push null_string
push hello_message
push 0
call user32.MessageBoxA
ret
test:
mov eax (ecx)
mov (ecx) eax
ret
.data
note_eax: " eax = %d " 10 0
note_eax_hex: " eax = %x " 10 0
note_esp: " esp = 0x%08x " 10 0
hello_message: " hello asm world ! " 0
null_string: 0
some_value: 33 0 0 0
-
5. Data: 2017-08-26 11:43:51
Temat: Re: (announce) organic asm
Od: fir <p...@g...com>
jak ktos chce moze dodac jakies pszykladowe snipety w asmie ktore dobrze by bylo
zasemblowac i dodam mnemoniki
podobnie moge przemyslec ogolne idee
co i jak nalezy zrobic
-
6. Data: 2017-08-30 19:04:10
Temat: [OT] (announce) organic asm
Od: wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU <N...@g...pl>
a tak na poważnie...
Profesorze! ten Twój post to chyba nie jest do końca taki przypadkowy...
nie?
nagle okazało się, że jakieś dziwne zielone ludziki potrzebują
programistów niskiego poziomu...
cóż to za jakieś dziwne i nieistniejące zagadnienie którego nie da się
oprogramować w androidzie w java?
jak się o tym dowiedzieliśmy (grupa frajers) to informacje ostro zostały
"zdjęte"...
no ale smaczek pozostał... do czego to świat, wolny europejski świat
potrzebował asemblerowców? do dymania? (taki słabointegracyjny żartki
przepraszam musiałem)
-
7. Data: 2017-09-03 20:47:15
Temat: Re: [OT] (announce) organic asm
Od: wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU <N...@g...pl>
(w obowiązku)
jest interpretacja: jedynie c i java na zawsze...
-
8. Data: 2017-09-03 23:02:35
Temat: Re: [OT] (announce) organic asm
Od: fir <p...@g...com>
W dniu niedziela, 3 września 2017 20:47:56 UTC+2 użytkownik wół, wół roboczy, wół
dojno roboczo obronny 'POPIS/EU napisał:
> (w obowiązku)
>
> jest interpretacja: jedynie c i java na zawsze...
nie wydaje mi sie by w swiecie programistow byl jakis spisek antyasmowy - z tego co
obserwuje po necie to dobrzy programisci znaja asma (na tyle ile trzeba) .. slabi
moze i go nie znają ale kto by sie przejmowal slabymi ...
chwilowo robie przerwe a jak naladuje baterie pousuwam limitacje w tym moim asmie..
pozniej moze go przerobie na jakis "auto assembler" (mam na mysli cos bardziej
zaawansowanego niz makro assembler - a poznie moze jakis mix asma z c czy b - a
pozniej moze kompilator c2 - ale na razie troche za wczesnie by o tym konkretnie
pisac.. potrzebuje troche przerwy by dobrze odciazyc lepetyne
-
9. Data: 2017-09-04 21:14:34
Temat: Re: [OT] (announce) organic asm
Od: wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU <N...@g...pl>
> chwilowo robie przerwe a jak naladuje baterie pousuwam limitacje w tym moim asmie..
pozniej moze go przerobie na jakis "auto assembler" (mam na mysli cos bardziej
zaawansowanego niz makro assembler - a poznie moze jakis mix asma z c czy b - a
pozniej moze kompilator c2 - ale na razie troche za wczesnie by o tym konkretnie
pisac.. potrzebuje troche przerwy by dobrze odciazyc lepetyne
jam tam frajer, ale odnoszę wrażenie, że Profesor porusza się pewną
znaną mi już drogą...
-
10. Data: 2017-09-04 22:20:46
Temat: Re: [OT] (announce) organic asm
Od: fir <p...@g...com>
W dniu poniedziałek, 4 września 2017 21:15:18 UTC+2 użytkownik wół, wół roboczy, wół
dojno roboczo obronny 'POPIS/EU napisał:
> > chwilowo robie przerwe a jak naladuje baterie pousuwam limitacje w tym moim
asmie.. pozniej moze go przerobie na jakis "auto assembler" (mam na mysli cos
bardziej zaawansowanego niz makro assembler - a poznie moze jakis mix asma z c czy b
- a pozniej moze kompilator c2 - ale na razie troche za wczesnie by o tym konkretnie
pisac.. potrzebuje troche przerwy by dobrze odciazyc lepetyne
>
> jam tam frajer, ale odnoszę wrażenie, że Profesor porusza się pewną
> znaną mi już drogą...
jaką?