Bilgisayar Programcılığı (Gece) Mikroişlemciler ve Assembly Dili Vize Sınavı

Bilgisayar Programcılığı (Gece)
Mikroişlemciler ve Assembly Dili
Vize Sınavı

1 – Çıkış portunda 1 rakamını yakmak için gerekli olan komutlar nelerdir? (Display ortak anotludur)

SnapCrab_No-0018

CEVAP:

 segment

D0 D1 D2 D3 D4 D5 D6 D7
1 0 0 1 1 1 1 1
A B C D E F G H

1 rakamını yakmak için b ve c’ye 1 sinyali göndeririz. B ve C girişi D1 ve D2’yi temsil ediyor.

16’lık tabanda bu sayı 9FH eşittir.

 

2 – Aşağıda verilen assembly programı işletildikten sonra register içeriklerinin aldığı değerleri bulunuz.

CEVAP:

İşlem:

A B C D E H L
9AH 15H 70H 99H FFH
AFH 9AH
FFH

Sonuç:

A B C D E H L
FFH 15H 70H 9AH FFH

 

3 – Aşağıda verilen işlemleri yerine getiren assembly dili programını yazınız.
a. B ve C kaydedicilerine 10H ve 90H verilerini yükle
b. Her iki veriye OR işlemi gerçekleştir
c. Neticeyi C5H verisinden çıkar
d. Sonucu D kaydedicisine yükle

CEVAP:

C# SQL Server Bağlantı

Selamün Aleyküm Arkadaşlar,

İlk önce SglClient isim uzayını (namespace) projemize dahil ediyoruz.

Baglanti adında bir class tanımlayalım. Sql bağlantımızı tanımlayalım.

Sunucu, veritabani, kullanici ve parola değişkenlerini tanımlayalım.

Bu değişkenlere private (özel) olduğu için dışarıdan erişilemez. Bu değişkenlere erişmek için özellik tanımlayalım.

Özelliklerimizi tanımladık. bu girilen verilerle bağlantımızı oluşturalım. Bunun için bir BaglantiOlustur adında bir method yazalım. ConnectionString oluşturmak için SqlConnectionStringBuilder nesnesini kullanalım.

Bağlantımızı tanımladık. Bağlantımızı Açıp, kapatmak için bir method yazalım.

ConnectionState kullanabilmek için projemize System.Data eklememiz gerekir.

Şimdi Update, Insert, Delete işlemini yaptıran bir method yazalım. Bu işlemi yapmak için SqlCommand nesnesini tanımlıyoruz. Bağlantımızı veriyoruz. Bağlantımızı açıyoruz. Sorgumuzu çalıştırıyoruz ve baglantımızı kapatıyoruz.

Şimdi verileri datatable ile geriye döndüren bir fonksiyon yazalım. datatable veya dataseti doldurabilmek için SqlDataAdapter nesnesini kullanacağız.

Şimdi de verilerimizi satır satır okumak için bir fonksiyon yazalım. Satırları okumamız için SqlDataReader nesnesini kullanacağız.

Şimdilik sınıfımızı (class) bitirelim.

Şimdi nasıl kullanacağımıza bir bakalım. İlk önce bir sınıfımızın bir görüntüsünü (instance) oluşturalım. Sonra baglantı metnimizi tanımlayalım.

SorguCalistir methodunun kullanımı

DatagridView nesnesine veri aktarımı

Verileri satır satır okumak

Hayırlı günler. Sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.

Mikroişlemciler ve Assembly Dili

R – Register

A, B, C, D, E, H, L bunlar register (kaydedici) kümeleridir. Her biri 1 Byte’lık veri tutar. (1 byte = 8 bit)

Akümülator A registerıdır. Matematiksel ve mantıksal işlemler A registerında yapılır.

BAYRAKLAR

Zero (Sıfır) Bayrağı:  Sonuç sıfır olduğunda zero bayrağı 1 değerini alır. Aksi takdirde 0 değerini alır.

Carry (Elde) Bayrağı: Yapılan bir aritmetiksel işlemde elde olursa carry bayrağı 1 değerini alır.

