ÖNEMLİ AÇIKLAMA: Bu derslerdeki sunumların kısa bir özetini göstermek için hazırlanmıştır. Burada türkçeleştirilmemiş olan kısımlar sorulmayacak

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "ÖNEMLİ AÇIKLAMA: Bu derslerdeki sunumların kısa bir özetini göstermek için hazırlanmıştır. Burada türkçeleştirilmemiş olan kısımlar sorulmayacak"

Transkript

1 ÖNEMLİ AÇIKLAMA: Bu derslerdeki sunumların kısa bir özetini göstermek için hazırlanmıştır. Burada türkçeleştirilmemiş olan kısımlar sorulmayacak manası asla taşınmamalıdır. 1 nolu ders notu da dahil olmak üzere bazı bilgiler sorulabilir. Buradaki amaç, öğrenciye az bir katkı sağlamaktır. Bu nedenle notların hem ingilizcesine, hemde türkçesine birlikte bakılmalı, öyle çalışılmalıdır. Her ders notunun türkçeleştirilen kısmı hangi ders notuna aitse o başlığı taşıyacaktır. LECTURE Mikroişlemcisinin registerları CPU da registerlar bilgiyi geçici saklamak amaçlı kullanılır. Bu bilgi 1 veya 2 bytelik veri veya verinin adresi olabilir. 8088/8086 da genel amaçlı registerlar 16 bitlik yada 8 bitlik olarak kullanılabilirler. Diğer bütün registerlar 16 bit olarak kullanılır. 8-bitlik registerın diziliş sırası: D7 D6 D5 D4 D3 D2 D1 D0 16-bitlik registerın diziliş sırası: D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Genel amaçlı registerlar16 bit olarak AX, BX, CX, DX şeklinde, 8 bitlik gösterimde ise AH, AL, BH, BL, CH, CL, DH, DL şeklinde ifade edilebilirler. Pointerlar 16 SP (stack pointer), BP(base pointer) Indexler 16 SI (source index), DI(destination index) Segmentler 16 CS (code segment), DS(data segment) SS (stack segment), ES(extra segment) Instruction 16 IP (instruction pointer) Flag 16 FR (flag register) Daha öncede belirttiğimiz gibi genel amaçlı registerlar ya yüksek değerlikli byte AH, yada düşük değerlikli byte AL şeklinde 8 bitlik durumlara ayrılabilir ama diğerleri 16 bitle gösterilmek zorundadır. ASSEMBLY PROGRAMLAMAYA GİRİŞ MAKİNE DİLİ: 0 ve 1leri içeren programa makine dili denir. Assembly Dilleri, makine kodu komutları için (mnemonics)hatırlatıcı kodlar sağlar. Mnemonics: Kodların yerini tutan kullanıcının kolay hatırlamasını sağlayan kısaltmalardır. Assembly Dili Programlama: Assembly Dili program, assebly diliyle yazılmış komutların bulunduğu satırlardan oluşur. Komut hatırlatıcı kod ve 2 adet işlemciden (üzerinde işlem yapılan değerler) oluşur MOV komutu MOV hedef, kaynak; kaynaktaki işlenen değeri hedefe kopyala. Example: (8-bit ) MOV CL,55H ;55H ı CL registerına kopyala/taşı. MOV DL,CL ;CL registerının içeriğini DL ye taşı (şimdi DL=CL=55H) Veri flag registerları hariç bütün registerlar arasında taşınabilir. Kaynak ve hedef registerlarının boyutları uyumlu olmalıdır. Veri sadece segment olmayan registerlar arasında direk taşınabilir. Veriyi segment registerlarına direk taşıyamayız. Örnekler: MOV BX,14AFH ; move 14AFH into BX (legal) MOV SI,2345H ; move 2345H into SI (legal) MOV DI,2233H ; move 2233H into DI (legal) MOV CS,2A3FH ; move 2A3FH into CS (illegal) (Kod segmente direk 2A3FH bilgisini yazmaya kalkmış, bunu önce normal bir registera yazmalı, oradan segment registerına aktarmalıydı) MOV DS,CS ;move the content of CS into DS (legal) 1

2 MOV FR,BX ;move the content of BX into FR (illegal) (Flag registerlarına asla veri taşınamaz) MOV DS,14AFH ;move 14AFH into DS (illegal) LECTURE 3 ADD Komutu ADD hedef, kaynak ; Kaynaktaki veriyle hedefteki veriy topla. Örnek: MOV AL,24H ; 24H ı AL registerına taşı MOV DL,11H ; 11H ı DL registerına taşı ADD AL,DL ;AL=AL+DL (AL=35H) (DL =11H) toplama işlemi sonucunda hedefteki değer değişirken, kaynak hala aynı değeri muhafaza etmektedir. Toplama işlemi direk bir registerdaki veriyle direk anlık veri arasında da yapılabilir. MOV CH,24H ADD CH,11H Program segmentleri Segment: Segment 64Kbyte kadar hafıza alanına sahip 16 ile bölünebilen adreslere sahip kısımlardır (16ya bölünebilmesi demek son bitin 0H olması demektir) Assembly Dili Programı 3 segment içerir: code segment : Program kodlarını (komutlarını) içeren kod segment data segment : program tarafından kullanılan veriyi saklamada kullanılan veri segmenti stack segment: Bilgiyi geçici olarak saklamakta kullanılan yığın segmenti. Lojiksel ve Fiziksel Adres: Fiziksel Adres 20 bitlik adrestir ve adres busla taşınır için 00000H FFFFFH aralığına sahiptir. Offset Address ofset adresi 64 Kbytelik segment içindeki yeri gösterir. Sahip olduğu aralık 0000H FFFFH tır. Logical Address, Lojik Adresi, Segment adresi ve ofset adresini içerir. Kod segmentteki Adresleme Komutun lojik adresi CS (Code Segment) ve IP(instruction pointer) içerir CS IP (2500:95F3) Logical Address: Lojik Adresi: CS:IP (Burada IP ofset adresidir) Fiziksel adres CS in 1 hexadecimal basamak sola kaydırılması ve bunun IP ile toplanmasıyla bulunur. Örnek: CS:IP => 2500:95F3H 1. CS ile başla CS i sola kaydır (Sola kaydırmak demek sonuna bir sıfır eklemek demektir) 3. IP ile topla 2E5F3 ( F3) Data segment Veri Segmenti Veri segmenti DS ve ofset değer kullanır da BX, SI ve DI ofset adresini tutmada kullanılırlar. Little endian convention 2 bytelik veri taşınırken düşük değerlikli byte, düşük adres gözüne, yüksek değerlikli byte yüksek adres gözüne yazılır. Aşağıdaki örnekte 35FH verisi AX registerina taşınıyor. AX registerı ise veri segmentin 1500 nolu ofset adresine taşınacak, AX 2 byte olduğu için 1500 ve 1501 nolu adres gözlerini kullanır. 35F3H verisinin düşük değerlikli byteı F3 tür ve 1500 nolu yere bu değer, yüksek değerlikli byte olan 35 ise 1501 nolu veri segmentindeki hafıza gözüne kopyalanır. Ex: MOV AX,35F3H :load 35F3H into AX MOV [1500],AX : copy contents of AX to offset 1500H 2

