ALCYONEUS

Uzman
Katılım
18 Ağustos 2024
Mesajlar
488
Çözümler
2
Beğeniler
241
Arkadaşlar ön lisans okuyorum Assembly dilini görüyoruz ama hiçbir şey anlamıyorum kaynaklar yetersiz geliyor YT'den açıyorum okulda gördüğümüzden farklıymış gibi geliyor bu dili öğrenebileceğim adam gibi açıklayanbir pdf/kitap/video ya da başka kaynak var mı şundan görmüştüm çok güzel anlatılıyor diye.
 
Assembly dilini öğrenebileceğiniz kaynaklar kısıtlı. Yapay zeka üzerinden yardım alabilirsiniz.
 
Her mimarinin kendi assembly talimatları bulunmakta. ARM ile x86 Assembly aynı değil. Önce onun farkına varmak lazım.

Assembly, makine koduna en yakın dildir. Doğrudan işlemcinin sunduğu talimatları kullanarak kodlama yaparsınız. Programlama dillerinin sunduğu soyut programlama olmadığından ciddi sıkıntı yaşayabilirsiniz aynı mantıkla assembly yazmaya çalışırsanız.

x86 veya ARM'nin talimatlarını öğrenin, ve somut düşünün. Talimatların amacı kesin ve bellidir. Belleği manuel tahsis edersiniz. Sayıları manuel belirtirsiniz. Her şeyi elle yapmanız lazım. Performans ve kod boyutu açısından rakipsiz, güvenlik ve kod anlaşılabilirliği açısından kötü.
 
Ek olarak reverse engineering ile uğraşmıyorsanız hayatınızın hiçbir yerinde karşınıza çıkmayacağını da eklemeden geçemeyeceğim. Mikroişlemci vb dersinde görüyorsanız normaldir. Fakat mikroişlemci programlarken bile assembly kullanılmıyor artık. Onun için güçlü IDE ve emülatörler var. Mesela kullandığınız pic için emülatör bulup yazdığınız c++ kodunu o pic'in kullandığı mimarinin assemblysine (x86 etc) çevirebilirsiniz.
 
Ek olarak reverse engineering ile uğraşmıyorsanız hayatınızın hiçbir yerinde karşınıza çıkmayacağını da eklemeden geçemeyeceğim. Mikroişlemci vb dersinde görüyorsanız normaldir. Fakat mikroişlemci programlarken bile assembly kullanılmıyor artık. Onun için güçlü IDE ve emülatörler var.
Boyut gereksinimleri sebebiyle eskiden gömülü sistemlerde de kullanılıyordu ama günümüz derleyicileri çok akıllı. -Os ile performans kaybı olmadan boyut düşürülebilir, -Oz ile performans kaybı göze alınarak kod boyutu aşırı azaltılabilir.
 
Arkadaşlar ön lisans okuyorum Assembly dilini görüyoruz ama hiçbir şey anlamıyorum kaynaklar yetersiz geliyor YT'den açıyorum okulda gördüğümüzden farklıymış gibi geliyor bu dili öğrenebileceğim adam gibi açıklayanbir pdf/kitap/video ya da başka kaynak var mı şundan görmüştüm çok güzel anlatılıyor diye.

Hangi Assembly olduğunu öğrenmek lazım önce, çünkü türüne göre değişiyor. Genel olarak biraz zor derler ama sonuçta yine mantık yürütme işi yani, programlama gibi.

Zor yanı şu: yazmaçları, belleği, sayı sistemlerini (binary, hex), word'ü, etiketler(komutları) faşan iyi anlaman gerekiyor. Komutlar da bellekteki yerleri oynatıyor, kısaca resmen belleği yönetiyorsun. O yüzden ezber değil, mantık işi.
 
Son düzenleme:
CS:App kaynaklarından Binary Bomb Lab, Binary Attack Lab gibi labları çözebilirsiniz. İnternette birçok kaynak mevcut. Başta zor gelebilir ama çok iyi öğretiyor.
 
