Açıklamalı Basit 8086 Assembly Dil Programları

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Montaj seviyesi programlama, düşük seviye için çok önemlidir yerleşik sistem tasarım, donanımı işlemek için işlemci talimatlarına erişmek için kullanılır. Daha az sayıda saat döngüsü tüketen ve daha az bellek alan verimli kod yapmak için kullanılan en ilkel bir makine seviyesi dilidir. üst düzey programlama dili . Programcının gömülü donanımdan haberdar olması gereken bir programı yazmak için eksiksiz bir donanım odaklı programlama dilidir. Burada, montaj seviyesi programlama 8086'nın temellerini sağlıyoruz.

Montaj Seviyesi Programlama 8086

Montaj Seviyesi Programlama 8086



Montaj Seviyesi Programlama 8086

derleme programlama dili anımsatıcılar kullanılarak geliştirilmiş düşük seviyeli bir dildir. Mikrodenetleyici veya mikroişlemci yalnızca 0'lar veya 1'ler gibi ikili dili anlayabilir, bu nedenle derleyici, assembly dilini ikili dile dönüştürür ve görevleri gerçekleştirmek için belleği depolar. Programı yazmadan önce, yerleşik tasarımcıların denetleyicinin veya işlemcinin belirli donanımı hakkında yeterli bilgiye sahip olması gerekir, bu nedenle önce 8086 işlemcinin donanımını bilmemiz gerekir.


İşlemcinin Donanımı

İşlemcinin Donanımı



8086 İşlemci Mimarisi

8086, tümü bir sistem veriyolu kullanılarak harici olarak CPU'ya bağlanan seri veriyolu, RAM ve ROM, G / Ç aygıtları gibi tüm çevre aygıtları için temsil edilen bir işlemcidir. 8086 mikroişlemci, CISC tabanlı mimari ve 32 G / Ç gibi çevre birimlerine sahiptir, Seri iletişim , anılar ve sayaçlar / zamanlayıcılar . Mikroişlemci, işlevleri okumak ve kaydetmek için bir bellek gerektiren işlemleri gerçekleştirmek için bir program gerektirir.

8086 İşlemci Mimarisi

8086 İşlemci Mimarisi

Montaj seviyesi programlama 8086, bellek kayıtlarına dayanır. Kayıt, ana bölümdür. mikroişlemciler ve denetleyiciler Verilerin daha hızlı bir şekilde toplanmasını ve depolanmasını sağlayan bellekte bulunur. Verileri bir işlemciye veya denetleyiciye çarpma, toplama, vb. Gerçekleştirerek değiştirmek istiyorsak, bunu verileri işlemek ve depolamak için yazmaçların gerekli olduğu bellekte doğrudan yapamayız. 8086 mikroişlemci, talimatlarına göre sınıflandırılabilen çeşitli türlerde kayıtlar içerir.

Genel amaçlı kayıtlar : 8086 CPU, 8 genel amaçlı kayıtlardan oluşmuştur ve her bir kaydın, şekilde gösterildiği gibi AX, BX, CX, DX, SI, DI, BP, SP gibi kendi adı vardır. Bunların tümü, dört yazmacın AX, BX, CX ve DX gibi iki kısma bölündüğü ve esas olarak sayıları tutmak için kullanılan 16 bitlik kayıtlardır.

Özel amaçlı kayıtlar : 8086 CPU, IP ve bayrak kayıtları gibi 2 özel işlev kayıtlarından oluşmuştur. IP kaydı, geçerli yürütme talimatına işaret eder ve her zaman CS segment kaydı ile bir araya gelmeye çalışır. Bayrak kayıtlarının ana işlevi, mekanik işlevler tamamlandıktan sonra CPU işlemlerini değiştirmektir ve doğrudan erişemeyiz.
Segment yazmaçları: 8086 CPU, CS, DS, ES, SS gibi temelde herhangi bir veriyi bölüm yazmaçlarında saklamak için kullanılan 4 bölümlü yazmaçlardan oluşur ve bölüm kayıtlarını kullanarak bir bellek bloğuna erişebiliriz.


Simple Assembly Dil Programları 8086

Assembly dili programlama 8086'nın aşağıdaki gibi bazı kuralları vardır:

  • Montaj seviyesi programlama 8086 kod büyük harflerle yazılmalıdır
  • Etiketlerin ardından iki nokta üst üste konmalıdır, örneğin: etiket:
  • Tüm etiketler ve semboller bir harfle başlamalıdır
  • Tüm yorumlar küçük harfle yazılmıştır
  • Programın son satırı END yönergesi ile sonlandırılmalıdır

