-->

Bilgisayar Organizasyonu ve Mimarisi - Niçin Assembly

Posted by : at

Category : computerStudy   BOM   computer


Niçin Assembly

  • Donanımla iletişim kurun (sürücüler, yerleşik sistemleri)
  • Oyunlar, Grafikler
  • Üst düzey programlamanın yapamayacağı bir şey (bağlam anahtarı)
  • Programlamanın daha iyi anlaşılması (ters mühendislik)

Katmanlı Mimari

  • Bilgisayarlar karmaşıktır * Katmanlar -> soyutlama (Aşağıdaki katmanların karmaşıklığını gizleme)

  • Ayrıca programlama dillerini de katmanlandırıyoruz!
  • Program yürütme:
  • Yorumlama
  • Derleme (Çeviri)
  • Her CPU’nun kendi “komut seti” için yerleşik bir yorumlayıcısı vardır (ISA, Komut Kümesi Mimarisi; ikili dildir programlandı)

Makine Seviyeleri

C++ Concepts

Java – Different Concepts

Temel Kavramlar

  1. Üst Düzey Bir Dil (C, C ++, Fortran, Cobol) derlenir (çevrilir) Assembly’e aktarılır.
  2. Assembly Dili (belirli bir CPU için) ikili makine diline birleştirilmiştir
  3. İkili makine dili şu şekilde yorumlanır: bilgisayardaki CPU’lardan biri
  4. CPU (Intel, AMD, vb.) Dijital mantık kullanır yorum yapmak ve üretmek için devreler sonuçlar

Linking ve Loading

  • Montaj (MASM çalıştırma) aslında oluşturmaz yürütülebilecek bir program …
  • Yapılması gereken (en az) 4 temel adım vardır. gerçekleştirilen:
  • Montaj - kodu ikiliye çevir
  • Bağlama - tüm parçaları bir araya getirin ve isimleri çözün
  • Yükleme - programı belleğe taşıyın
  • Yürütme - programı çalıştırın

Assembly Language

  • Belirli bir CPU ailesi için tasarlanmıştır (ör. Intel x86)
  • Bir anımsatıcıdan (basitleştirilmiş komut sözcüğü) oluşur ardından gerekli veriler.
  • Örnek: mov eax, A
  • A olarak adlandırılan konumun içeriğini sicile taşıyın
  • Genel olarak her bir anımsatıcı (talimat), tek bir ikili CPU talimatı

CPU Instruction Set

  • Ek B: (Intel IA-32) hepsini kapsamayacağız
  • Her CPU için değişir
  • Intel makineleri, CISC olarak bilinen bir yaklaşım kullanır
  • CISC = Karmaşık Komut Seti Hesaplama
  • Çok sayıda güçlü ve karmaşık (ancak yavaş) talimat
  • RISC (Azaltılmış) ve yalnızca birkaç çok hızlı çalışan basit talimatlar

Digital Logic

  • CPU’lar, aşağıdaki gibi dijital mantık kapılarından yapılmıştır.NAND, OR, XOR vb.
  • Transistörler ve çeşitli aileleri kullanılarak gerçekleştirilir. silikon cihazlar
  • Süper karmaşık - Bir üzerinde milyonlarca transistör tek CPU

  • Mantık,bilgi işlemin temel dili

Data Representation(Temsili veri)

  • Bilgisayarlar ikili verilerle çalışır (bazen sekizlik taban 8 veya onaltılık taban olarak gösterilir 16)
  • Bunlar arasında nasıl çeviri yapacağınızı bilmelisiniz.
  • Bunlarda basit işlemler yapabilmenizi bekliyorum. bazlar (çoğunlukla sekizliyi göz ardı edebilirsiniz)

İkili Sayılar (2 Taban)

  • Rakamlar 1 ve 0’dır
  • 1 = doğru, akan akım / mevcut bir yük
  • 0 = yanlış, akım yok / şarj yok
  • MSB - en önemli bit
  • LSB - en az anlamlı bit
  • 0’dan başlayarak LSB’den MSB’ye numaralandırılmış bitler

Binary -> Decimal

  • 2’nin kuvvetlerini öğrenin: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096,…
  • Ardından, uygun güçleri toplayın
  • 10110010 = 128 + 32 + 16 + 2 = 178
  • Gerçek programcılar bir hesap makinesi kullanır! Sadece basit değerlere sahip olacağız sınavlarda bir hesap makinesine ihtiyacınız olmaz ve temel pratikler.

Decimal -> Binary

  • Ondalık tamsayıyı tekrar tekrar 2’ye bölün. Her kalan bir çevrilen değerdeki ikili rakam:

İkili Toplama

  • Normal eklemeyle aynı, sağdan sola
  • 0 + 0 = 0
  • 0 + 1 = 1, 1 + 0 = 1
  • 1 + 1 = 0, 1 taşıma ile

Hexadecimal Numbers (Base 16)

  • İkili değerler onaltılık olarak gösterilir
  • O kadar zor değil: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F BUNA İHTİYACINIZ OLACAK! Programcılar Hex’te sık sık çalışıyor

Binary -> Hexadecimal

  • Her onaltılık rakam 4 ikili bite karşılık gelir.
  • Örnek: 000101101010011110010100
  • İkili değeri 4 basamaklı gruplar halinde gruplayın (SAĞDAN başlayarak)
  • 1,2,4’ün kuvvetlerini ekleyerek ikiliyi ondalık sayıya çevirin, ve 8
  • E.g., 0100 = 4, 1001 = 8 + 1 = 9, 0110 = 4 + 2 + 1 = 7, 1010 = 8 + 2 = 10, 0110 = 4 + 2 = 6, 0001 = 1
  • Ondalık sayıyı hex’e çevirin: 1 6 10 7 9 4 = 16A794