Arkadaşlar ön lisans okuyorum Assembly dilini görüyoruz ama hiçbir şey anlamıyorum kaynaklar yetersiz geliyor YT'den açıyorum okulda gördüğümüzden farklıymış gibi geliyor bu dili öğrenebileceğim adam gibi açıklayanbir pdf/kitap/video ya da başka kaynak var mı şundan görmüştüm çok güzel anlatılıyor diye.
Elektronik bölümü okuyorsunuz diye tahmin ediyorum. Öncellikle Assembly makine diline (0 ve 1) en yakın olan programlama dilidir. Bir assembly kodu Assembler (NASM, GNU AS, FASM) dediğimiz araç ile derlenir. Anlaşılması oldukça güç olmasına karşın bazı alanlarda özellikle işletim sistemleri gibi düşük seviyeli programlarda Assembly biçilmez bir kaftandır. C diili de bir nevi Assembly sayılır (Portable Assembly) tek farkı C kodu taşınabilir (Bazı koşullar altında). (POSIX Taşınabilirliği) Yardımcı olabilmemiz için hangi mimari için assembly yazdığınızı sorabilir miyim?
 
Elektronik bölümü okuyorsunuz diye tahmin ediyorum. Öncellikle Assembly makine diline (0 ve 1) en yakın olan programlama dilidir. Bir Assembly kodu assembler (nasm, GNU as, fasm) dediğimiz araç ile derlenir. Anlaşılması oldukça güç olmasına karşın bazı alanlarda özellikle işletim sistemleri gibi düşük seviyeli programlarda Assembly biçilmez bir kaftandır. C diili de bir nevi Assembly sayılır (portable Assembly) tek farkı C kodu taşınabilir (bazı koşullar altında). (posıx taşınabilirliği) yardımcı olabilmemiz için hangi mimari için Assembly yazdığınızı sorabilir miyim?

PIC16F628a 16F877a ve 16F84a da uygulama yapıyoruz ama 7 segment display ve LED uygulamarından öteye geçemiyoruz ben az çok duymuştum bu dili ama böyle olduğu ile ilgili bir bilgi ile karşılaşmadım yani benim istediğim kendim daha fonksiyonel şekilde öğrenmek LED yakacak veya sadece pıc programlayacak şekilde değil üniversitede görüyoruz evet ama temel atma seviyesinde bile değil verilen bilgi havada kalıyor sadece tahtaya yansıtılan kodu yazıyoruz derliyoruz ve proteustan çizdiğimiz devrede pıc'in içine atıp çalıştırıyoruz ama kodların ne işe yaradığına dair hiçbir fikrim yok okulun verdiği kaynaktan da tam anlaşılmıyor.
İyi bir şey olduğunu biliyorum ama şu anki okuduğum bölümde gördüğüm şeyler ile yazılım dili öğrenemeyeceğimi fark ettim internette de çok eski kaynaklar var sorma gereği duydum.
 
PIC16F628a 16F877a ve 16F84a da uygulama yapıyoruz ama 7 segment display ve LED uygulamarından öteye geçemiyoruz ben az çok duymuştum bu dili ama böyle olduğu ile ilgili bir bilgi ile karşılaşmadım yani benim istediğim kendim daha fonksiyonel şekilde öğrenmek LED yakacak veya sadece pıc programlayacak şekilde değil üniversitede görüyoruz evet ama temel atma seviyesinde bile değil verilen bilgi havada kalıyor sadece tahtaya yansıtılan kodu yazıyoruz derliyoruz ve proteustan çizdiğimiz devrede pıc'in içine atıp çalıştırıyoruz ama kodların ne işe yaradığına dair hiçbir fikrim yok okulun verdiği kaynaktan da tam anlaşılmıyor.
İyi bir şey olduğunu biliyorum ama şu anki okuduğum bölümde gördüğüm şeyler ile yazılım dili öğrenemeyeceğimi fark ettim internette de çok eski kaynaklar var sorma gereği duydum.
Anladım. Spesfik bir mimariden ziyade temel Assembly öğrenmek istiyorsanız x86 başlangıç için çok önerilir genelde. Bu yüzden x86 ile öğrenmeye başlayabilirsiniz. Örnek bir C kodu yazın bunu derleyici aracılığı ile assembly koduna çevirip okuyun ve anlamaya çalışın. Eğer sisteminizde gcc derleyicisi varsa gcc -S <dosya_adi.c> sonra bir kod editörünüz ile dosya_adi.s isimli dosyayı açın. İçerisini okuyup C ile karşılaştırın. NASM derleyicisini kullanabilirsiniz "Assembler" olarak .Assembly kodunuz işletim sisteminizden işletim sistemine göre değişir. Ona göre kaynak önerisi yapılabilir. (syscall'ler farklı oluyor vb.) Kaynak olarak İngilizce / Türkçe yazılara bakın derim. "How to learn x86 Assembly?" gibi. Size uygun olanı seçip öğrenmeye başlayabilirsiniz.