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

Açık Kaynak Kodlu Üretim Yönetim Sistemi

anonim

Ehil, modüler Üretim Yönetim Sistemi, sunduğu geliştirme ortamı ile veritabanı etkileşimli uygulama tasarımlarında çok büyük avantajlar getireceğe benziyor.

Komodo 2.0 Çıktı

FZ

Perl, Python, PHP, Tcl, XML, XSLT için optimize edilmiş ve Ruby, JavaScript gibi pek çok dili de doğrudan destekleyen Komodo 2.0 IDE ActiveState tarafından piyasaya sürüldü.

Söz konusu IDE Mozilla tabanlı olup Windows ve Linux ortamında çalışıyor.

Dikkati çeken özellikleri arasında CGI emülasyonu, Regular Expression desteği, ASPN (ActiveState Programmers' Network) kod deposuna (code repository) erişim de bulunuyor.

BinarySearch ve MergeSort kullandıysanız kodunuzu kontrol edin!

FZ

Algoritmalar mükemmel olabilir ama uygulamaları her zaman öyle olmayabiliyor!

Google'dan Joshua Bloch, yeni günlük girdilerinden birinde Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken diye konuya girip Java standart kütüphanesinde kendi yazdığı BinarySearch fonksiyonunun nasıl bir hata barındırdığını anlatıyor.

Sun Microsystems'e 11 Mayıs 2004 yılında gönderilen hata raporunun yorum kısmı ise epey eğlenceli: "Should be fixed in the next release. Not for Tiger. xxxxx@xxxxx 2004-05-11 Finally fixing for Mustang. Can't even compute average of two ints is pretty embarrassing."

3 Haziran 2006 Cumartesi günü yollanan yorumlara göre ise, benzer problemden ötürü Solaris'teki look komutu yaklaşık 1 GB'den büyük dosyalar için düzgün çalışmıyor.

Teknoloji Sivrisineğe karşı!

conan

Tayland'lı bir yazılımcı kardeşimiz sivrisinekleri bilgisayarımızdan 2 metre uzaklıkta tutan bir program yazmış. Yüksek frekansta ses üreten bu program'ın bir çok OS için sürümü mevcut. Yazın bilgisayar başında kaşınmaktan deliriyorsanız bir de bu programı deneyin ;)

Watcom C/C++ Artık Açık

FZ

Bir zamanların efsanevi C/C++ derleyicisi Watcom C/C++ da artık açık kaynak kodlu.

Aynı zamanda bir Fortran derleyicisi de içeren projedeki yazılımları bu adresten serbestçe çekebilir ve DOS, Windows 9x, NT, Win2000, Win XP işletim sistemleri üzerinde kullanıp programlarınızı derleyebilirsiniz.

"Open Watcom" projesi yürütücülerinin hedefleri arasında derleyiciyi en kısa süre içinde GNU/Linux ve FreeBSD işletim sistemlerine de aktarmak yer alıyor.