Sign (İşaret) Bayrağı: Sonucun son (0,1,…7) 7. biti (en soldaki) 1 olursa işaret bayrağı 1 değerini alır. Aksi durumda 0 değerini alır.

 

KOMUTLAR

MOV Komutu

Bir registerdaki veriyi diğer registera yükler.

MOV A, B 

B registerındaki veriyi A registerına yükler.

 

MVI Komutu

Bir registera girilen veriyi aktarır.

MVI R, 8-bit

MVI B, 1AH

1A verisini B registerına yükler.

 

IN Komutu

Giriş aygıtındaki veriyi okur ve A registerına yazar.

IN 8-bit (Port adresi)

 

OUT Komutu

A registerındaki veriyi çıkış portuna gönderir.

OUT 8-bit (Port adresi)

 

HLT Komutu

Programı sonlandırmak için kullanılır.

 

ADD Komutu

Belirtilen registerla A registerını toplar. Sonucu A registerına yazar.

ADD R

ADD B //A = A + B

B registerındaki veriyi ve A registerındaki veriyi toplar. Sonucu A registerına yazar.

 

ADI Komutu

8-bitlik bir veriyle A registerındaki veriyi toplar ve sonucu A registerına yazar.

ADI 8-bit

ADI 40H

 

SUB Komutu

A registerından başka bir registerı çıkartır. Sonucu A registerına atar.

SUB R

SUB D //A = A – D

 

SUI Komutu

A registerından 8-bitlik bir sayıyı çıkartır. Sonucu A registerına yazar.

SUI 8-bit

SUI 32H //A = A – 32H

 

INR Komutu

Belirtilen registerın içeriğini bir arttırır.

INR R

INR D

 

DCR Komutu

Belirtilen registerın içeriğini bir azaltır.

DCR R

DCR D

 

ORA Komutu

A registerı ile belirtilen registerı or (veya) kapısına sokar. Sonucu A registerına yazar.

ORA R

ORA B

 

ORI Komutu

A registerı ile girilen veriyi or (veya) kapısına sokar. Sonucu A registerına yazar.

ORI 8-bit

ORI 45H

 

ANA Komutu

A registerı ile belirtilen registerı and (ve) kapısına sokar. Sonucu A registerına yazar.

ANA R

ANA C

 

ANI Komutu

A registerı ile girilen veriyi and (ve) kapısına sokar. Sonucu A registerına yazar.

ANI 8-bit

ANI 76H

 

 XRA Komutu

A registerı ile belirtilen registerı xor (özel veya) kapısına sokar. Sonucu A registerına yazar.

XRA R

XRA B

 

 XRI Komutu

A registerı ile girilen veriyi xor (özel veya) kapısına sokar. Sonucu A registerına yazar.

XRI 8-bit

XRI 75H

 

Dallanma Komutları

JUMP 16-bit (adres) –  Şartsız bir atlamadır. Belirtilen adrese atlar.

JUMP 2050H (veya etiket)

JC 16-bit (adres) – Carry (elde) bayrağı bir ise belirtilen adrese atlar.

JNC 16-bit (adres) – Carry (elde) bayrağı sıfır ise belirtilen adrese atlar.

JZ 16-bit (adres) – Zero (Sıfır) bayrağı bir ise belirtilen adrese atlar.

JNZ 16-bit (adres) – Zero (Sıfır) bayrağı sıfır ise belirtilen adrese atlar.

 

Register Çiftleri

B (B, C)

D (D, E)

H (H, L)

 

LXI Komutu

Belirtilen register çiftine belirtilen adresi atar.

LXI Rç, 16-bit (adres)

LXI B, 2050H

 

LDAX Komutu

Register çiftinde kayıtlı olan adresteki veriyi A registerına yükler.

LDAX Rç

Ramdeki 2050H adresinde FEH verisi kayıtlı olsun. B register çiftini gösterge olarak seçelim.

LXI B, 2050H

B register çiftine 2050H adresi atandı. Şimdi bu adresteki veriyi A registerına atalım.

LDAX B

B register çiftinde adres kayıtlıydı. B register çiftindeki adreste bulunan veri (FEH) A registerına atandı.

 

LDA Komutu

Belirtilen ramdeki adresdeki veriyi A registerına yükler.

LDA 16-bit

