C Kodlarınız Assembly Dilinde Nasıl Görünür?

0
Soulblighter
Kodlarınızın Assembler karşılığını görmek isterseniz gcc'ye -S anahtarını girmeniz yeterli. Sonucu merak edenler, bu haberin kaynağı olan bu siteye bakabilir.

Görüşler

0
Geryon
Gcc at&t synax assembly çıktısı üretir bu kodları okumak ve yazmak zahmetlidir. Çoğu assembly programcısı Intel synax assembly'ı tercih ediyor. Eğer programınızın nasıl göründüğünü merak ediyorsanız IDA Pro kullanın (Hem linux hemde windows versiyonları mevcud)

Ayırca siteki asm kodlarının IA32 veya IA64 uyumlu bir CPU için olmadığını söyleyebilirim.(Çoğumuz PC kullanıyoruz ve Assembly terimi IA için kullanılır.(Belki kötü bir tanımdır,gereksizdir,aptalcadır... Ama öyle nasıl ki bakkaldan bana bir adet akkor flamanlı lamba ver yerine sadece lamba ver diyorsak bunda böyle, umarım anlatmak istediğimü düzgün anlatabilmişimdir, el fenerinin "assembly"'dan bahsetmediğim anlaşılmıştır
0
tongucyumruk
Pardon ama daha IA'nın I'si ortalıkta yokken insanlar assembly kodu yazıyorlardı. Dahası insanların ASM ile en çok geliştirme yaptıkları platformun da IA olduğundan şüpheliyim. 1980 öncesindeki PDP vs.. gibi makinalarda yazılan ASM kodlarını boşverseniz dahi sanıyorum en çok ASM kodu 80'lerde Amiga ve Commodore gibi platformlarda Demo amaçlı yazılmıştır. Kısacası şu anda çoğunluğun kullanıyor olması Assembly terimini Intel mimarisi ile kısıtlayamaz. Sonuçta bu kadar yaygın olsa da günümüzde Intel mimarisi üzerinde ne kadar ASM tabanlı geliştirme yapılıyordur sizce?

Not: Benim için ASM=6502 mesela...
0
Geryon
"Kısacası şu anda çoğunluğun kullanıyor olması Assembly terimini Intel mimarisi ile kısıtlayamaz."
Tabii ki kısıtlayamaz. Yanlış anlaşılmasın ben 3dNow! dediğizde assembly dışısınız demiyorum. Burada bir kısıtlama söz konusu değil, genel kullanım söz konusu. Siz "6502 Assembly" yada "PIC Assembly" dediğinizde karışınızdaki ne demek istediğinizi daha kolay kavrayacaktır.

"Intel mimarisi üzerinde ne kadar ASM tabanlı geliştirme yapılıyordur sizce?"
Oldukça falza bugün MMX,SSE demek assembly'da kod yazacaksın arkadaş demek. Yaklaşık olarak tüm 3D oyunlarda izleri görebilirsiniz. (Lütfen C derlecilerindeki MMX desteği ile MMX optimizasyonunu (SMID'la kod üretmek desek pek yanlış olmaz sanırım) karıştırmayın. Bugün SMID kullanan Intel'in derleyicisi var bildiğim kadarıyla fakat SMID için yapılan iyileştirme pekde yeterli değil. (Intel'in derleyicisini kötülediğimi düşünmeyin, pek çok derleyiciden(gcc'de dahil) %30 daha hızlı kod üretiyor :) )
0
Soulblighter
Sitedeki Assembly kodları 32 bir PowerPC mimarisine ait. Kullanılan işletim sistemi ise IBM AIX.

Buraya kendi sistemimde (x86) yazdığım basit bir C kodu ve Assembly çıktısını yazıyorum.

C Kodu:
---------------

#include <stdio.h>
main() {
(void) printf("Hello World\ ");
return (0);
}


Assembly çıktısı:
------------------------------
.file "hello.c"
.section .rodata
.LC0:
.string "Hello World\ "
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
movl $0, %eax
subl %eax, %esp
subl $12, %esp
pushl $.LC0
call printf
addl $16, %esp
movl $0, %eax
leave
ret
.size main, .-main
.section .note.GNU-stack,"",@progbits
.ident "GCC: (GNU) 3.3.6"
0
exalted
Siteyi inceledim, ancak x86 mimarisi asm kodlarına benzetemedim. Yine de bunun bir yolu var mıdır diye büyük merak içerisindeyim. C ile programlamaktan ne kadar zevk alıyorsam asm'den de bir o kadar nefret ediyorum. Şayet x86 ifadeleriyle asm kodu çıktısı üreten bir gcc parametresi varsa lütfen birisi onu buraya yazsın! Böylece sistem mimarisi dersim için teslim etmem gereken projeleri C dilinde yazıp bir hamlede asm'ye dönüştürüp, mutlu mesut teslim edebilirim.

Sevecenlikler,
exalted
0
mentat
asm sevilmez mi ya..

aman dikkat c'den yapacaksan işini derleyici optimizasyonlarını kapat asistan sobelemesin seni..
0
Geryon
Nasıl ki tecrübeli santranç ustaları hangi hamlelerin bir bilgisayar, hangi hamlelerin bir insan tarafından yapıldığını anlyabiliyorsa , tecrübeli bir asm programcısıda bir yere kadar hangi kodun derleyiciden çıktığını hangisinin el ile yazıldığı anlayabilir. (Şüpesiz ki bir yerden sonra aradaki farklı anlamak mümkün olmayacaktır)
0
Ragnor
Intel'in veya Microsoft'un derleyicilerinde de benzer bir özellik olabilir ama kullanmadığım için bilmiyorum. Derleyicilerin Help dosyalarında bu konuda birşeyler olabilir, kurcalayabilirsin.
0
MC
denersen x86 mimarisinde üretilen asm kodunun default olarak x86 kodları olduğunu görebilirsin :)


0
exalted
Bu "x86" mimarisi kod üretimi ile ilgili yazdığımın aslında ifade etmek istediğim şey olmadığının farkına vardım; üstelik olduğu haliyle oldukça da anlamsız kalıyor. Basitçe şöyle ifade etmeye çalışayım: Derleyici çok acımasız kodlar yaratıyor, ben bütün bir dönemi yalnızca asm programlamaya versem yine de o kodu yazamam :) Bilmem anlatabildim mi? İlginiz için teşekkür ederim. Sevecenlikler, exalted
0
mentat
sazanlık yapıyor olabilirim ama, bu "haber" tarihteki tüm c derleyicilerinin ilk çıktıkları günden beri sahip oldukları bir özelliğin gcc'de nasıl kullanıldığını mı söylüyor bize? ama help var zaten..
0
FZ
Sizleri denemek için komplo kurduk, düşündük taşındık, bazı üyelerimiz böyle "lurker" modunda izliyo izliyo ama hiç bişi yazmıyo, bi kontrol edelim öldüler mi kaldılar mı dedik, bam tellerine basalım dedik :-P