8086 işlemcilerin verilere erişmek için iki başka talimatı daha vardır; örneğin WORD PTR - word için (iki bayt), BYTE PTR - bayt için.

İşlem Kodu ve İşlemci

İşlem Kodu ve İşlemci

Operasyon kodu: Tek bir talimat, CPU tarafından yürütülebilen işlem kodu olarak adlandırılır. Burada 'MOV' talimatı işlem kodu olarak adlandırılır.

Operandlar: Tek parça verilere işlem kodu tarafından çalıştırılabilen işlenenler denir. Örnek, çıkarma işlemi, işlenen tarafından çıkartılan işlenenler tarafından gerçekleştirilir.
Sözdizimi: ALT b, c

8086 mikroişlemci birleştirme dili programları

Klavyeden Karakter Okumak İçin Bir Program Yazma

MOV ah, 1h // klavye giriş alt programı
INT 21h // karakter girişi
// karakter al içinde saklanır
MOV c, al // alto c'den karakter kopyala

Bir Karakter Okumak ve Göstermek İçin Bir Program Yazın

MOV ah, 1h // klavye giriş alt programı
INT 21h // karakteri diğerine oku
MOV dl, al // karakteri dl'ye kopyala
MOV ah, 2h // karakter çıktı alt programı
INT 21h // karakterini dl olarak göster

Genel Amaçlı Kayıtları Kullanarak Bir Program Yazma

ORG 100 saat
MOV AL, VAR1 // AL'ye taşıyarak VAR1'in değerini kontrol edin.
LEA BX, VAR1 // BX'te VAR1'in adresini al.
MOV BYTE PTR [BX], 44h // VAR1'in içeriğini değiştir.
MOV AL, VAR1 // AL'ye taşıyarak VAR1'in değerini kontrol edin.
SAĞ
VAR1 DB 22s
SON

Kitaplık İşlevlerini Kullanarak Dizeyi Görüntülemek İçin Bir Program Yazın

emu8086.inc // Makro bildirimi dahil
ORG 100 saat
YAZDIR 'Merhaba Dünya!'
GOTOXY 10, 5
PUTC 65 // 65 - 'A' için bir ASCII kodudur
PUTC 'B'
RET // işletim sistemine geri dönün.
Derleyiciyi durdurmak için END // yönergesi.

Aritmetik ve Mantık Komutları

Aritmetik ve mantık biriminin 8086 işlemleri toplama, bölme ve artırma işlemi olmak üzere üç gruba ayrılmıştır. Çoğu Aritmetik ve Mantık Komutları işlemci durum kaydını etkiler.

Assembly dili programlama 8086 anımsatıcıları, işlemleri gerçekleştirmek için kullanılan MOV, MUL, JMP vb. Gibi işlem kodu biçimindedir. Assembly dili programlama 8086 örnekleri

İlave
ORG0000h
MOV DX, # 07H // 7 değerini AX yazmacına taşı //
MOV AX, # 09H // 9 değerini toplayıcı AX'e taşı //
AX, 00H ekleyin // R0 değeri ile CX değeri ekleyin ve sonucu AX'e kaydedin //
SON
Çarpma işlemi
ORG0000h
MOV DX, # 04H // 4 değerini DX yazmacına taşı //
MOV AX, # 08H // 8 değerini toplayıcı AX'e taşı //
MUL AX, 06H // Çarpılan sonuç Akümülatör AX'te saklanır //
SON
Çıkarma
ORG 0000s
MOV DX, # 02H // DX kaydetmek için 2 değerini taşı //
MOV AX, # 08H // 8 değerini toplayıcı AX'e taşı //
SUBB AX, 09H // Sonuç değeri Akümülatörde saklanır A X //
SON
Bölünme
ORG 0000s
MOV DX, # 08H // DX'i kaydetmek için 3 değerini taşı //
MOV AX, # 19H // 5 değerini toplayıcı AX'e taşı //
DIV AX, 08H // son değer Akümülatör AX'te saklanır //
SON

Bu nedenle, bunların hepsi 8086 işlemciler için Assembly Level Programlama 8086, 8086 İşlemci Mimarisi basit örnek programlar, Aritmetik ve Mantık Talimatları ile ilgilidir.Ayrıca, bu makale veya elektronik projeler ile ilgili herhangi bir sorunuz varsa, aşağıdaki yorum bölümünde yorum yaparak bizimle iletişime geçebilirsiniz.