LDA 2050H

 

STAX Komutu

A registerındaki veriyi belirtilen register çiftinde bulunan ramdeki adrese yükler.

STAX Rç

D’yi gösterge olarak seçelim. 2050H adresini atayalım.

LXI D, 2050H

A daki veriyi D register çiftinde bulunan adrese atayalım.

STAX D

 

STA Komutu

A registerındaki veriyi belirtilen ramdeki adrese yükler.

STA 16-bit

STA 2050H

 

INX Komutu

Register çiftini bir arttırır.

INX Rç

 

DCX Komutu

Register çiftini bir azaltır.

DCX Rç

 

M, H (H, L) register çiftinde bulunan adresteki veriyi temsil eder.

MOV M, R

Belirtilen registerdaki veriyi, H register çiftinin temsil ettiği adrese atar.

MOV R, M

Belirtilen registera, H register çiftinin temsil ettiği adresteki veriyi atar.

 

RLC Komutu 

A registerını bir bit sola kaydır.(8-bit)

RLC

MVI A, 50H

A daki veri 01010000

RLC

A daki veri 10100000

 

RAL Komutu

A registerını 1 bit sola kaydır. Carry bayrağıda dahil. (9-bit)

RAL

MVI A, 3A

A daki veri 00111010

RAL

Carry bayrağında 0 olduğunu varsayalım. Carry bayrağına sıfır atandı. A ‘ya carry bayrağı eklendi. A daki veri 01110100

 

RRC Komutu

A registerını bir bit sağa kaydır.(8-bit)

RRC

 

RAR Komutu

A registerını 1 bit sağa kaydır. Carry bayrağıda dahil. (9-bit)

RAR

Not: Carry bayrağı değişen biti tutar.

 

CALL Komutu

Alt programı çağırmak için kullanılır.

CALL 16-bit (adres)

 

RET Komutu

Alt program sonu.

RET

 

CMP, CPI Komutu

CMP R

CPI 8-bit

Karşılaştırma operatörüdür. A registerı ile belirtilen registerı veya 8-bitlik değeri karşılaştırır.

Eğer veriler eşitse Z=1 C=0

A registerı küçükse Z=0 C=1

A registerı büyükse Z=0  C=0

 

Örnekler


1. 01H nolu porttan veriyi okuyup 02H nolu porta gönderen programı yazınız.

 

2. B registerına 4FH yükleyen ve 01H adresindeki porta gönderen programı yazınız.

 

3. B registerına 32H, C registerına ise 1A değerini giren ve bunları toplayıp 01H nolu çıkış portuna gönderen programı yazınız.

 

4. 2050H adresindeki veriyi alıp 25H dan çıkaran ve 2051H adresine kaydeden programı yazınız.

 

5.C registerına 6FH, D registerına 4CH yazan; C registerını bir azaltan, D registerını bir artıran sonra C ve D registerını toplayan; 2050H adresine yazan programı yazınız.

 

6. D ve C registerlarına 9BH ve A7H sayılarını yükleyin. Daha sonra bu sayıları toplatın. Eğer toplam FFH tan büyükse PORT0 çıkışına 01H bilgisini yazdırın. Büyük değilse, toplamı görüntüleyin.

 

7. xx50H adresinden başlayarak 16 veriyi, xx70H adresinden itibaren kopyalayan programı yazınız.

 

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.

Android SDK, Eclipse ve ADT Plugin Kurulumu

 

 

Hatırlatma:

 

Eğer bu kadar uğraşamam diyorsanız.

Android SDK ADT Bundle indirin.

Arşiv dosyasından çıkarın.

SDK Manager çalıştırın.

İstediğiniz sürümleri seçip yükleyin.

Eclipse klasörünü SDK Manager’ın olduğu

yerde bulabilirsiniz.

 

Selamün Aleyküm Arkadaşlar,


İlk önce Android SDK’ yı kuralım. http://developer.android.com/sdk/index.html adresine giriyoruz.

 

SnapCrab_Android SDK  Android Developers - Google Chrome_2013-2-24_14-54-56_No-00


USE AN EXISTING IDE tıklayın. Açılan açılır pencereden Download the SDK tools for Windows tıklayın.

 


 