3 DS:1500 = F3 DS:1501 = 35 Intel bu yapıyı kullanırken motorola bunun tersini kullanır ve adına Big endian convention denmektedir. LECTURE 4 IBM PC LERİN HAFIZA HARİTASI PC de bir programın yürütülebilmesi için, ilk olarak DOS bunu RAM e yazmalıdır. 8086/8088 de 20 bitlik adres var bu da toplamda 1 megabyte hafıza yapıyor. RAM: DOS işletim sistemi, Pcdeki RAMi öncelikle kendine tahsis eder, kalan başka uygulamalar için kullanılır. DOS un versiyonlarına göre farklı miktarda RAM hafızasına ihtiyaç duyulur. Bu nedenle CS, DS ve SS registerlarına herhangi bir değer atayamayız. Böylece bunların sabit bir fiziksel adresi olmaz. Diğer bir neden ise fiziksel adres atama verilen Pcde çalışırken başka bir DOS versiyonu ve RAM boyutu olan Pcde çalışmayabilir. Bu nedenle hafıza yönetimi, DOS işletim sisteminin en önemli fonksiyonlarından birisidir. Video RAM: A0000H dan BFFFFH (128 K) a kadar olan hafıza yerleşimi video için tahsis edilmiştir. Pcde yüklü olan ekran kartına bağlı olarak değişebilir. ROM: C0000H dan FFFFFH(256 K) adresine kadar olan kısım ROM için tahsis edilmiştir. Bunun 64 K lık (F0000H-FFFFFH arası) kısmı BIOS ROM içindir. Diğer kalan kısım, değişik adaptör kartları için kullanılır (harddisk gibi) Geri kalanı boştur. DOS ta 640 Kbytelik hafıza yeri 00000Hdan 9FFFFH a kadar geleneksel hafıza diğer 384 Kblık kısım ise yüksek hafıza bloğu diye adlandırılır. BIOS ROM un fonksiyonları: CPU hafızadaki programları yürütür, güç verildiği zaman CPUya ne yapması gerektiğini söyleyen programların tutulduğu kalıcı bir hafıza vardır. Bu programların tutulduğu ROMdaki yer BIOS olarak adlandırılır. BIOS, RAMi ve CPUya bağlı diğer elemanları test eden programları içerir. Ayrıca DOS ile çevresel cihazların (keyboard, monitor, printer vs) haberleşmesini sağlayan programlarda BIOStadır. Test yaptıktan ve çevresel ürünlerle bağlantı kurulduktan sonra BIOS DOS u diskten RAMe yükler ve PC nin kontrolünü DOS a devreder. STACK: PUSHING AND POPPING OPERATIONS Stack (Yığın) Stack, CPU nun bilgileri geçici sakladığı okunur/yazılır (RAM) hafızanın bir kısmıdır. CPU, sınırlı sayıda register olduğu için bu alana ihtiyaç duyar. Stackin dezavantajı, erişim zamanıdır. Stack RAMin içindedir ve buraya erişmek registerlarla karşılaştırıldığında çok zaman alır. Register CPUnun içinde iken RAMler dışındadır Stacklere nasıl erişilir? SS (stack segment) ve SP (stack pointer) registerları stacke erişmek için kullanılır. Bu registerlar stacke ulaşmak için herhangi bir komut uygulanmadan önce stacke yüklenmiş olmalıdır. 80x86daki her register (segment registerları ve SP hariç) stackte saklanabilir ve stackten CPUya geri getirilebilir. CPU registerini stackte saklamaya PUSH, stackteki içeriği CPU registerına yüklemeye POP denir. SP nin işi push ve pop işlemi yerine getirilirken çok önemlidir. 80x86da SP, o anki hafıza yerleşiminde stackin tepesinden itibareb veri sakladıkça azaltma yapar. Veri CPUya geri yüklenince de artırır. Stack LIFO (Last in First out, Son giren ilk çıkar) prensibiyle çalışır. Genel amaçlı bir register saklanırken veya geri yüklenirken tüm 16 bitlik register olmalıdır PUSH AX şeklinde olmalıdır, PUSH AL veya PUSH AH şeklinde asla yazılamaz. Programın kod kısmının ve stack kısmının birbirinin üzerine yazmamasını sağlamak için, RAM hafızasında farklı uçlarda bulunurlar. Birbirine doğru artar ama asla kesişmemelir aksi takdirde program göçer. 3

4 Tek bir fiziklsel adres birçok farklı lojik adresine ait olabilir. ÖNEMLİİİ: Eğer kaydırılmıl segment registerina eklenen offset adresi FFFFFH ın dışına çıkıyorsa, etrafını dolanır (overlapping) yani çıkan kısım 00000Hdan devam ediyor gibi olur. THE FLAG REGISTER (FR) AND BIT FIELDS 16 bitlik registerdır, bazı bitleri kullanılmaz. 6 bayrak durum bayrağıdır, herhangi bir komut uygulandıktan sonra durumu değişebilir. Bunlar: CF, PF, AF, ZF, OF ve SF tir. Diğer 3 bayrak ise kontrol bayraklardır. CF: Bir aritmetik işlemde, toplamadan sonraki eldeyi veya çıkarmadan sonraki ödüncü belirtir. PF: Bazı işlemlerden sonra düşük değerlikli bytetaki parity kontrolü yapılır. Çift sayıda 1 var ise PF 1 diğer durumlarda 0 dır. Hiç 1 bulunmaması da çift sayıda 1 bulunması demektir. AF: Yapılan bir işlem sonucunda bit pozisyonları 3 ve 4 arasında olan (en sağdaki bitin pozisyonu 0 dır. Yani...D4 D3D2D1D0 gibi düşüneceğiz.) toplamadan sonraki eldeyi veya çıkarmadan sonraki ödüncü belirtir. ZF:B ir aritmetik veya lojik işlem sonucunun sıfır olduğunu belirtir. Eğer ZF 1 ise sonuç sıfırdır. SF: ir toplama veya çıkarma işleminden sonra, sonucun aritmetik işaretini belirtir. Eğer SF 1 ise negatif 0 ise pozitiftir. Bayrakları etkileyen bir komuttan sonra en değerli bit pozisyonu SF bitine yerleştirilir. OF: Taşma, işaretli sayıların toplandığında veya çıkartıldığında oluşan bir durumdur. Taşma işlem sonucunun hedef saklayıcıya sığmadığını gösterir. TF: Eğer trap bayrağı 1 ise tüm devre hata takip işlemi devreye girer, bu zmaan içinde sadece bir komut yerine getirilir. IF: 1 olduğu durumda mikroişlemci dışarıdan gelen kesme isteğine cevap verir. DF: String komutları yürütülürken DI ve/veya SI saklayıcılarının artırılması veya azaltılması işlemlerinin seçimini kontrol eder. Eğer D 1 ise saklayıcılar otomatik olarak azaltılır ve eğer D 0 ise saklayıcılar otomatik olarak artırılır. LECTURE 5 Zero Flagin Döngüler için Kullanılması ZF döngülerde kullanılmaktadır. Döngü sayısı registera girerek her bir döngüde azaltma yapılır ve ZF 0 olduğu zaman döngü biter aşağıdaki örnekte görülebilir: Ex: MOV CX,05 ; CX holds the loop count MOV BX,0200H ; BX holds the offset data address MOV AL,00 ; initialize AL ADD_LP: ADD AL,[BX] ; add the next byte to AL INC BX ; increment the data pointer DEC CX ; decrement the loop counter JNZ ADD_LP ; jump to the next iteration if the counter not zero 80X86 ADRESLEME MODLARI CPU verilere değişik yollardan ulaşabilir bu adresleme modu diye adlandırılır. 80x86da 7 tane adresleme modu vardır 1. register 2. immediate 3. direct 4. register indirect 5. based relative 6. indexed relative 7. based indexed relative 1. Register adresleme modu: 4

5 Registerlar arası veri aktarılır. Registerların boyutları eşit olmalıdır. 2. Immediate addressing mode: Kaynak verisi sabittir. Segment registerları ve flag registerları hariç hepsine direk veri yazılabilir. 3. Direct addressing mode: 4. Register indirect addressing mode: Verinin hafızadaki adresi register tarafından tutulmaktadır. SI, DI ve BX registerları ofset adreslerini tutan pointerlar olarak kullanılır. DS ile birleştirilerek 20 bitlik fiziksel adresler elde edilir. 5. Based relative addressing mode: BX ved BP base registerları olarak kullanılır. Bu modda yerdeğiştirme yapıldıktan sonra efektif adres bulunur. Fiziksel adresi hesaplamak için DS te BX, SS te BP kullanılır. 6. Indexed relative addressing mode: Indeksli relative adresleme modu da based relative adresleme gibi çalışır, sadece burada ofset adreslerini tutan registerlar SI ve DI dir. 7. Based Indexed addressing mode: 5 ve 6 nolu adresleme modlarının birleşimidir, bir base register ve bir index register birlikte kullanılır. LECTURE 6 DIRECTIVES AND SAMPLE PROGRAMS Direktifler assemblera, assembly dilindeki komutları makine diline nasıl çevireceği hususunda yön gösterir. Assembly dili komutları 4 alan içerir [label:](etiket) mnemonic (hatırlayıcı kod) [operands] (işlem yapılanlar) [;comments] (açıklamalar) Direktifleri kullanan bir programda öncelikle segmentler tanımlanır ve yazılan program parçası hangi segmenti ilgilendiriyorsa onun altında yazılır, verileri tanımlarken data segmenti içinde programla ilgili kodlar var ise kod segment altında bunlar yazılır. Sizden direk bir şekilde direktifli program yazmanız sınavda istenmeyecektir. Belki direktifli bir programın analizini yapmanız istenebilir. DB 64 DUP (?) diye segmentin altında tanımlanan bu direktif stack e, 64 bytelik hafıza tahsis eder. Data segment definition Burada üç veri tanımlanmıştır. DATA1, DATA2 ve SUM. Her biri byte boyutunda tanımlanmıştı (DB byte tanımla demektir). DW: word uzunluğunda tanımlar. DATA1 ve DATA2 ilk değerlerine sahipten SUM için sadece yer tahsisi yapılmıştır. Code segment definition Kod segmentte Segment direktifinden sonra hemen PROC direktifi gelir. Prosedürün kısaltmasıdır. PROC ve ENDP direktifleri ay nı etikete sahip olmalıdır. DOS CS ve SS registerlarına otomatik karar verir ama veri registerları elle tanımlanmalıdır. LECTURE 7 FAR and NEAR : (given CS:IP) NEAR da kontrol, o anki kod segment içindedir, sadece IP değişir.değişir. Conditional Jumps Şartlı atlamada, gerekli iart yerine getirilince kontrol yeni yere taşınır. JC (jump if carry- eğer CF 1 ise atla) [CF kontrol edilir], JNZ (jump if not zero- Eğer ZF 0 değil ise atla) [ZF kontrol edilir]. Tablodan genel jumplara göz atmakta fayda var!!! NOT: above- yukarısında ve below-aşağısında 2 işaretsiz sayı arasındaki ilişkiyi gösterirken, greater-büyüktür ve less-küçüktür ise iki işaretli sayı arasındaki ilişkiyi gösterirken kullanılır ve bunlar atlama komutlarında ortaya çıkar. 5