O diil de, ben Hacker's Delight kitabını istiyorum, var mı okumuş olan? Yorum yapabilecek olan?
0
Geryon
"O diil de, ben Hacker's Delight kitabını istiyorum, var mı okumuş olan? Yorum yapabilecek olan?"
FZ, sen bana tavsiye etmedin mi o kitabı ? :D bak bulurum forumlarda :D
İlk okuyana bırakmak lazım ilk yorumları diyorum ve seni dinliyorum. 2. yorumu ben yaparım:D
0
FZ
Bulup gösterirsen forumlarda sevinirim. Benim hatırladığım ben bu kitabı yaklaşık bir sene önce DDJ dergisindeki bir yazıda mı ne gördüm (ama ben şimdi bulup gösteremem).
0
Geryon
http://www.fazlamesai.org/forum/viewtopic.php?t=1189
10. mesaj
0
ttk
Sahi, siteye girince isimlerini yanda listede gördüklerimizden neredeyse %50'den fazlası (yoksa daha da mı fazla) hiç yorum vesaire yazıp katkıda bulunmuyorlar (benim gibi bazıları ise geyik yapıp sesini bir türlü kesmiyor o da ayrı mesele, "bilgisi yok fikri var" diyenlerin malzemesi eksik olmasın diye mesai yapıyorum burada, kıymetimiz bilinsin :)
0
ttk
Bu arada, adresi verilen site epey güzel bir yere benziyor.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Ch: C/C++ Yorumlayıcısı

Tarık

Ne kadar başarılı olduğu tartışılır fakat C/C++ programlama dillerini kullanarak yorumlanabilir programlar yaratma fikri oldukça ilginç olsa gerek. Zira birçok yorumlanabilir dilin C dilinden esinlenerek geliştirildiğini ama C dilinin yapı itibariyle yerli çalıştırılabilir dosya (native executable) üretmeye daha yatkın olduğunu düşünürsek.

Video4Skype

anonim

İnternet üzerinden sesli görüşme yapmak konusunda ses kalitesiyle bir devrim yaratan Skype herkesin malumu... Ancak siz de benim gibi "Yahoo Messanger"dan görüntü iletip Skype ile ses bağlantısı kurmakla uğraşıyorsanız bu yazılım tam size göre. Buradan ulaşabileceğiniz yazılım şu anda parasız indirilebiliyor.

Adaptec Easy CD Creator sürprizi!

larweda

Adaptec`in kardeş firması Roxio`nun CD yazma programı Easy CD Creator`un yeni versiyonu (5.0) Windows 2000 işletim sürümü üzerinde tam kurulum yapıldığı zaman İşletim sistemini kurtarılamaz bir şekilde dağıtıyormuş.

Rakun XML Uygulama Platformu 0.3.2 Çıktı

evolution

Web tabanlı kurumsal uygulamaları (ERP, MRP, CRM, v.b.) XML yapısında geliştirme altyapısını sunan Rakun Platformu 0.3.2 sürümüne ulaştı. Detaylı bilgi için buraya tıklayabilirsiniz.

Wiki motoru Wikepage'in 2006.1 sürümü çıktı!

fox

Wikepage, bir Türk tarafından kodlanmakta olan 25Kb boyunda MySQL veritabanı gerektirmeyen, çokludilli, çoklusite destekli, şifre korumalı, dosya yükleme destekli, belkide FTP kullanmaniza gerek kalmadan site yapmanin en kolay yolu. "Ulusal" wikimiz olmasada (ulusallık bu sıralar çok tartışılınca dayanamadım) yine de bizi temsil eden bu ufak yazılıma bir bakın. Wikepage'e bu siteden ulaşabilirsiniz.