SnapCrab_Android SDK  Android Developers - Google Chrome_2013-2-24_15-11-21_No-00

 

I have read… tik atın. 

 

Download… tıkladıktan sonra dosya inmeye başlayacaktır.

 

Dosya indikten sonra çalıştırın. Finish butonuna tıkladığınızda Start Android SDK Manager işaretliyse Program çalışacaktır.

 

 

Hangi sürüme program yazacaksanız o sürümleri seçin. Android 4.1.2 sürümünde yazdığınız program Android 2.2 de çalışmayacaktır. Sürüme göre kütüphaneler farklılık gösterir.

 

Android sürümlerini seçtikten sonra Install… tıklayın.

 

 

Accept License seçin. Install tıklayın.

 

 

Program seçtiğimiz paketleri yüklemeye başlayacaktır. Bu internet bağlantınıza göre biraz zaman alabilir.

 

Eğer programda hata alırsanız. Menüden Tools->Options girin.

 

 

Açılan pencereden Force… seçin. Pencereyi kapatın. Menüden Packages->Reload tıklayın. Sonra paketleri seçin tekrar yükleyin.

 


Yükleme işlemi bittikten sonra pencereyi kapatın. Başlat->Tüm Programlar->Android SDK Tools->AVD Manager tıklayın. Burada sanal bir cihaz tanımlaması yapacağız.

 

 

New tıklayın. Açılan pencereden cihaza bir isim verin. Device: cihazınızı seçin. Target: Yüklü olan bir Android sürümü seçin. Diğer ayarları da isterseniz yapabilirsiniz.

 

 

Sanal Android cihazımızı da oluşturduk. Şimdi Java JDK’yı yükleyelim. http://www.oracle.com/technetwork/java/javase/downloads/index.html adresinden Java JDK indirip yükleyelim.

 

 

Not: Eğer sistemimizin 32 bit veya 64 bit olduğunu bilmiyorsanız. Windows XP kullanıyorsanız. Başlat->Çalıştır->winmsd.exe tamama tıklayın. Açılan pencerede Sistem türünde bulabilirsiniz. Windows 7 kullanıyorsanız eğer Bilgisayarım’a sağ tıklayın. Özelliklere tıklayın.

 

Şimdi ise son olarak Eclipse IDE for Java Developers indirelim ve ADT Plugin yükleyelim. http://www.eclipse.org/downloads/ adresinden Eclipse IDE for Java Developers indirelim.

 

 

İndirdiğimiz Eclipse dosyası bir zip dosyasıdır. Arşivden çıkaralım. Eclipse adında bir klasör çıkacaktır. İsterseniz o klasörü Program Files klasörünün içine atıp eclipse.exe’ yi masaüstünde bir kısayol oluşturabilirsiniz.

 

Eclipse programını çalıştıralım. İlk açılışta projelerin hangi klasöre kaydedileceğini soruyor. İstediğiniz gibi ayarlayabilirsiniz. Use this… işaretlerseniz varsayılan olarak seçtiğiniz yolu anımsayacaktır bir daha size sormayacaktır.

 

 

Menüden Help->Install New Software tıklayın.

 

 

Work with alanına https://dl-ssl.google.com/android/eclipse/ veya http://dl-ssl.google.com/android/eclipse/ adresini yazıp enter tuşuna basın.

 

 

Select All tıklayarak hepsini seçelim. Next tıklayalım.

 

 

Next tıklayalım.

 

 

I accept the terms… seçelim ve Finish tıklayalım.

 

 

Program eklenti dosyalarını indirmeye başlayacak ve yükleyecektir. Bu internet bağlantınıza göre biraz zaman alabilir.

 

Bittikten sonra programı yeniden başlatın. Menüden Windows->Preferences tıklayın.

 

 

Sol menüden Android tıklayın. Eğer Android SDK seçilmemişse Browse diyerek yüklediğiniz Android SDK klasörünü belirtin.

 

 

 

Evet kurulumumuz sonunda bitti. 🙂

 

 

Selametle Kalın. Hayırlı günler…

 

Makalenin bütün hakları www.ibasoglu.com’a aittir. Kaynak belirtmek kaydıyla alıntı yapılabilir.