19 Nisan 2015 Pazar

mikroişlemciler ders2

zaman kısıtlı konular çok o yüzden direk konuya başlayayım. bugün assemblydeki komutlardan ve registerlardan başlayacağım. hatırlayacağınız üzere intel 8086 işlemcisine göre kodlamayı anlatacaktım.
registerlar :
ilk olarak AX, BX, CX, DX registerlarını anlatalım. registerlar 16 bitlik temel registerlardır. High ve low olmak üzere iki parçadan oluşurlar.




  • AX (accumulator) 
  • BX (base addressing register)
  • CX (counter loop operations) 
  • DX (data in I/O operations)                
bunların dışında pointer register'i , index register'i, segment, instruction ve flag registerleri vardır.
şimdilik isim olarak bilmeniz yeterli ileride detaylı olarak kullanımını örneklendireceğim.










komutlar:

MOV komutu:
atama komutudur. int a=5 gibi. registerlara değer yüklemenizi sağlar.
Kullanım şekli :
MOV AX,2000h
MOV AX,CX
gibi şekillerde olabilir. ilk register atayacağınız register ikinci register ya da değer yüklemek istediğiniz değeri belirtir. ax registeri 16 bitliktir. o yüzden hex sistemde 0000h ve FFFFh arası değerleri yükleyebilirsiniz. eğer al yazmacına atama yapmak isteseydiniz 00h ve FFh arası değerleri kullanmanız gerekecekti.
Örnekler:









yukarıdaki resimi açıklayalım. emu 8086 assemblerı hexadecimal sistemde calışır. yani 16 bitlik sistem. burada ax registerına 0205h değerini atadığımızde 02 ah yazmacına(register)  05 de al yazmacına yüklendi.










mov bx, ax dediğinizde ax yazmacındaki değer bx'e atandı.
kullanacağınız sayıları teker teker hexadecimale çevirmek zorunda değilsiniz. 10 luk tabanda da yazabilirsiniz. emulatör bunu hexadecimale kendisi çevirecektir.Gelin bir örnek verelim.










kodun yanına h (hexadecimal) veya b (binary ) gibi harfler yazmadığınızda emülatör bunu 10 luk tabanda kabul eder. cl yazmacına 21 sayısını yükledik. registerda 15 olarak görüyoruz diyebilirsiniz. ama bu 21 10luk tabandaki sayısının 2 lik tabandaki karşılığıdır. 0001   0101 ifadesini karşılar. görüldüğü üzere ch yazmacına birşey atamadığımız için 00dır. CX registerımızın görünümü 0015H olacaktır ve tuttuğu değer 21 dir.
bugünlük mov atama komutunu anlattık sormak istediklerinizi yazabilirsiniz. seda.cinar@gazi.edu.tr

Hiç yorum yok:

Yorum Gönder