6 Kısa Atlamalar Bütün şartlı atlamalar kısa atlamadır, atlanacak hedef adres o anki hafızanın -128 ile +127 bytelik sınırları arasında olmalıdır. Şartsız Atlamalar JMP label şartsız atlamanın komutudur, verilen etiketteki hedefe direl geçer, burada da şartlı atlamadaki gibi kısa atlama olursa -128 ile +127 byte arasında biryere, NEAR JUMP olursa aynı kod segment içinde herhangi bir yere, FAR JUMP olur ise bulunduğu kod segment dışındaki bir adrese atlar. CALL STATEMENTS Başka bir kontrol transfer komutu da CALL dır. Bir procedure çağırmak için kullanılır. Yine aynı şekilde aynı segment içinde veya dışından çağırmasına göre NEAR veya FAR ile gösterirlir. Çağrılan altprogram yerine getirildikten sonra mikroişlemci nereey geri döneceğini bilir, çünkü sıradaki adresi mikroişlemci otomatik olarak stacke kaydeder. Çağrılan alt programın son komutu RET olmalıdır ki CPU direk buradan stackteki adresi alıp oraya geçiş yapabilsin. DATA TYPES AND DATA DEFINITION Assembler Data Directives ORG (Origin) : ORG ofset adresinin başlangıcı göstermek için kullanılır. ORGtan sonra hexadecimal yada onluk formda sayı yazılabilir, daha çok veri segmentinde kullanılır. DB (define byte) : DB, hafıza byte uzunluğunda yerleri onluk, ikilik, ASCII, Hexadecimal sayılar için tahsis eder.eğer aşağıdaki örnekteki gibi sayının sonuna hiçbirşey yazılmamışsa bu direk onluk olur, sayının sonuna onluk olduğunu göstermek için D yazma zorunluluğu yoktur. Diğerlerini belirtmek zorundasınız!!! DUP (duplicate) : DUP verilen sayıda karakteri çoğaltmaya yarar, mesela 4 tane OFFH tanımlayana kadar bunu aşağıdaki örnekte görüldüğü üzere DUP ile kolayca yapabiliriz Örnek: DATA1 DB 0FFH,0FFH,0FFH,0FFH ;FILL 4 BYTES WITH FF DATA2 DB 4 DUP(0FFH) ;FILL 4 BYTES WITH FF Ex: DATA3 DB 32 DUP (?) ;32 bytelik alan tahsis ediyor DATA4 DB 5 DUP (2 DUP (99)) ;10 byte ı 99 sayısıyla doldur. DW(define word) : DW 2 byte (1 word uzunluğu) uzunluğundaki verileri tanımlamada kullanılır, DUP burada da aynı şekilde kullanılabilir. EQU(equate) : EQU hafızada herhangi bir yeri işgal etmeden sabit bir sayı tanımalamayı sağlar. Burada daha sonra sayıda değişiklik yapılmak istenirse sadece EQUdan sonraki değişince otomatik olarak bütün COUNT değerlerimiz yeni sayımız olacaktır. Program içinde tek tek gerekli yeri bulup sayıyı değiştirmeye gerek kalmamış olacaktır. Örnek: COUNT EQU 25 MOV CX,COUNT DD(define doubleword) : Buda ikili word uzunluğunda yani 4 bytelik alan tahsisi yapar. Diğer tanımlamalara da bakılabilir. LECTURE 8 İŞARETSİZ TOPLAMA İşaretsiz sayılarda bütün bitler veriyi tanımlamada kullanılır, pozitiflik negatifliği gösteren bir işaret biti bulunmaz. 8 bit için 00H dan FFHa kadar yani arası onluk sayılr şeklinde gösterilebilir. 16 bit için ise 0000Hdan FFFFHa kadar hexadecimal sayılar gösterilebilir. ADD: İşaretsiz sayıların toplanması Format: ADD hedef,kaynak ; hedef yeri = hedefteki sayı + kaynaktaki sayı. Toplama işlemi ardında flaglerin bazılarında değişim olur. Aşağıdaki örnekte bu açıkça görülebilir: 6

7 Örnek: MOV AL,0F5H ADD AL,0BH Solution: F B H After the addition AL will contain 00 and the flags are as follows. CF = 1 since there is a carry out from d7 SF = 0 the status of d7 of the result PF = 1 AF = 1 ZF = 1 ADC: Add with carry- Elde ile Topla Format: ADC hedef,kaynak ; hedef yeri = hedefteki sayı + kaynaktaki sayı + CF Kaynak hedefi 1 ile toplar, 0 ise 0 ekler. Çoklu byte ve çoklu word toplamalarında kullanılır. LECTURE 9 İŞARETSİZ SAYILARDA ÇIKARMA Format: SUB hedef,kaynak ; hedef yeri = hedefteki sayı - kaynaktaki sayı Çıkarma işleminde 2ye tümleyen yöntemi kullanılır. SUB komutunun yerine getirilmesi süreci: 1. Çıkan sayının 2ye tümleyenini al (çıkan sayı kaynaktaki sayı oluyor) 2.Bunu çıkartılan sayı ile topla (hedefteki sayı) 3. Eldeyi ters çevir, yani 0 ise 1, 1 ise 0 yap. Ex: MOV AL,3FH ; load AL=3FH MOV BH,23H ; load BH=23H SUB AL,BH ; subtract BH from AL. Place result in AL Execution steps: AL 3F BH (2 ye tümleyen) 1C (CF=0) Step 3 CF=0, ZF=0, PF=0, SF=0. Eğer CF=0 ise sonuç pozitiftir ve hedefteki sayı sonuçtur. Eğer CF=1 ise sonuç negatiftir ve hedefteki sayının 2ye tümleyeni sonuçtur. NOT ve INC komutları bunu değiştirmede (tümleyen almada) kullanılabilir. Burada NOT komutu 0ları 1, 1leri 0 yapmaktadır, buda 1e göre tümleyendir bu sonucu 1 artırmak için INC kullanılır bu durumda ikiye göre tümleyen alınmış olur. Bununla ilgili örneğe notlardan bakılabilir. SBB (subtract with borrow)- Ödünç ile Çıkarma SBB hedef,kaynak ; hedef yeri = hedefteki sayı - kaynaktaki sayı CF Çoklu byte veya çoklu word sayılarında kullanılır. Eğer CF=0 ise SBB aynı SUB gibi çalışır Eğer CF=1 ise, SBB sonuçtan 1 çıkartır. İŞARETSİZ SAYILARIN ÇARPIMI VE BÖLMESİ işaretsiz sayılarda çarpma byte x byte : Burada çarpım yapılan terimlerden birisi AL (AL registerı) olmak zorundadır.diğer çarpılan register yada hafızadaki bir değer olabilir. Çarpım sonucu AX registerina yazılır. Unutulmamalıdır kı bytexbyte boyutundaki çarpımın sonucu word uzunluğunda çıkabilir. word x word : 7

8 Çarpılan sayılardan biri AX registerında bulunmak zorundadır. Diğer çarpılan sayı registerda veya hafıza gözünde bulunabilir. Çarpım sonucunun düşük wordü AX registerına yüksek değerlikli wordü ise DX registerına kaydedilir. word x byte : word ile byte çarpımı word word çarpımına benzerdir, sadece AL registeri byte olan terim olur ve AH registeri 0 olmalıdır. Diğer sayı yukarıdaki gibi olur. Sonuçlarda aynı şekilde kaydedilir. işaretsiz sayıların Bölmesi 1. Byte / byte Pay AL registerında bulunmalı ve AH registerı 0 olmalıdır. Payda asla direk sayı olamaz, hafıza gözündeki veya bir registerdaki bir değer olabilir. Bölme işleminden sonra bölüm AL registerına yazılır, AH registerina ise kalan yazılır. Bölme işleminde DIV BL yazdığımızda direk AX teki sayıyı Bldeki sayıya böler, komut otomatikten Axteki sayıya bölmektedir. 2. word / word Pay AX registerında bulunmalı ve DX registerı 0 olmalıdır Payda, hafıza gözündeki veya bir registerdaki bir değer olabilir. Bölme işleminden sonra bölüm AX registerına yazılır, DX registerina ise kalan yazılır. 3. word / byte Pay AX registerında bulunmalı Payda hafıza gözondeki yada registerdaki bir sayı olabilir. Bölme işleminden sonra bölüm AL registerına yazılır, AH registerina ise kalan yazılır. 4. doubleword / word Pay AX ve DX registerı olmalı, düşük değerlikli word AX, yüksek değerlikli word ise DX e yazılır. Payda hafıza gözündeki yada registerdaki bir sayı olabilir Bölme işleminden sonra bölüm AX registerına yazılır, DX registerina ise kalan yazılır. 5. Divide Error : Eğer payda 0 sayısına bölünmeye kalkarsa bu hatayı verir, aynı şekilde bölüm tahsis edilen registera sığmazsa da bu hata mesajı çıkar. LOGIC INSTRUCTIONSLOJIK KOMUTLARI AND AND hedef,kaynak ; hedef = hedef & kaynak, Hedef ile kaynaktaki sayılar AND işlemine tabi tutulur ve sonuç hedefe yazılır. Aşağıdaki örnekte AND işlemi sonucu sonuç sıfır olunca başka bir etikete atlamasını sağlıyor Ex: AND DH,DH JZ NEXT. NEXT:. This operation will AND DH with itself and if the result is zero set ZF=1 jumping to NEXT. OR OR hedef,kaynak ; hedef = hedef & kaynak, LECTURE 10 ARITHMETIC AND LOGIC INSTRUCTIONS AND PROGRAMS XOR XOR hedef,kaynak ; hedef = hedef & kaynak, XOR komutu registerların içeriğini kendisiyle XORlayarak temizlemede kullanılabilir. XOR ile iki registerin aynı değerde olup olmadığını da anlayabiliriz. 8

9 XOR işlemi yapıldığında terimlerden birisini 0 lardan oluşan bitlerden seçerek diğer terimde hangi bitin değerinin tersinin olmasını istiyorsak orayı 1 yaparak değişiklik yapabiliriz. The XOR instruction can be used to toggle bits of an operand. Ex: XOR BL,04H ; XOR BL with Çözüm: Burada sadece 1 bitinin olduğu D2 biti BL de değişir, diğer değerleri aynı kalır. SHIFT SHR hedef,kaynak ;sağa kaydır Bu lojiksel olarak sağa kaydırır. Terim sağa doğru her işlemde bir bit kayar, her kayma sonrasında en düşük değerlikli bitin değeri CF e yazılır ve en yüksek değerlikli bite 0 yazılır. Örnek: MOV AL,9AH MOV CL,3 ;set number of times to shift SHR AL,CL Solution: 9AH CF=0 (shifted once) CF=1 (shifted twice) CF=0 (shifted three times) 3 defa kaydırıldıktan sonra, AL=13H and CF=0 kaydırma yapılacak hedef terimi register yada hafıza gözündeki bir değer olmalıdır. Direk sayı kaydırılamaz. Eğer sadece 1 defa kaydırılacaksa direk SHR AL,1 yazabiliriz ama 1den fazla kaydırılacaksa bu kaydırma sayısının CL registerına yazılması gerekir ve işlemi SHR AL, CL şeklinde yapmalıyız. SHL hedef,kaynak ;sola kaydır Bu lojiksel olarak sola kaydırır. Terim sola doğru her işlemde bir bit kayar, her kayma sonrasında en düşük değerlikli bitin değerine 0 yazılır ve en yüksek değerlikli bitte bulunan değer CF e aktarılır. Örnek: MOV DH,6 MOV CL,4 ;kaydırma sayısı belirleniyor SHL DH,CL Solution: CF= (shifted left once) CF= CF= CF= (shifted left 4 times) After the 4 shifts DH=60H and CF=0. kaydırma yapılacak hedef terimi register yada hafıza gözündeki bir değer olmalıdır. Direk sayı kaydırılamaz. Eğer sadece 1 defa kaydırılacaksa direk SHL AL,1 yazabiliriz ama 1den fazla kaydırılacaksa bu kaydırma sayısının CL registerına yazılması gerekir ve işlemi SHL AL, CL şeklinde yapmalıyız. İŞARETSİZ SAYILARIN KARŞILAŞTIRILMASI CMP hedef, kaynak ;kaynak ile hedefi karşılaştır. Terimler değişmeden kalır. hedef terimi register yada hafıza gözündeki bir değer olmalıdır, kaynak terimi ise registerdaki, hafıza gözündeki sayı olabileceği gibi direk bir değerde olabilir CMP komutu 2 terimi karşılaştırır ve duruma göre bayraklar değişir: Burada bizi ilgilendiren bayraklar CF ve ZF tir. CMP komutunun bayraklara etkisi 9

10 Terimleri karşılaştır. CF ZF HEDEF>KAYNAK 0 0 HEDEF=KAYNAK 0 1 HEDEF<KAYNAK 1 0 BCD VE ASCII KARAKTERLERİ ÖNEMLİ BUNLARA NOTLARDAN BAKIN. ASCII den BCD ye Çevirme ASCII den paketsiz BCD ye Çevirme 0 dan 9 a kadar olan sayıların ikilik gösterimine BCD denir. 2 tip BCD vardır: 2 tip BCD sayısı vardır, (1) paketsiz BCD (2) paketli BCD Paketsiz BCD: 4 bitlik BCD kodu için 1 byte kullanılırörneğin 9 sayısı paketsiz BCD gösteriminde şeklinde ifade edillir. Paketli BCD: 2 tane 4 bitlik BCD kodu için 1 byte kullanılır. Mesela 59 sayısı paketli BCD olarak şeklinde gösterilir. ASCII koduyla gösterilen rakamları BCD ye çevirmek için yüksek değerlikli 4 bitin bulunduğu yerdeki 0011 atılmalıdır. Bunu yapmak için ASCII sayısı (0FH) ile AND işlemine sokulur. ASCII den paketli BCDye çevirme ASCIIyi paketli BCDye çevirmek için ilk olarak başındaki 011 atılarak paketsiz BCD ye çevrilir. Sonra birleştirilip paketli BCD yapılır. Paketli BCD yi ASCIIye Çevirme Paketli BCDyi ASCIIye çevirmek için önce paketsiz BCDye çevrilmeli sonra da (30H) eklenmelidir. NOT: BCD DEN ASCIIYE, ASCIIDEN BCDYE ÇEVİRME KONUSUNU İYİ ÇALIŞINNNN DERİM, SORU FALAN SORABİLİRİM ) LECTURE 11 BCD TOPLAMA VE DÜZELTME Bazen iki BCD sayısının toplamı BCD sayısı olmaz, bu problemi çözmek için BCD sayısı olmayan kısımdaki nibble a onluk 6 sayısı (0110) ekleriz. Bunun örneklerine bakınız!! Ayrıca bu düzeltmeyi yapan özel bir komutta vardır DAA ;Toplama için ondalık ayarlama DAA eğer gerekli ise, 6 sayısını düşük veya yüksek değerlikli nibble a ekleme işini yapar. DAA sadece ADD ve ADC komutlarından sonra çalışır. Ek olarak DAA nın çalışabilmesi için hedef terimi AL registerı olmak zorundadır. BCD toplamada herhangi bir basamak 9 dan büyük değer alamaz. Summary of DAA action 1. Eğer ADD ve ADC komutu sonrası düşük değerlikli bit 9dan büyük, veya AF=1 ise düşük değerlikli 4 bite 0110 ekler. 2. Eğer yüksek değüerlikli nibble 9dan büyük veya CF=1 ise yüksek değerlikli nibble a 0110 ekler. AF (Auxiliary carry Flag) sadece BCD toplama ve düzeltmede kullanılır. BCD Çıkarma ve Düzeltme DAS ; Çıkarma için Onluk Düzeltme Paketli BCD sayılarının toplanmasında karşımıza çıkan bu problem çıkarma işleminde de olmaktadır.das bu problemi düzeltmek için kullanılır. DAS, SUB veya SBB komutlarından sonra gelmelidir. 10

11 Ek olarak DAS nın çalışabilmesi için hedef terimi AL registerı olmak zorundadır. Summary of DAS action 1. Eğer SUB veya SBB komutu sonrası düşük değerlikli bit 9dan büyük, veya AF=1 ise düşük değerlikli 4 bitten 0110 çıkarılır. 2. Eğer yüksek değerlikli nibble 9dan büyük veya CF=1 ise yüksek değerlikli nibble dan 0110 çıkarılır. DÖNDÜRME KOMUTLARI ROR rotate right Sağa döndür Burada en düşük değerlikli bit hem en yüksek değerliklikli bite gelir hem de CF e kopyalanır. CL döndürme sayısını tutar. Sadece 1 defa döndürülecekse CL ye gerek yoktur. Bunlarla ilgili örneklere iyi bakın arkadaşlar!!!! ROL rotate left Sola döndür MSB En yükske değerlikli bit en düşük değerlikli bite geçer ve aynı zamanda CF e kopyalanır. CL döndürme sayısını tutar. Sadece 1 defa döndürülecekse CL ye gerek yoktur. Bunlarla ilgili örneklere iyi bakın arkadaşlar!!!! RCR rotate right through carry Sağ tarafa carry (elde) üzerinde döndürme En düşük değerlikli bit CF ye geçer, CF deki değerde En yüksek değerlikli bite geçer. CL döndürme sayısını tutar. Sadece 1 defa döndürülecekse CL ye gerek yoktur. RCL rotate left through carry En yüksek değerlikli bit CF e geçer, CF deki değerde en düşük değerlikli bite yazılır. Burada dikkat edilecek iki komut var bilginiz olması açısından, CLC komutu CF i temizler bu komut sonrası 0 olur. STC komutu ise CF i 1 yapar. Bunlar bazı program yazma konusunda başlangıç değerleri verme adına gerekebilir. CL döndürme sayısını tutar. Sadece 1 defa döndürülecekse CL ye gerek yoktur. LECTURE 13 İŞARETLİ SAYILARDAKİ ARİTMETİK İŞLEMLER İşaretli sayılarda en yüksek değerlikli bit sayının pozitif veya negatif olduğunu gösterir. En yüksek değerlikli bit 1 ise sayı negatif 0 ise pozitiftir. Pozitif Sayılar: 8 bitle gösterilen pozitif sayılar 0dan 127ye kadardır. Eğer pozitif sayı 127den büyükse word boyutunda terimler kullanılmalıdır. Negatif Sayılar: 8 bitlik negatif sayıda en yüksek değerlikli bit 1dir ve sayının büyüklüğü 2ye tümleyeni ile bulunur. Bunu assembler kendi yapmasına karşı nasıl yapıldığını bilmekte fayda var. Negatif sayı gösterimini bulmak için 1.sayının büyüklüğünü 8 bit olarak işaretsiz yaz. 2. Her bir bitin tersini al, yani 1leri 0 sıfırları 1 yap. 3. bunu 1 ile topla -5 sayısının nasıl yapıldığını görmek için bu örneğe bakabiliriz in 8-bit binary invert each bit add 1 (hex = FBH) Word-sized byte operands: Word boyutunda işaretli sayılarda temsil ettiği aralıkta genişleyecektir ten e kadar.daha büyük sayılar için çoklu word terimleri seçilmelidir. İşaretli sayı işlemlerindeki Taşma (overflow) problemi 11

12 İşaretli sayılarla işlem yaparken taşma problemi oplabilir. Bu problem, eğer sonuç işlemden sonra register için çok büyükse olur.bu durumda CPU, OF bayrağını bir yapar ve programcı buradaki mesajı anlamalıdır. Aşağıdaki örnekte görülebilir. Ex: DATA1 DB +96 DATA2 DB +70 MOV AL,DATA1 ;AL= (60H) MOV BL,DATA2 ;BL= (46H) ADD AL,BL ;AL= (AL=A6H=-90 invalid!) According to the CPU this is 90, which is wrong.(of=1, SF=1, CF=0) 3 Daha önce de söyledipimiz gibi 8 bitle gösterilen en büyük pozitif sayı 127 oldugundan 166 sayısı gosterilemez. Programcı Ofdeki durumdan bunu anlar. When the OF is set in 8-bit operations 8-bitlik işlemlerde OF nin 1 olduğu durumlar İki durumdan biri olursa OF=1 olur 1. D6 bitinden D7 bitine geçerken (unutmayın en yüksek değerlikli bit D7 en düşük D0 idi) elde oluşuyor ama D7den elde oluşmuyorsa yani CF=0 ise. 2. D7 den elde oluşuyorsa yani CF=1, fakat D6 dan D7 ye elde geçmiyorsa. OF in 16-bit operations 16-bitlik işlemlerde OF nin 1 olduğu durumlar İki durumdan biri olursa OF=1 olur 1. D14 bitinden D15 bitine geçerken (unutmayın en yüksek değerlikli bit D15 en düşük D0 idi) elde oluşuyor ama D7den elde oluşmuyorsa yani CF=0 ise. 2. D15 ten elde oluşuyorsa yani CF=1, fakat D14 ten D15 e elde geçmiyorsa. İşaretli sayılarda hatalı sonuçlardan kaçınma Problemden kaçınmak için terimi genişletebiliriz. Ya uzattığımız terimin tamamı işaret bitlerini bulundurur yani en düşük değerlikli byte dediğimiz D7yi yüksek değerlikli yeni uzatma sonucu oluşan yüksek değerlikli bytetaki bütün bitlere yazarız. 16 bitlik register içinse işaret bitini başka bir registara kopyalabiliriz. İşaret uzatma için iki komut kullanılır: CBW ; Convert signed Byte to signed Word işaretli byte ı işaretli worde çevir CBW, AL registerindaki D7deki değeri, AH registerının bütün bitlerine kopyalar. Notice that the operand is assumed to be AL and the contents of AH is destroyed. Ex: MOV AL,+96 ;AL = CBW ;now AH= and AL= Ex: MOV AL, 2 ;AL = CBW ;now AH= and AL= CWD ; Convert signed Word to signed Doubleword işaretli wordü işaretli double worde çevir CWD, AX registerındaki D15deki değeri (the sign flag) DX in bütün bitlerine kopyalar. Bunlarla ilgili örnekleri incelersiniz. BU NOTLARA ÇALIŞMAK TEK BAŞINA SINAVDAN İYİ BİR NOT ALMAYA YETMEYEBİLİR, İNGİLİZCE NOTLARDAKİ ÖRNEKLERİ ANLAMANIZ GEREKEBİLİR. BAŞARILAR... 12

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar Adresleme Modları 1 Adresleme Modları İşlenenin nerede olacağını belirtmek için kullanılırlar. Kod çözme aşamasında adresleme yöntemi belirlenir ve işlenenin nerede bulunacağı hesaplanır. Mikroişlemcide

Detaylı

8086 Mikroişlemcisi Komut Seti

8086 Mikroişlemcisi Komut Seti 8086 Mikroişlemcisi Komut Seti X86 tabanlı mikroişlemcilerin icra ettiği makine kodları sabit olmasına rağmen, programlama dillerinin komut ve ifadeleri farklı olabilir. Assembly programlama dilininde

Detaylı

80x86 MICROPROCESSOR Instructions

80x86 MICROPROCESSOR Instructions 80x86 MICROPROCESSOR Instructions Inside The 8088/8086 registers Registers Verileri geçici olarak tutar AX 16-bit register AH 8-bit reg. AL 8-bit reg. Category Bits Register Names General 16 AX, BX, CX,

Detaylı

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN Bahar Dönemi Öğr.Gör. Vedat MARTTİN 8086/8088 MİKROİŞLEMCİSİ İÇ MİMARİSİ Şekilde x86 ailesinin 16-bit çekirdek mimarisinin basitleştirilmiş bir gösterimi verilmiştir. Mikroişlemci temel iki ayrı çalışma

Detaylı

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR Toplama (Addition) Toplama (ADD) belirtilen iki yazaç veya yazaç ile belleğin içeriğini toplar ve kullanılan adresleme moduna göre sonucu belirtilen yazaca

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Operand türleri Assembly dili 2 İşlemcinin yapacağı iş makine komutlarıyla belirlenir. İşlemcinin

Detaylı

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri Öğrenci No Ad-Soyad Puan Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri S1) 8086 mikroişlemcisi bitlik adres yoluna ve.. bitlik veri yoluna sahip bir işlemcidir. S2) 8086 Mikroişlemci mimarisinde paralel

Detaylı

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR GÖMÜLÜ PROGRAMLAMA Selçuk Üniversitesi Bilgisayar Mühendisliği Bölümü 2012-2013 Bahar Dönemi Doç.Dr.Erkan ÜLKER 1 İçerik 1. Adresleme Modları 2. İskelet Program

Detaylı

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes Bölüm 3: Adresleme Modları Chapter 3: Addressing Modes 3 1 Veri Adresleme Modları MOV komutu veriyi bir bellek satırından diğer bellek satırına yada yazaca kopyalar Kaynak (source) verilin okunacağı belleğin

Detaylı

b) Aritmetik İşlem Komutları

b) Aritmetik İşlem Komutları b) Aritmetik İşlem Komutları Toplama ve Toplama İle İlgili Komutlar Komut. Format İşlem ADD (ADDition) elde CF ADD D, S (D)+(S) (D); ADC (Add with Carry) elde CF ADC D, S (D)+(S)+CF (D); yeni INC (INCrement

Detaylı

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ 2 8086 Mimarisi 8086 da bulunan tüm iç register lar ve veri yolları

Detaylı

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ KONTROL KOMUTLARI Program Kontrol Komutları Program akıģını bir

Detaylı

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI İKİLİ TABANDA ÇOK BAYTLI ÇARPMA

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI İKİLİ TABANDA ÇOK BAYTLI ÇARPMA İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI İKİLİ TABANDA ÇOK BAYTLI ÇARPMA Aritmetik işlemler onlu sayı sisteminde yapılabileceği gibi diğer sayı sistemleri

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Processor organization Register organization Instruction cycle 2 Processor organization İşlemci

Detaylı

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ Mantıksal Komutlar AND OR XOR NOT TEST And Komutu Yapı olarak AND

Detaylı

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1 Program Kontrol Komutları Mikroişlemciler ve Mikrobilgisayarlar 1 Bu başlık, altında incelenecek olan komutlar program akışını oluşan bazı koşullara göre değiştirmektedirler Program akışında meydana gelen

Detaylı

Araş. Gör. Abdulkerim ŞENOĞLU Araş. Gör. Mehmet AYAN Araş. Gör İbrahim Kök. BM 310 Mikroişlemciler Dersi Laboratuvarı (LAB2)

Araş. Gör. Abdulkerim ŞENOĞLU Araş. Gör. Mehmet AYAN Araş. Gör İbrahim Kök. BM 310 Mikroişlemciler Dersi Laboratuvarı (LAB2) BM 310 Mikroişlemciler Dersi Laboratuvarı (LAB2) 1ÖN ÇALIŞMA SORUSU Mutlu sayı; bir pozitif tamsayının rakamlarının karesi alınıp topladığımızda ve bu işlemi bir kaç kere gerçekleştirdiğimizde bu kare

Detaylı

Assembly Language Programming

Assembly Language Programming Assembly Language Programming Assembly Programming Machine Language binary hexadecimal machine code or object code Assembly Language mnemonics assembler High-Level Language Pascal, Basic, C compiler 2

Detaylı

Debug Komutları C:\>DEBUG - Çizgi işareti artık debug programının komut kabul etmeye hazır olduğunu belirtmektedir.

Debug Komutları C:\>DEBUG - Çizgi işareti artık debug programının komut kabul etmeye hazır olduğunu belirtmektedir. Debug Komutları Assembly komutlarının nasıl çalıştıklarını deneyerek görmek ve yazılan programların amacına uygun çalışıp çalışmadığını anlamak varsa hatalarını düzeltmek için DOS'un DEBUG.COM isimli programı

Detaylı

AND Komutu. and hedef, kaynak

AND Komutu. and hedef, kaynak Mantıksal Komutlar Bu komutlar herhangi bir işlem sırasında mantıksal karşılaştırmalar yapmak için kullanılır. Bu komutlar icra görürken kullanılan register yada bellek bölgesinin içerisindeki değerler

Detaylı

İŞLEMCİ DURUM KAYDEDİCİSİ (PROCESSOR STATUS REGISTER)

İŞLEMCİ DURUM KAYDEDİCİSİ (PROCESSOR STATUS REGISTER) Mikroişlemci içinde yapılan işlemlerin durumlarını programcıya bildiren bir kaydedici mevcuttur. Tüm karar alma mekanizmaları bu kaydedicide gösterilen sonuçlar baz alınarak yapılır. İŞLEMCİ DURUM KAYDEDİCİSİ

Detaylı

MTM 305 MİKROİŞLEMCİLER

MTM 305 MİKROİŞLEMCİLER KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MTM 305 MİKROİŞLEMCİLER Arş. Gör. Emel SOYLU Arş. Gör. Kadriye ÖZ Alt Programlar (Procedure) Büyük programları tek bir kod bloğu

Detaylı

MTM 305 MİKROİŞLEMCİLER

MTM 305 MİKROİŞLEMCİLER KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MTM 305 MİKROİŞLEMCİLER Arş. Gör. Emel SOYLU Arş. Gör. Kadriye ÖZ Basit Giriş/Çıkış Teknikleri IN ve OUT komutları X86 komut kümesi

Detaylı

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma Özet DERS 5 Çarpma, Bölme ve Dallanmalar Öğr. Gör. Eren ERENER AİBÜ/DMYO Neredeyiz Çarpma Bölme Karşılaştırma Jump komutları Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma Kaydediciler ve bellek

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Adresleme modları Pentium ve PowerPC adresleme modları Komut formatları 1 Adresleme modları

Detaylı

CISC Complex Instruction Set Computers

CISC Complex Instruction Set Computers 1 CISC, RISC Mimarisi CISC Complex Instruction Set Computers Emirlerin sayısı ve karmaşıklığını kasteder Emirlerin icrası birkaç clock alır. İyileştirmeler: Multiply ve Divide The number of instruction

Detaylı

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek 8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek kullanımını tanımlamak. Korumalı modda belleğe erişim yöntemlerini

Detaylı

Mikrobilgisayar Mimarisi ve Programlama

Mikrobilgisayar Mimarisi ve Programlama Mikrobilgisayar Mimarisi ve Programlama 2. Hafta Bellek Birimleri ve Programlamaya Giriş Doç. Dr. Akif KUTLU Ders web sitesi: http://www.8051turk.com/ http://microlab.sdu.edu.tr Bellekler Bellekler 0 veya

Detaylı

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta SAKARYA ÜNİVERSİTESİ Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Bölümü Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta Doç.Dr. Ahmet Turan ÖZCERİT Doç.Dr. Cüneyt BAYILMIŞ Yrd.Doç.Dr.

Detaylı

8086 Mikroişlemcisi Komut Seti

8086 Mikroişlemcisi Komut Seti 8086 Mikroişlemcisi Komut Seti SUB ve SBB komutları: SUB (Subtract) yani çıkartma SBB ise borç ile çıkart (SuBtract with Borrow) anlamına gelir. Her iki çıkartma işlemi bir çıkartma sonucu üretmenin yanında

Detaylı

http://alikoker.name.tr Assembly Programlama Dili T e m m u z 2 0 0 3

http://alikoker.name.tr Assembly Programlama Dili T e m m u z 2 0 0 3 Assembly Programlama Dili T e m m u z 2 0 0 3 Hazırlayan : Fehmi Noyan İSİ fni18444@gantep.edu.tr fnoyanisi@yahoo.com http://www2.gantep.edu.tr/~fni18444 1 2 Bu dokümanda Intel firmasının 80x86 serisi

Detaylı

MTM 305 MİKROİŞLEMCİLER

MTM 305 MİKROİŞLEMCİLER KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MTM 305 MİKROİŞLEMCİLER Arş. Gör. Emel SOYLU Arş. Gör. Kadriye ÖZ Ekran ve Klavye İşlemleri EKRAN İŞLEMLERİ Ekrana yazdırma işlemleri

Detaylı

Assembly. Programlama Dili. T e m m u z 2 0 0 3

Assembly. Programlama Dili. T e m m u z 2 0 0 3 Assembly Programlama Dili T e m m u z 2 0 0 3 Hazırlayan : Fehmi Noyan İSİ fni18444@gantep.edu.tr fnoyanisi@yahoo.com http://www2.gantep.edu.tr/~fni18444 1 2 Bu dokümanda Intel firmasının 80x86 serisi

Detaylı

JZ TEST3 (7/3) 1 makine çevrimi süresi

JZ TEST3 (7/3) 1 makine çevrimi süresi Bu programda DC motorun devir sayısı hesabı motor diski ile birlikte çalışan optokuplör yardımıyla bulunuyor.motordan geribildirim sinyali optik alıcı ve verici arasına yerleştirilmiş diskin çıkışından

Detaylı

Bildiğiniz gibi programları oluşturan kodlar ve veriler hafızaya yüklendikten sonra işlemci tarafından satırsatır icra edilirler.

Bildiğiniz gibi programları oluşturan kodlar ve veriler hafızaya yüklendikten sonra işlemci tarafından satırsatır icra edilirler. ADRESLEME MODLARI Bildiğiniz gibi programları oluşturan kodlar ve veriler hafızaya yüklendikten sonra işlemci tarafından satırsatır icra edilirler. Ayrıca CPU tüm giriş çıkış işlemlerini de hafızaya erişerek

Detaylı

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler Ders Özeti Ders Bilgisayarlar Hakkında Mikroişlemci ve Bilgisayar sisteminin yapısı Temel komut işleme süreci x86 kaydedicileri (registers) x86 hafıza temelleri Çevre cihazları x86 assembly diline giriş

Detaylı

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu MİKROBİLGİSAYAR SİSTEMLERİ Teknik Bilimler Meslek Yüksekokulu Dersin Amacı Mikroişlemciler Mikrodenetleyiciler PIC Mikrodenetleyiciler Micro BASIC Programlama Kullanılacak Programlar MSDOS DEBUG PROTEUS

Detaylı

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ Assembly Dili Assembly programlama dili, kullanılan bilgisayar

Detaylı

Mikrobilgisayar Donanımı

Mikrobilgisayar Donanımı KARADENĠZ TEKNĠK ÜNĠVERSĠTESĠ BĠLGĠSAYAR MÜHENDĠSLĠĞĠ BÖLÜMÜ MĠKROĠġLEMCĠ LABORATUARI Mikrobilgisayar Donanımı 1. GiriĢ Bu deneyde 16 bit işlemci mimarisine dayalı 80286 mikroişlemcisini kullanan DIGIAC

Detaylı

Bahar Dönemi BIL382 Mikroişlemcili Sistem Lab. Vize Sınavı,

Bahar Dönemi BIL382 Mikroişlemcili Sistem Lab. Vize Sınavı, Öğrenci No 2015-2016 Bahar Dönemi Ad-Soyad S 1) Aşağıdakilerden terimlerden hangisi Makine Dili (Machine Language) ile doğrudan ilgili bir terim değildir? a) m nemonics b) hexadecimal c) binary d) executable

Detaylı

2. SAYI SİSTEMLERİ VE KODLAR

2. SAYI SİSTEMLERİ VE KODLAR 2. SAYI SİSTEMLERİ VE KODLAR 2.1. Sabit Noktalı Sayı Sistemleri 2.1.1. Ondalık Sayı Sistemi Günlük yaşantımızda kullandığımız sayı sistemi ondalık (decimal) sayı sistemidir. Ayrıca 10 tabanlı sistem olarak

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN İkilik Sayı Sistemi İkilik sayı sisteminde 0 lar ve 1 ler bulunur. Bilgisayar sistemleri yalnızca ikilik sayı sistemini kullanır. ( d 4 d 3 d 2 d 1 d 0 ) 2 = ( d 0. 2 0 ) + (

Detaylı

ÖZET. Lojiksel ve Hiziksel Hafıza. x86 byte düzeni nın Fiziksel Hafıza Yapısı. Ders 3. Temeller

ÖZET. Lojiksel ve Hiziksel Hafıza. x86 byte düzeni nın Fiziksel Hafıza Yapısı. Ders 3. Temeller ÖZT Ders 3 Hafıza Hakkında Hafızayı adresleme Veri (data) tipleri MOV komutu dresleme modları Komut formatı Öğr. Gör. ren RNR İBÜ/DMYO Temeller x işlemcilerin hafıza yapısı byte adreslenebilir şeklindedir.

Detaylı

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı BÖLÜM 3 MSC-51 Ailesi Mikrodenetleyicilerin Komut Kümesi Mikroişlemci Programlama Mikroişlemci ikilik komutlar kabul eder ve sonuçlarını

Detaylı

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ Aritmetik İşlemler Aritmetik iģlemler toplama, çıkartma, çarpma

Detaylı

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar x86 Ailesi 1 8085A,8088 ve 8086 2 Temel Mikroişlemci Özellikleri Mikroişlemcinin bir defade işleyebileceği kelime uzunluğu Mikroişlemcinin tek bir komutu işleme hızı Mikroişlemcinin doğrudan adresleyebileceği

Detaylı

DENEY III RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI

DENEY III RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI DENEY III RAPORU Hazırlayan : Beycan Kahraman No (Beycan) : 040020337 Grup Arkadaşı : Hani İsmail No ( Hani ) : 040020925 Grup No : 3 Deney Adı : G/Ç (PIA) Uygulamaları

Detaylı

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler çağırılma kaynaklarına göre 3 kısma ayrılırlar: Yazılım kesmeleri Donanım

Detaylı

Bölüm 4 Veri Aktarma Komutları

Bölüm 4 Veri Aktarma Komutları Bölüm 4 Veri Aktarma Komutları 4.1. Giriş Veri aktarma komutları genel olarak MOV olarak adlandırılmıştır. Bunun dışında sayı yüklendiğinde LOAD, Yığın kullandığında POP, PUSH, I/O birimlerinden veri aktarmada

Detaylı

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI MİKROİŞLEMCİLİ A/D DÖNÜŞTÜRÜCÜ

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI MİKROİŞLEMCİLİ A/D DÖNÜŞTÜRÜCÜ İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI MİKROİŞLEMCİLİ A/D DÖNÜŞTÜRÜCÜ 1. Giriş Analog işaretler analog donanım kullanılarak işlenebilir. Ama analog

Detaylı

Mikrobilgisayar Mimarisi ve Programlama

Mikrobilgisayar Mimarisi ve Programlama Mikrobilgisayar Mimarisi ve Programlama 8085 Adresleme ve Komutlar Doç.Dr. Cüneyt BAYILMIŞ Doç.Dr. Murat ÇAKIROĞLU Prof.Dr. Hüseyin EKİZ Assembly Formatı Assembly komut satırı biçimi Etiket İşlem Kodu

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI KESMELİ GİRİŞ/ÇIKIŞ

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI KESMELİ GİRİŞ/ÇIKIŞ İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI KESMELİ GİRİŞ/ÇIKIŞ 8259 PIC (Programmable Interrupt Controller) ve 8086 CPU tümleşik devrelerin sinyal akışı

Detaylı

W SAYAC SAYAC SAYAC. SAYAC=10110110 ise, d=0 W 01001001

W SAYAC SAYAC SAYAC. SAYAC=10110110 ise, d=0 W 01001001 MOVLW k Move Literal to W k sabit değerini W saklayıcısına yükler. MOVLW h'1a' W 1A. Hexadecimal 1A sayısı W registerine yüklenir. MOVF f,d Move f f saklayıcısının içeriğini W veya f'e yükler. MOVF SAYAC,0

Detaylı

BIL 362 Mikroilemciler Dersi Arasınav Cevapları 3 Temmuz 2007

BIL 362 Mikroilemciler Dersi Arasınav Cevapları 3 Temmuz 2007 1. mov [0100h],'1' mov [0101h],'4' mov [0102h],'2' mov [0103h],'8' mov [0104h],'7' mov [0105h],'3' mov [0106h],'5' mov [0107h],'9' mov [0108h],'2' mov [0109h],'6' call ekranayazdir ; baslangic durumunu

Detaylı

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA İnsanların işlerini bir takvime ve zamana bağlı olarak yürütmesine benzer şekilde, bilgisayarlar

Detaylı

Aritmetiksel Komutlar

Aritmetiksel Komutlar Aritmetiksel Komutlar 80x86 programcıya toplama, çıkarma, çarpma, bölme gibi temel aritmetiksel işlemlerin yanı sıra elde edilen sonuçları değişik biçimlerde saklama olanağı sağlar. Aritmetiksel komutların

Detaylı

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir. Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir. Bunun için X86 PC Assembly dili, Power PC Assembly dili veya 8051 Assembly

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Bellek Yönetimi (Memory Management) İşletim Sistemlerine Giriş - Ders09 1 SANAL BELLEK(Virtual Memory) Yıllar önce insanlar kullanılabilir olan belleğe sığmayan programlar ile

Detaylı

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ Alt Program Yapısı Alt programın çağrılması Alt program korunur alınır ;Argumanlar R12 R15 registerlarına atanir. call #SubroutineLabel SubroutineLabel:

Detaylı

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA İnsanların işlerini bir takvime ve zamana bağlı olarak yürütmesine benzer şekilde, bilgisayarlar

Detaylı

Bilgisayarların Gelişimi

Bilgisayarların Gelişimi Bilgisayarların Gelişimi Joseph Jacquard (1810) Bilgisayar tabanlı halı dokuma makinesi Delikli Kart (Punch Card) Algoritma ve Programlama 6 Bilgisayar Sistemi 1. Donanım fiziksel aygıtlardır. 2. Yazılım

Detaylı

Öğr. Gör. Kürşat Mustafa KARAOĞLAN Güz

Öğr. Gör. Kürşat Mustafa KARAOĞLAN Güz Öğr. Gör. Kürşat Mustafa KARAOĞLAN 2014-2015 Güz Günlük hesaplamalarımızda kullandığımız sistem onluk sayı sistemidir ve bu sistem 0,1,2,3,4,5,6,7,8 ve 9 rakamlarından oluşur. Diğer sayılar ise bu

Detaylı

Mikroişlemciler. Öğr. Gör. Kürşat Mustafa KARAOĞLAN Güz

Mikroişlemciler. Öğr. Gör. Kürşat Mustafa KARAOĞLAN Güz Mikroişlemciler Öğr. Gör. Kürşat Mustafa KARAOĞLAN 2014-2015 Güz Temel Bilgiler Temel Bilgiler Mikroişlemciler Anolog, Sayısal, İkili İşaret Temel Bilgiler Sayı Sistemleri! Günlük hesaplamalarımızda kullandığımız

Detaylı

DIGIAC 2000 Deney Seti PAT 80286 İŞLEMCİ KARTI :

DIGIAC 2000 Deney Seti PAT 80286 İŞLEMCİ KARTI : DIGIAC 2000 Deney Seti Deney kitinde üç kart vardır. Bunların dışında program yazmayı sağlayacak ve deney kartı ile haberleşmeyi sağlayacak bir bilgisayar (PC) vardır. Bilgisayar üzerinde ayrıca asembler

Detaylı

KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:

KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR: KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR: 1) Etkilenen Bayraklar (E.B.) : Bazı komutlar koşturulurken PSW saklayacısındaki bayrakların değeri değişebilir. Herbir komut için etkilenen bayraklar belirtilmiştir.

Detaylı

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü BİLGİSAYAR MİMARİSİ Bilgisayar Bileşenleri Ve Programların Yürütülmesi Özer Çelik Matematik-Bilgisayar Bölümü Program Kavramı Bilgisayardan istenilen işlerin gerçekleştirilebilmesi için gereken işlem dizisi

Detaylı

MC6800. Veri yolu D3 A11. Adres yolu A7 A6 NMI HALT DBE +5V 1 2. adres onaltılık onluk 0000 0. 8 bit 07FF 2047 0800 2048. kullanıcının program alanı

MC6800. Veri yolu D3 A11. Adres yolu A7 A6 NMI HALT DBE +5V 1 2. adres onaltılık onluk 0000 0. 8 bit 07FF 2047 0800 2048. kullanıcının program alanı GİRİŞ Günümüzde kullanılan bilgisayarların özelliklerinden bahsedilirken duyduğumuz 80386, 80486 Pentium-III birer mikroişlemcidir. Mikroişlemciler bilgisayar programlarının yapmak istediği tüm işlerin

Detaylı

Bölüm 7 Gelişmiş Fonksiyon Komutları

Bölüm 7 Gelişmiş Fonksiyon Komutları Bölüm 7 Gelişmiş Fonksiyon Komutları Akış Kontrol Komutları (Ι) (FUN22) 7-1 Aritmetik İşlem Komutları (FUN23~32) 7-2 ~ 7-9 Lojik İşlem Komutları (FUN35~36) 7-10 ~ 7-13 Karşılaştırma Komutları ( FUN37)

Detaylı

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SİSTEMLERİ VE KODLAR Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri 2. Kayan Noktalı Sayı Sistemleri 2.1. Sabit Noktalı Sayı Sistemleri 2.1.1. Ondalık Sayı Sistemi Günlük

Detaylı

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları 4. Operatörler İfade içerisindeki değişken ve diğer ifadelere uygulandığında yeni değerlerin elde edilmesini sağlayan ve kendilerine özel sembolik gösterimleri olan sözdizimleridir. mikroc derleyicisi

Detaylı

Basit Bootstrap Uygulaması

Basit Bootstrap Uygulaması Basit Bootstrap Uygulaması BELGE HAKKINDA Bu belge "GNU Free Documentation Licence" ile kaynak gösterilmek ve önceden yazarından izin alınmak kaydıyla yeniden yayınlanabilir Bu belgedeki eksik, yanliş

Detaylı

SAYI SİSTEMLERİ. 1. Sayı Sistemleri. Sayı Sistemlerinde Rakamlar

SAYI SİSTEMLERİ. 1. Sayı Sistemleri. Sayı Sistemlerinde Rakamlar SAYI SİSTEMLERİ 1. Sayı Sistemleri Sayı sistemleri; saymak, ölçmek gibi genel anlamda büyüklüklerin ifade edilmesi amacıyla kullanılan sistemler olarak tanımlanmaktadır. Temel olarak 4 sayı sistemi mevcuttur:

