EMO Style ForumPro - Hos Geldiniz
Giriş yap

Şifremi unuttum

Istatistikler
Toplam 202 kayıtlı kullanıcımız var
Son kaydolan kullanıcımız: AnthonyFurey3

Kullanıcılarımız toplam 1186 mesaj attılar bunda 862 konu
Tarıyıcı
 Kapı
 Indeks
 Üye Listesi
 Profil
 SSS
 Arama
Arama
 
 

Sonuç :
 


Rechercher çıkıntı araştırma

RSS akısı


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 


Kimler hatta?
Toplam 3 kullanıcı online :: 0 Kayıtlı, 0 Gizli ve 3 Misafir

Yok

[ Bütün listeye bak ]


Sitede bugüne kadar en çok 92 kişi Paz Ağus. 28, 2016 6:58 am tarihinde online oldu.
En son konular
» İnternetten Para Kazandıran Oyun ! Ödeme Alt Limiti Yok ! DEV KONU
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

Reklam

MASM da Macro Aciklamalari...

Önceki başlık Sonraki başlık Aşağa gitmek

MASM da Macro Aciklamalari...

Mesaj tarafından EMO Bir Cuma Mayıs 27, 2011 11:32 am

[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]

EMO
EMO Team
EMO Team

Cinsiyet : Erkek
Burçlar : Yay
Yılan
Mesaj Sayısı : 184
Puan : 105793
Rep Puanı : 5
Doğum tarihi : 28/11/89
Kayıt tarihi : 18/05/11
Yaş : 27
Nerden : EMO world
İş/Hobiler : RCE Student / Game Hacking / Learn Beginner C#,C++,Delphi
Lakap : EMO

Kullanıcı profilini gör

Sayfa başına dön Aşağa gitmek

Önceki başlık Sonraki başlık Sayfa başına dön


 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz