Giriş yap
En iyi yollayıcılar
Hello EMO | ||||
EMO | ||||
eMoStyLe | ||||
BesimBICER | ||||
GameKinG | ||||
Crysis | ||||
~>!.DεvιLρяιεsт.!<~ | ||||
MeTaL | ||||
TrueCrime | ||||
djhayal3t |
Istatistikler
Toplam 203 kayıtlı kullanıcımız varSon kaydolan kullanıcımız: crayzboy76
Kullanıcılarımız toplam 1186 mesaj attılar bunda 862 konu
Arama
Sosyal yer imi
Sosyal bookmarking sitesinde Emo, Emo nedir, Emo resimleri, Emo Kıyafetleri, Emo Sözleri, Emo Oyunları, EmoTurkey, Emo Nickler, Emo Avatarları, Punk, Punk Resimleri, Punk Avatarları, Rock, Rock Resimleri, Rock Avatarları, Msn Nickleri, Msn Avatarları, Müzik adresi saklayın ve paylaşın
Sosyal bookmarking sitesinde EMO Style ForumPro - Hos Geldiniz adresi saklayın ve paylaşın
Kimler hatta?
Toplam 3 kullanıcı online :: 0 Kayıtlı, 0 Gizli ve 3 Misafir Yok
Sitede bugüne kadar en çok 217 kişi C.tesi Tem. 29, 2017 1:46 am tarihinde online oldu.
En son konular
Reklam
MASM da Macro Aciklamalari...
1 sayfadaki 1 sayfası
MASM da Macro Aciklamalari...
[quote='s3rh47' pid='30464' dateline='1277402052']
Masmda Yazdigimiz ASM kodlarinin bazilari aslen ASM degil macrodur..
Invoke , addr , .if .endif , .while. .endw , gibi terimler aslen ASM degil bunlar MASM macrosudur !
Bilgidim kadari örnek vermeye calisacagim.. Ne ise yaradiklarini ve nasil kullanilmasi Gerektiklerini göstereyim... ( hatam olabilir bende okadar iyi degilim.! )
.if ve endif yada .while gibi macrolar ; döngüler, karsilastirmalar yada istege göre ziplatmalar ( jumplar ) icin kullanilir.......
örnegin:
[size=xx-large].if eax == 1[/size] ; simdi burda == iki tane esittire dikkat etmek gerekiyor..
Eger iki tane == yazilirsa burdaki kontroll .. EAX 1 e esitse dallanMA..
peki 1 esit degil dallanacakdir.. ama nereye dallaniyor tabiki .endif e kadar.!
yabu bu aralik icinde bu yazdigim yazilari birer asm kodu olarak düsünürsek eger eax 1 degilse bunlari dallanmis olacagiz !!
Peki Bu sadece ASM kodu olarak nasil yazabiliiriz sorusuna !
cmp eax,1 ; if eax==1
jnz dallan "
dallan: ;.endif
[size=xx-large].endif[/size]
[size=large]-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-[/size]
[size=xx-large].if eax!=1[/size]
simdi Burda != isaretlere dikkat ediyoruz.. Buda Yukardakinin tersidir..
Eger EAX 1 esit degilse DALLANMA eger Esitse Dallan Demek oluyor..
Bununda ASM kodu olarak asagidaki gibi yazabiliriz...
cmp eax,1
je dallan
dallan:
[size=xx-large].endif[/size]
[size=large]-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-[/size]
[size=xx-large].if eax==1[/size]
Mov eax,3
[size=xx-large].else[/size]
mov eax,4
[size=xx-large].endif[/size]
Yukardaki Örnegi söyle aciklayabilirim...
Söyle Bir Kontroll icermekdedir..
Eger EAX bire esitse mov eax,3 ile eax 3 ver mov eax,4 de gerek kalmadi diyip JMP ile .endif e ziplamakdadir..
Biraz Daha aciklayaci olayim yukarda örneklerde .else olmadigi icin .if eax==1 den direkt .endif e ziplar dedik ama isin icinde .else varsa
ozaman .if eax=1 den .elseye kadar ziplar...
bunun asmde yazilisi
cmp eax,1
jnz dallan
mov eax,3
jmp dallan2
dallan:
mov eax,4
dallan2:
Bunun tersinide == yada != olarak siz tercih edebilirsiniz !!
[size=large]-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-[/size]
[size=xx-large].if eax==1[/size]
mov eax,3
[size=xx-large].elseif eax==2[/size]
mov eax,4
[size=xx-large].endif[/size]
Simdi Burda coklu kontroll yapariz !! Ben sadece 1 tane elseif eax==1 yazdim istersek yüz tane yazabiliriz..
Aciklama olarak
Eger Eax 1 e esit degilse ozaman .elseif eax==2 ye zipla ve burdada eger eax 2 ye esit degilse .endife zipla.. ozaman eax
ne mov eax,3 den nede mov eax,4 den deger alabilir yani kisacasi deger alamaz !!
Ama eger eax ilk kontroll de 1 esitse
Ozaman ikinci Kontrollü yapmaya gerek kalmayip deyip JMP ile .endife ziplar...
Bunun ASMde yazilis bicimi
cmp eax,1
jnz dallan1
mov eax,3
jmp son
dallan1:
cmp eax,2
jnz son
mov eax,4
son:
[size=large]-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-[/size]
[size=xx-large].if eax > 8 [/size]
Simdi burda büyüklük kücüklük kontroll söz konusu!
Okulda ögrendigimiz gibi <> bu isretler kücük / büyük andirmakdadir!
> = Büyük
< = Kücük demekdir...
Burdaki Kontrollümüz..
Eger eax 8 den büyükse DALLANMA 8 den kücükse dallan anlamina gelir...
ASM de yazilis Bicimi
cmp eax,8
JBE dallan
dallan:
Eger < Kücük Isretini kullanirsak...
.if eax < 8
; eger eax 8 den kücükse dallanma 8 den büyükse dallan emrini verir..
asmde yazilis bicimi
cmp eax,8
JNB dallan:
dallan:
.endif
[size=xx-large].endif[/size]
Devami Gelecekdir....
[/quote]
Masmda Yazdigimiz ASM kodlarinin bazilari aslen ASM degil macrodur..
Invoke , addr , .if .endif , .while. .endw , gibi terimler aslen ASM degil bunlar MASM macrosudur !
Bilgidim kadari örnek vermeye calisacagim.. Ne ise yaradiklarini ve nasil kullanilmasi Gerektiklerini göstereyim... ( hatam olabilir bende okadar iyi degilim.! )
.if ve endif yada .while gibi macrolar ; döngüler, karsilastirmalar yada istege göre ziplatmalar ( jumplar ) icin kullanilir.......
örnegin:
[size=xx-large].if eax == 1[/size] ; simdi burda == iki tane esittire dikkat etmek gerekiyor..
Eger iki tane == yazilirsa burdaki kontroll .. EAX 1 e esitse dallanMA..
peki 1 esit degil dallanacakdir.. ama nereye dallaniyor tabiki .endif e kadar.!
yabu bu aralik icinde bu yazdigim yazilari birer asm kodu olarak düsünürsek eger eax 1 degilse bunlari dallanmis olacagiz !!
Peki Bu sadece ASM kodu olarak nasil yazabiliiriz sorusuna !
cmp eax,1 ; if eax==1
jnz dallan "
dallan: ;.endif
[size=xx-large].endif[/size]
[size=large]-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-[/size]
[size=xx-large].if eax!=1[/size]
simdi Burda != isaretlere dikkat ediyoruz.. Buda Yukardakinin tersidir..
Eger EAX 1 esit degilse DALLANMA eger Esitse Dallan Demek oluyor..
Bununda ASM kodu olarak asagidaki gibi yazabiliriz...
cmp eax,1
je dallan
dallan:
[size=xx-large].endif[/size]
[size=large]-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-[/size]
[size=xx-large].if eax==1[/size]
Mov eax,3
[size=xx-large].else[/size]
mov eax,4
[size=xx-large].endif[/size]
Yukardaki Örnegi söyle aciklayabilirim...
Söyle Bir Kontroll icermekdedir..
Eger EAX bire esitse mov eax,3 ile eax 3 ver mov eax,4 de gerek kalmadi diyip JMP ile .endif e ziplamakdadir..
Biraz Daha aciklayaci olayim yukarda örneklerde .else olmadigi icin .if eax==1 den direkt .endif e ziplar dedik ama isin icinde .else varsa
ozaman .if eax=1 den .elseye kadar ziplar...
bunun asmde yazilisi
cmp eax,1
jnz dallan
mov eax,3
jmp dallan2
dallan:
mov eax,4
dallan2:
Bunun tersinide == yada != olarak siz tercih edebilirsiniz !!
[size=large]-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-[/size]
[size=xx-large].if eax==1[/size]
mov eax,3
[size=xx-large].elseif eax==2[/size]
mov eax,4
[size=xx-large].endif[/size]
Simdi Burda coklu kontroll yapariz !! Ben sadece 1 tane elseif eax==1 yazdim istersek yüz tane yazabiliriz..
Aciklama olarak
Eger Eax 1 e esit degilse ozaman .elseif eax==2 ye zipla ve burdada eger eax 2 ye esit degilse .endife zipla.. ozaman eax
ne mov eax,3 den nede mov eax,4 den deger alabilir yani kisacasi deger alamaz !!
Ama eger eax ilk kontroll de 1 esitse
Ozaman ikinci Kontrollü yapmaya gerek kalmayip deyip JMP ile .endife ziplar...
Bunun ASMde yazilis bicimi
cmp eax,1
jnz dallan1
mov eax,3
jmp son
dallan1:
cmp eax,2
jnz son
mov eax,4
son:
[size=large]-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-[/size]
[size=xx-large].if eax > 8 [/size]
Simdi burda büyüklük kücüklük kontroll söz konusu!
Okulda ögrendigimiz gibi <> bu isretler kücük / büyük andirmakdadir!
> = Büyük
< = Kücük demekdir...
Burdaki Kontrollümüz..
Eger eax 8 den büyükse DALLANMA 8 den kücükse dallan anlamina gelir...
ASM de yazilis Bicimi
cmp eax,8
JBE dallan
dallan:
Eger < Kücük Isretini kullanirsak...
.if eax < 8
; eger eax 8 den kücükse dallanma 8 den büyükse dallan emrini verir..
asmde yazilis bicimi
cmp eax,8
JNB dallan:
dallan:
.endif
[size=xx-large].endif[/size]
Devami Gelecekdir....
[/quote]
EMO- EMO Team
- Cinsiyet :
Burçlar :
Mesaj Sayısı : 184
Puan : 247443
Rep Puanı : 5
Doğum tarihi : 28/11/89
Kayıt tarihi : 18/05/11
Yaş : 34
Nerden : EMO world
İş/Hobiler : RCE Student / Game Hacking / Learn Beginner C#,C++,Delphi
Lakap : EMO
1 sayfadaki 1 sayfası
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz
Cuma Ağus. 29, 2014 8:33 am tarafından Hello EMO
» goldenchase.net maden yaparak para kazanma
Cuma Ağus. 29, 2014 8:18 am tarafından Hello EMO
» etichal hacker görsel egitim seti
Çarş. Ağus. 06, 2014 4:57 am tarafından Hello EMO
» KO TBL Source C#
Ptsi Ara. 09, 2013 6:36 am tarafından Hello EMO
» x86 Registers
C.tesi Ağus. 24, 2013 5:02 am tarafından Hello EMO
» [Tutorial] Pegando Address, Pointers de WYD
Çarş. Tem. 10, 2013 7:25 am tarafından Hello EMO
» [Tutorial] Pegando Address, Pointers de CS Metodo²
Çarş. Tem. 10, 2013 7:23 am tarafından Hello EMO
» [Tutorial] Aprendendo basico deASM OLLYDBG
Çarş. Tem. 10, 2013 7:22 am tarafından Hello EMO
» Basic C# DLL injector
Ptsi Tem. 08, 2013 7:48 am tarafından Hello EMO