Detaylı

K uark projesi. Temel Özellikler :

K uark projesi. Temel Özellikler : K uark projesi Temel Özellikler : Kuark işlemcisi 16 bit kelime uzunluğuna sahip bir işlemcidir. Veri ve komut belleği aynıdır ve en fazla 4 Gigabyte bellek adresleyebilir. İşlemcimiz paralel çalışabilecek

Detaylı

BLM1011 Bilgisayar Bilimlerine Giriş I

BLM1011 Bilgisayar Bilimlerine Giriş I BLM1011 Bilgisayar Bilimlerine Giriş I by Z. Cihan TAYŞİ İçerik Sayı sistemleri Binary, Octal, Decimal, Hexadecimal Operatörler Aritmetik operatörler Mantıksal (Logic) operatörler Bitwise operatörler Yıldız

Detaylı

Komutların Yürütülmesi

Komutların Yürütülmesi Komutların Yürütülmesi Bilgisayar Bileşenleri: Genel Görünüm Program Sayacı Komut kaydedicisi Bellek Adres Kaydedicisi Ara Bellek kaydedicisi G/Ç Adres Kaydedicisi G/Ç ara bellek kaydedicisi 1 Sistem Yolu

Detaylı

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1 Von Neumann Mimarisi Mikroişlemciler ve Mikrobilgisayarlar 1 Sayısal Bilgisayarın Tarihsel Gelişim Süreci Babage in analitik makinası (1833) Vakumlu lambanın bulunuşu (1910) İlk elektronik sayısal bilgisayar

Detaylı

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER BÖLÜM 3 INTEL AİLESİNİN 16 BİTLİK MİKROİŞLEMCİLERİ 3.1 8086/8088 MİKROİŞLEMCİSİ 3.1.1 İÇ MİMARİSİ Şekil 3.1 de x86 ailesinin 16-bit çekirdek mimarisinin basitleştirilmiş bir gösterimi verilmiştir. Mikroişlemci

Detaylı

Komut Seti Mimarisi (ISA)

Komut Seti Mimarisi (ISA) Komut Seti Mimarisi (ISA) BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğretim Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted

Detaylı

Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar;

Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar; I. SAYI SİSTEMLERİ Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar; i) İkili(Binary) Sayı Sistemi ii) Onlu(Decimal) Sayı Sistemi iii) Onaltılı(Heksadecimal) Sayı Sistemi iv) Sekizli(Oktal)

Detaylı

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları 1. MACRO YAZDIR HEXSAYI MOV AX,HEXSAYI ; sayi 10 a bolunerek her seferinde kalan MOV DL,10 ; alinmistir. MOV CL,0 DONGU: DIV DL MOV BL,AH XOR AH,AH PUSH BX ; stack'a once birler basamagi atilir CMP AL,10

Detaylı

Şekil. 64 Kelimelik Yığıtın Blok Şeması

Şekil. 64 Kelimelik Yığıtın Blok Şeması 1 YIĞIT (STACK) KURULUMU Çoğu bilgisayarın MİB de yığıt veya LIFO (Last In First Out) bulunur. Yığıt bir bellek parçasıdır ve son depolanan bilgi ilk geri dönen bilgi olur. Yığıta aktarılan son bilgi yığıtın

Detaylı

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. Programların ve donanımların kullanılması için bir çalıştırılması platformu oluşturur. Sistemin yazılım

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Mikro işlemler Fetch cycle Indirect cycle Interrupt cycle Execute cycle Instruction

Detaylı

MANTIK DEVRELERİ HALL, 2002) (SAYISAL TASARIM, ÇEVİRİ, LITERATUR YAYINCILIK) DIGITAL DESIGN PRICIPLES & PRACTICES (3. EDITION, PRENTICE HALL, 2001)

MANTIK DEVRELERİ HALL, 2002) (SAYISAL TASARIM, ÇEVİRİ, LITERATUR YAYINCILIK) DIGITAL DESIGN PRICIPLES & PRACTICES (3. EDITION, PRENTICE HALL, 2001) MANTIK DEVRELERİ DERSİN AMACI: SAYISAL LOJİK DEVRELERE İLİŞKİN KAPSAMLI BİLGİ SUNMAK. DERSİ ALAN ÖĞRENCİLER KOMBİNASYONEL DEVRE, ARDIŞIL DEVRE VE ALGORİTMİK DURUM MAKİNALARI TASARLAYACAK VE ÇÖZÜMLEMESİNİ

Detaylı

ASSEMBLY DİLİNDE PROGRAMLAMA

ASSEMBLY DİLİNDE PROGRAMLAMA ASSEMBLY DİLİNDE PROGRAMLAMA Bu bölümde 8051 Assembly dilinde program yazabilmek için gerekli bilgiler yer almaktadır. Bu dilde yer alan temel komut türleri ayrıntılı olarak anlatılmış, basit programlama

Detaylı

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER BÖLÜM 4 INTEL AİLESİNİN 32 BİTLİK MİKROİŞLEMCİLERİ 4.1 80386 MİKROİŞLEMCİSİ Intel in ilk 32 bitlik mikroişlemcisi 80386 dır.bu işlemci diğer x86 işlemcileri gibi, 8086ve 80286 programlarını hiçbir değişiklik

Detaylı

16 bitlik işlemciler basit olarak 8 bitlik işlemciler gibi Kaydedici ALU Zamanlama/kontrol

16 bitlik işlemciler basit olarak 8 bitlik işlemciler gibi Kaydedici ALU Zamanlama/kontrol 16 bitlik İşlemciler 16 bitlik işlemciler basit olarak 8 bitlik işlemciler gibi Kaydedici ALU Zamanlama/kontrol Birimlerine sahiptirler. Fakat mimari yapıları çoklu görev (multitasking) ortamına uygun

Detaylı

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR .1. Sabit Noktalı Sayı Sistemleri. SAYI SĐSTEMLERĐ VE KODLAR Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. Kayan Noktalı Sayı Sistemleri.1.1. Sayı Sistemi Günlük yaşantımızda

Detaylı

Mikroişlemci ve Yapısı. Mikroişlemciler ve Mikrobilgisayarlar

Mikroişlemci ve Yapısı. Mikroişlemciler ve Mikrobilgisayarlar Mikroişlemci ve Yapısı 1 Katmanlı Sistem Yapısı (Machine Levels) Bu kısmın altındaki katmanlara programcı ve kullanıcının erişmesi söz konusu değildir. 2 Assembler Kaynak Kod Assembler Linker ADD D0,D1

Detaylı

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme Giriş MİKROİŞLEMCİ SİSTEMLERİ Bilgisayar teknolojisindeki gelişme Elektronik öncesi kuşak Elektronik kuşak Mikroişlemci kuşağı Yrd. Doç. Dr. Şule Gündüz Öğüdücü 1 Bilgisayar Tarihi Elektronik Öncesi Kuşak

Detaylı

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar) Bus

Detaylı

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER BÖLÜM 2 INTEL AİLESİNİN 8 BİTLİK MİKROİŞLEMCİLERİ 2.1 8080 MİKROİŞLEMCİSİ Intel 8080, I4004, I4040 ve I8008 in ardından üretilmiştir ve 8 bitlik mikroişlemcilerin ilkidir ve 1974 te kullanıma sunulmuştur.

Detaylı

Linux Assembly Programlamaya Giriş

Linux Assembly Programlamaya Giriş Linux Assembly Programlamaya Giriş Barış Metin Konular gcc / gas / ld Intel ve AT&T söz dizimleri gdb INT 80H C kütüphane fonksiyonları Stack Frame Örnek

Detaylı

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009 1-) Instruction Cycle State Diagram ı çizip herbir state için gerçekleştirilen işlemleri detaylı bir şekilde açıklayınız. Instruction state cycle da üstteki kısımlar CPU dışında alttaki kısımlar CPU içinde

Detaylı

C-Serisi PLC İleri Seviye Eğitim

C-Serisi PLC İleri Seviye Eğitim C-Serisi PLC İleri Seviye Eğitim 1 PLC ye Giriş 2 PLC ye Giriş 3 PLC ye Giriş CJ1 I/O Modülleri - 8/16/32/64pts Max I/O - 160,640 Max Program Kapasitesi - 20K Steps Komut sayısı - 400 4 PLC Ladder Diyagram

Detaylı

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin Mikrobilgisayarlar ve Assembler Bahar Dönemi Vedat Marttin Bellek Haritası Mikroişlemcili örnek bir RAM, ROM ve G/Ç adres sahalarının da dahil olduğu toplam adres uzayının gösterilmesinde kullanılan sisteme

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN İkilik Sayı Sistemi İkilik sayı sisteminde 0 lar ve 1 ler bulunur. Bilgisayar sistemleri yalnızca ikilik sayı sistemini kullanır. ( d 4 d 3 d 2 d 1 d 0 ) 2 = ( d 0. 2 0 ) + (

Detaylı

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı SAYISAL ELEKTRONİK Ege Ü. Ege MYO Mekatronik Programı BÖLÜM 2 Sayı Sistemleri İkilik, Onaltılık ve İKO Sayılar İkilik Sayı Sistemi 3 Çoğu dijital sistemler 8, 16, 32, ve 64 bit gibi, 2 nin çift kuvvetleri

Detaylı