Hexadecimal -> Decimal

  • 16: 1,16,256, 4096,… ‘nin kuvvetlerini bilmeniz gerekir.
  • ÇOK ZOR! Bunun için bir hesap makinesi kullanın!
  • ÖNEMLİ OLAN, DOĞRU TARAFINDAN rakamlar şunları temsil eder: 160, 161, 162,…
  • AYRICA UNUTMAYIN: x0 = 1 tüm x
  • İkili, sekizli, ondalık veya onaltılık tabanda en sağdaki rakam sayı, 0’ın üssünün tabanıdır

Integer Storage Sizes (Types)

Tamsayı Depolama Boyutları (Türler)

  • Bayt = 8 Bit
  • Kelime = 2 Bayt
  • Doubleword = 2 Kelime = 4 Bayt
  • Quadword = 4 Kelime = 8 Bayt = 64 Bit = 64 bit CPU için maksimum değer

Singed Integers

  • En yüksek bit işareti gösterir.
  • 1 = negatif, 0 = pozitif
  • Onaltılık tamsayının en yüksek basamağı> 7 ise, değer negatif.
  • Örnekler: 8A, C5, A2, 9D

Two’s Complement

  • Negatif sayılar, ikinin tamamlayıcı gösteriminde saklanır

  • Katkı maddesi Tersini temsil eder
  • Sayıyı toplamanın tersine eklerseniz, toplam sıfırdır.

Singed Binary <-> Decimal

  • En yüksek bit 0 ise, onu doğrudan işaretsiz ikili olarak dönüştürün
  • En yüksek bit 1 ise, sayı ikinin tümleyenleri biçiminde saklanır. pozitif eşdeğerini elde etmek için ikinci kez ikisinin tamamlayıcısı:

*Converting signed decimal to binary:

  1. Convert the absolute value into binary
  2. If the original decimal is negative, form the two’s complement

Max & Min Values

Karakter Saklama

  • Karakter setleri (Aynı şeyin Varyasyonları)
  • Standart ASCII (0 - 127)
  • Genişletilmiş ASCII (0 - 255)
  • ANSI (0 - 255)
  • Unicode (0 - 65.535)
  • Null ile sonlandırılmış String
  • Boş bayt ve ardından gelen karakter dizisi
  • Null, sıfır / 0 anlamına gelir

ASCII Tablosunu Kullanma

  • Kitabın kapağının içine geri dönün (Bilmeniz gerekir) bu)
  • Bir karakterin onaltılık kodunu bulmak için:
  • A’nın ASCII Kodu 61 onaltılıktır
  • Karakter kodları 0-31
  • ASCII kontrolü

Endianizm

  • Intel CPU’lar “Küçük Endian” dir
  • Kelimeler, Çift Kelimeler ve Dörtlü Kelimeler için (yani, birden fazla bayt), En Az Önemli Bayt Önce Gelir
  • Dört Sözcük (8 Bayt):

Boole Cebri

  • Dijital devrelerin tasarlandığı temel model ve bir sonuç, hangi CPU’ların çalıştığı
  • Temel assembly dili talimatları böylece Boolean işlemlerini gerçekleştirir (yani onları bilmemiz gerekiyor)
  • George Boole tarafından tasarlanan sembolik mantığa dayalı
  • Boole ifadeleri: NOT, AND, OR

DEĞİL Kapısı

  • Bir Boole değerini tersine çevirir (ters çevirir)
  • Boolean NOT operatörü için gerçek tablosu:

Ve Kapısı

Veya Kapısı

Operatör Önceliği

  1. Parantezler
  2. DEĞİL
  3. VE
  4. VEYA

Hakikat Tabloları

  • Resmi olarak bunları oluşturmanız gerekmeyecek, ancak nasıl yapılacağını hatırlamalısınız. karmaşık bir mantıksal işlemin izini sürmek
  • Son derece karmaşık mantıksal ifadeler genellikle kötü programın bir işaretidir yapı ve tasarım!
  • Örnek: (Y ^ S) ∨ (X ^ ¬S)

Düşünceler …

  • Assembly dili, yazılımın fabrikada nasıl inşa edildiğidir.En düşük seviyeler
  • Assembly dili ile bire bir ilişkisi vardır.İkili makine dilinin.
  • Çoğu programcı hiçbir zaman bir HLL’den fazlasını görmez (ör.C ++) içeride dilinin IDE’si olan(örneğin, Visual Studio) fakat görünen sadece count söz öbeği fakat arka tarafta ide tarafından daha fazla şey oluyor.

    Ve…

  • Artık kimse sekizlik kullanmıyor
  • Hex, manipüle etmenin yararlı bir yolundan başka bir şey değildir ikili sayı sistemi.
  • CPU’lar 3 şey yapar;
  • Assembly programlama sadece daha büyük ve daha karmaşık görevleri yapmak için bu kavramlar kullanır.
  • Ekle (temel tamsayı matematik)
  • Karşılaştır (Boole cebri)
  • Bir şeyleri hareket ettir.

Kısacası editör count söz öbeğini yüksek seviyeden alır Assembly diline cevirir çünkü işlemci “counttan “ anlamaz.


About Avni Kasikci

Hi, my name is Avni Kasikci.

Star