Cevapla
 
Konu Araçları
Eski 07-06-05, 18:35 #1
thejustige thejustige çevrimdışı
Lightbulb Assembly Öğreniyorum..!


Merhaba arkadaşlar. bundan sonra bi terslik çıkmazsa burada assembly anlarmayı düünüyorum. bi alt yapı oluşturmak istiyen arkadaşlar dersleri takip edebilir.Bu kadar edebiyeat yeter başlıyalım

öncelikle bazı terimleri açıklıyayım;

Bit:işlemciye gönderilen 1 veya 0 sinyali.
Byte:8 bitten oluşan bir dizidir.
Word(kelime):işlemci türüne göre değişen, işlemcinin bir anda işleyebildiği bit dizisidir. işlemciye göre değişir. örneğin 8 bitlik bi işlemcide 1 word=8 bittir.
Makina Dili:Mikroişlemcinin tanıyabildiği, 1 ve 0 dizilerinden oluşan dildir. Makine dili ile program yazmak zor olduğu için mnemonic adı verilen kısaltmalarla program yazma yoluna gidilmiştir. Bu mnemoniclerin oluşturduğu dile assembly adı verilir. Aseembly dili alt düzey bir dildir. Örnek: mov ax,0005 hexadesimal olarak: b80500 burada dikkatinizi çektiyse sayının lsb kısmı önce msb kısmı sonra yazılmıştır yani 0005=0500 şeklinde. Kod mikrişlemciye bu şekilde gönderilir.burada b8 ise mov komutunun hex karşılığı.
Kaydedicilerden birkaçından bahsedecek olursak
zero flag: bu sıfır bayrağıdır. işlemin sonucu 0 ise bu bayrak set edilir yani 1 olur eğer sonuç farklıysa bu bayrak 0 olur.
carry flag: elde bayrağı. Eğer işlem eldeli ise bu bayrak set edilir değilse 0 lanır.
negatif flag: eğer sayı negatif ise bu bayrak set edilir pozitif ise 0 lanır.

Aritmetik işlemler:
İkilik bir sayının negatifini alma
ilk önce sayının tersi alınır. Daha sonra 1 eklenir we sayının negatifi bulunmuş olur. Örneğin 1 sayısını lik tabanda gösterelim ve ters işaretini alalım. 00000001 tersi 11111110 1 eklersek 11111111 olur. Yani ikilik tabanda -1 = 11111111 dir. Şimdi sorarsınız o zmn 255 i nasıl ayırt edicez die. İşte cvp yukarıda söylediğim negatif flag sayesinde. Bu bayrak 1 se -1, 0 sa 255 dir.



Devam Edecek......
sorularınızı sorabilirsiniz.
__________________

Mesajı son düzenleyen thejustige ( 07-06-05 - 20:07 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-06-05, 20:51 #2
sepulturaks sepulturaks çevrimdışı
Varsayılan Cvp: 0'dan Assembly Öğreniyorum(Part1)!!


walla ben şu tersini alma işlemini anlamadım 00000001 tersi 11111110 eklersek 11111111 olur. Yani ikilik tabanda -1 = 11111111 dir. bunu ayrıntılı anlatabilmen mümkünmü.ya walla belki size çok kolay ama ben anlamazz bu işlerden merak ta ettim şimdi
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-06-05, 20:59 #3
thejustige thejustige çevrimdışı
Varsayılan Cvp: 0'dan Assembly Öğreniyorum(Part1)!!


ewet işte devamı

ikilik tabanda çarpma
mikroişlemci çarpma işlemini sayıyı sola kaydırarak yapar. her kaydırma iki ile çarpma anlamına gelir.
örnegin 3 sayısını iki ile çarpalım:
00000011 ikilik tabanda 3 e eşittir. bir kez sola kaydırırsak 00000110 olur buda 6 ya eşittir. şimdide 3 ile çarpalım. 3 ile çarpmak için bir kez sola kaydırır ve sayıya kendisini ekleriz.00000110+00000011=00001001.
Kaydediciler(registers)
mikroişlemcide 4 adet ana kaydedici wardır bunlar ax,bx,cx,ve dx dir.
bu kadar genel bilgi yeter sıkıldım faaliyete geçelim
Assembly
burada size emu8086 yı anlatacağım.
değişken tanımlama
iki çeşit değişken tanımlama wardır.
1 byte tipi değişken tanımlama
2 word tipi değişken tanımlama
byte tipi değişken tanımlama db ile yapılır ve bir karakterlik bilgiyi saklıyabilir'a' gibi
word tipi değişken tanımlama dw ile yapılır ve iki karakterlik bilgiyi saklıyabilir 'ab' gibi.
örnek: sayı db 15 veya sayı dw 16f gibi.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-06-05, 21:03 #4
thejustige thejustige çevrimdışı
Varsayılan Cvp: 0'dan Assembly Öğreniyorum(Part1)!!

Alıntı:
Gerçek Mesajı Gönderen sepulturaks
walla ben şu tersini alma işlemini anlamadım 00000001 tersi 11111110 eklersek 11111111 olur. Yani ikilik tabanda -1 = 11111111 dir. bunu ayrıntılı anlatabilmen mümkünmü.ya walla belki size çok kolay ama ben anlamazz bu işlerden merak ta ettim şimdi
tersini alma işlemi 0 gördüğün yere 1, 1 gördüğün yere 0 yazma oluyor. 00000001 tersini alınca 11111110 oluyor. şimdi buna 1 ekliyecez. 11111110+00000001 = 11111111 oluyor. Yani ikilik tabanda -1 = 11111111 dir. eğer yine anlamadıysan tam olarak anlıyamadığın yeri söle anlatiim.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-06-05, 23:36 #5
arg arg çevrimdışı
Varsayılan Cvp: 0'dan Assembly Öğreniyorum(Part1)!!

Alıntı:
Gerçek Mesajı Gönderen thejustige
Yani ikilik tabanda -1 = 11111111 dir.
Orada bir hatan var arkadasim. -1 ikilik tabanda yine -1 dir. Sorun bunu bilgisayara nasil kodlamak gerektiginde.
Diyelim 8 bit genisliginde bir hafiza hücresi var. Buna sadece pozitif sayilari yazmak istersen 2^8 - 1 e kadar ikilik tabanda yazabilirsin. Ama negatif sayilari da almak istersen bunu bir sekilde kodlaman gerek. Örnegin en bastaki biti isaret biti olarak kullanabilirsin: yani 1 = 00000001 ken -1 = 10000001 olur. Ya da bütün alani ikiye ayirirsin, ilk yarisini pozitif olarak tanimalarsin ikinci yarisini da negatif. Bu durumda -1 = 11111110 olur. Senin bahsettiginse two's complement denilen baska bir kodlama yöntemi. Ve bugün neredeyse bütün islemcilerde kullanilan kod. Cünkü bu kodla negatif ve pozitif sayilari toplamak ve overflow'u kontrol etmek mümkün oluyor. Ayrica one's complement de oldugu gibi 2 tane de sifir olmuyor. Yani bahsettigin sey matematiksel degil tamamen teknik bir olay.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 08-06-05, 08:54 #6
thejustige thejustige çevrimdışı
Varsayılan Cvp: 0'dan Assembly Öğreniyorum(Part1)!!

dediğin doğru olabilir,araştırmadım. ben burada okulda gördüğüm teknikleri anlatıyorum. okulda böyle anlattılar, ikilik tabanda dediğimde bilgisayara gönderilen kod oluyor. i

Mesajı son düzenleyen thejustige ( 27-06-05 - 21:45 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 09-06-05, 02:43 #7
thejustige thejustige çevrimdışı
Varsayılan Cvp: 0'dan Assembly Öğreniyorum(Part1)!!

arkadaşlar bu konuyu beğendiniz mi? devamını ister misiniz? eğer istiyen kişi çok olursa devam edicem, yoksa gerek yok. istiyenler teşekkür butonuna basabilir böylece sayması kolay olur. saygılar
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 09-06-05, 07:00 #8
libertad libertad çevrimdışı
Varsayılan Cvp: 0'dan Assembly Öğreniyorum(Part1)!!

Tabi yaw kim istemezki alternatif bir assembly kaynağını. Daha yeni başladın devam.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 09-06-05, 08:54 #9
digital digital çevrimdışı
Varsayılan Cvp: 0'dan Assembly Öğreniyorum(Part1)!!

ben dersini gördüm ama pek birşey anlamadım sadece ders geçmek için calışmıştım ama şimdi merak ediyorum devamıni bekliyorum teşekürler iyi çalışmalar.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 11-06-05, 15:31 #10
simirfan simirfan çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

assemblyde program yazmak bilgisayarla birebir iletişim kurmak gibi birşey. Yazması zor olsada bilgisayarın nasıl anladığını bilmek çok güzel bir duygu. Yakın zamanda assemblyde bir boyama programı yazdık canımız çıktı. ama başardık projeden 100 aldık. yaptığız program renk paletinden renk bilgisini fare ile alıyor ve yine fare ile tıkladığınız noktaya pixel şeklinde yazıyor. Bu programda çizgi de çizdirmek istedik. İlk tıkladığımız yerle ikinci tıkladığımız yer arasına çizgi çizdirmek. Bunu pascal c... vb de yapmak çok kolay ama assemblyde yazmak ileri derecede programlama bilgisinden çok geometri bilgisi istiyor. Neyseki onuda başardık...
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 21-06-05, 17:28 #11
yaramaz1908 yaramaz1908 çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

sanırım devamı gelmeyecek yav tamda heveslendim ha hadi bekliyoruz aga
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 27-06-05, 21:40 #12
flyby flyby çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

movlw k : sizin verecegınız degeri ( k ) yı w register ına yanı akumulatore yukler

movf f,d : f register ını ıcergını w ye ya da f e yukler. (Not: d=0 sa w yed=1 se kendıne)

movwf f : w reg.nın ıcerıgını f reg. ına yukler.

clrf f : f reg. ının ıcerıgını sıler.

clrw : w reg.ının ıcerıgını sıler.

comf f,d : f reg.ının complement' i alınır (terslenır) sonuc w ye ya da f ye yuklenır.

decf f,d : f reg.ının ıcerıgı 1 azaltılır sonuc w ya da f ye yazılır.(Not:reg. in ıcerıgı h'00' ıse 1 eksıltıldıgınde h'ff' olur).

incf f,d : f reg.inin icerigi 1 arttırılır sonuc w ya da f reg.ına yazılır.(Not:reg.in icerigi h'ff ' ıse 1 arttırıldıgında h'00' olur.

bcf f,b : f reg. inin icerıgındekı b.nıncı bıtı sıfırlar.

bsf f,b : f reg.inin icerigindekı b.ninci bıtı 1 yapar

rlf f,d : f reg.inin iceriginı 1 adım sola kaydırır.Sonuc w ye ya da f ye yazılır.
(Not:Reg. dan tasarak carry bayragına yazılan bıt, lsb ye yazılır.)

rrf f,d : f reg.inin icerıgını 1 adım saga kaydırır.Sonuc w ye ya da f ye yazılır.
(Not:Reg.dan tasarak carry bayragına yazılan bıt msb ye yazılır.

swapf f,d : f reg.ının ıcerıgını ılk 4 bıt ıle son 4 bıtı yer degıstırır.Sonuc w ye ya da f ye yazılır.

goto k : program k etıketının oldugu yere dallanır ve oradan ıtıbaren yoluna devam eder

call k : program k etıketının oldugu yerdekı alt programa dallanır ve buradan ıtıbaren yoluna devam eder.

return : Alt program komutlarının en altına yazılan bu komut program ısleyısını ana programa dondurur.

retlw h'ıstenılen sayı' : programımız alt programda devam ederken bu komut yazıldıgında bızı ana programa goturur ve w ye h'ıstenılen sayıyı' yukler.

retfie : Program akısını interrupt alt programından ana programa dondurur.

btfsc f,b : f reg.inin b ninci bitini kontrol eder bu bit 0 ıse program bır satır atlayarak yoluna devam eder.

btfss f,b : f reg.inin b ninci bitini kontrol eder bu but 1 ıse program bır satır atlayarak yoluna devam eder

decfsz f,d : f reg.ının icerigini 1 azaltır. Reg.ın ıcerıgı 0 ıse bır satır atlar sonucu w ye ya da f ye yazar.

incfsz f,d : f reg.inin icerigini 1 arttır reg.ın ıcerıgı 0 sa bır satır atlar sonucu w ye ya da f ye yazar.

clrwdt :Watchdog timer ı sıfırlar.Aynı zamanda watchdog tımer ın prescalar degerını de sıfırlar.Status bıtlerınden TO ve PD yı 1 yapar.

sleep : en harıka komuttur.programı ve kullanılan sıstemı uyuma moduna gecırır guc harcamasını da azaltmıs olur.Uyuma modundan reset,watchdog timer ve TOCKI girişi vasıtasıyla cıkar.

andlw k : w reg.inin icerigi ıle k sabiti(istenılen sayı) and ıslemıne taabı tutulur sonuc w ye yazılır.

andwf f,d : w reg.i ile file reg. ın ıcerıgı and ıslemıne taabı tutulur sonuc w ye ya da f ye yazılır.

ıorlw k :w reg.inin icerigi ıle k sabıtı(ıstenılen sayı) or ıslemıne taabı tutulur sonuc w ye yazılır.

ıorwf f,d : w reg.i ıle fıle reg.ın ıcerıgı or ıslemıne taabı tutulur sonuc w ya da f ye yazılır.

xorlw k :w reg.inin icerigi ıle k sabiti( istenılen sayı) xor ıslemı uygulanır sonuc w ye yazılır.

xorwf f,d :w reg.i ilefile reg.in icerigı xor ıslemıne taabı tutulur.Sonuc w ye ya da f ye yazılır.

addlw k :w reg. ının ıcerıgı k sabıtı ( ıstenılen sayı) toplanır.Sonuc w ye yazılır.

addwf f,d : w reg.inin icerigi f reg.i ile toplar.Sonuc w ye ya da f ye yazılır.

sublw k : k sabıt degerınden w reg. ı ıcerıgı cıkarılır sonuc w ye yazılır.

subwf f,d : f reg.inin iceriginden w reg.inin ıcergı cıkarılır sonuc w ye ya da f ye yazılır.

nop :Bır komut saykılı suresınce hıc bır ıslem yapılmasın emrını veren komuttur.

Saygılar ıyı calısmalar flyby
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 27-06-05, 21:46 #13
kadooo kadooo çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

off bune yaaa
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 27-06-05, 22:31 #14
flyby flyby çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

her ıslemcının kendıne has bellegı vardır.Ve komut satırları da bunun la dogru orantılıdır.
Programlama yapılırken programın portlara portların ıslemcıye tanıtılması gerekır. Islemcı ne status tan ne de port a, port b, pclatch ten vs... den falan anlar program yazılırken komutların tanıtılması gerekır.Bu da "equ" komutu ıle yapılır esıtleme anlamına gelır.
Mesela ornek verelım portb equ 0x03 demek bundan sonra bız port b yazdıgımız zaman makıne 0x03 anlayacak demektır.Bundan sonra 0x03 nolu verı adresı nın adı port b demektır demek.Birazda ASCII den bahsedelım ASCII nın temelını de anlatmıs olursak;

ASCII karakterler genellıkle retlw komutu ıle kullanılır.(yukarıda retlw nın ne anlama geldıgı yazılmıstır).Bunlar da;

retlw 'G'
retlw 'S' gıbı yazılırlar.
Umarım anlasılır bır sekılde yazmısımdır arkadaslar hepınıze kolay gelsın
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 28-06-05, 01:05 #15
thejustige thejustige çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

flyby arkadaşım bu senin yazdığın plc programlama ben bilg için olan assemblyden bahsediyorum bu seninki pic programlama için olanıyani bilg işlemcisi bu senin yazdığın komutları tanımaz bunları pic tanır...bunun için plc programlama die bi topic açsaydın daha ii olurdu...
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 28-06-05, 18:43 #16
flyby flyby çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

Alıntı:
Gerçek Mesajı Gönderen thejustige
flyby arkadaşım bu senin yazdığın plc programlama ben bilg için olan assemblyden bahsediyorum bu seninki pic programlama için olanıyani bilg işlemcisi bu senin yazdığın komutları tanımaz bunları pic tanır...bunun için plc programlama die bi topic açsaydın daha ii olurdu...

Bende tam bır seye yararlı olacagız dıye sevınmıstım ama yanlıs yerde yanlıs seyı yazmısız desene kusura bakmayın arkadaslar
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 28-06-05, 21:00 #17
thejustige thejustige çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

yinede yararlı oldun sağol(aslında biliyorum ama)
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 28-06-05, 21:42 #18
GSMTeknoloji GSMTeknoloji çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

wallah ben bilmiyorum saol desteğin içinn...
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 30-06-05, 11:12 #19
flyby flyby çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

sonunda bir seyler buldum arkadaslar bu pic le ılgılı degıl

AAA
Toplamadan sonra AL yazmacındaki paketli veriyi düzenler.
Etkilenen bayraklar.
A - C

AAD
Bölmeden sonra AX yazmacını düzenler
Etkilenen bayraklar.
S - Z - P

AAM
Çarpmadan sonra AX yazmacını düzenler.
Etkilenen bayraklar.
S - Z - P

AAS
Çıkartmadan sonra AL yi düzenler
Etkilenen bayraklar.
A - C

ADC hedef,kaynak
Hedef=hedef+kaynak+taşma işşlemini yapar
Etkilenen bayraklar.
O - S - Z - A - P - C

ADD hedef,kaynak
Hedef=hedef+kaynak
Etkilenen bayraklar.
A - C - O - P - S - Z

AND hedef,kaynak
Ve işlemini yapar. her iki bit set ise set sonucunu hedefe verir.
Etkilenen bayraklar.
O - C - P - S - Z

ARPL hedef,kaynak (286+)
Komutun alt programa erişimini denetler.
Etkilenen bayraklar.
Z

BOUND hedef,kaynak (188+)
Dizi sırasını alır.
Etkilenen bayraklar.
yok

BSF hedef,kaynak (386+)
Kaynağın ilk bitinin set kontrolü yapılır.
Etkilenen bayraklar.
Z

BSR hedef,kaynak (386+)
Kaynağın ilk bitinin set olup olmadığını kontrol eder.
Etkilenen bayraklar.
Z

BSWAP yazmaç (486+)
32 bitlik yazmacın kullanılamayan üst 16 bitini kollanılabilen alana alır.
Etkilenen bayraklar.
Yok

BT kaynak,konum (386+)
Belirtilen konumdaki bitin değerini taşma bayrağınu alır.
BTC kaynak,konum (386+)
Belirtilen konumdaki biti taşma bayrağının değeri ile yer değiştirir.
BTR kaynak,konum (386+)
Belirtilen konumdaki biti taşma bayrağına alıp, resetler.
BTS kaynak,konum (386+)
Belirtilen konumdaki biti taşma bayrağına alıp set eder.
Etkilenen bayraklar.
C

CALL konum
Alt program çağırır.
Etkilenen bayraklar.
yok

CBW
AL yi AX e yayar.
Etkilenen bayraklar.
yok

CDQ (386+)
EAX yazmacındaki doubleword bilgiyi EDX ve EAX alanına yayar.
Etkilenen bayraklar.
Yok.

CLC
Cary flangını resetler.
Etkilenen bayraklar.
C

CLD
Direction flangını resetler.
Etkilenen bayraklar.
D

CLI
Interrupt Flangını resetler.
Etkilenen bayraklar.
I

CLTS (+286)
Görev anahtarını resetler.
Etkilenen bayraklar.
MSW de TS

CMC
Cary flangının durumunu değiştirir.
Etkilenen bayraklar.
C

CMP hedef,kaynak
Karşılaştırma yapar.
Etkilenen bayraklar.
O - S - Z - A - P - C

CMPS hedef,kaynak
Stringleri karşılaştırır.
CMPSB
ES:SI ve DSI ile konumları belirtilen sitringlerin
CX deki kadar karakterini byte byte kıyaslar.
CMPSW
ES:SI ve DSI ile konumları belirtilen sitringlerin
CX deki kadar karakterini word word kıyaslar.
Etkilenen bayraklar.
C - A - P - O - S - Z

CMPXCHG hedef,kaynak
Kaynak Acumulator reğisteri ile karşılaştırılır.
Şayet eşit ise hedef kaynağa yüklenir.
Değilse acumulator kaynağa yüklenir.
Etkilenen bayraklar.
A - C - O - P - S - Z

CWD
AX deki işaretli sözcüğü DX ve AX e yayar.
Etkilenen bayraklar.
Yok

CWDE (+386)
AX heki değer EAX reğisterıne genişletilir.
Etkilnen bayraklar.
Yok.

DAA
AL yazmacındaki Toplama sonucunu desimal paketler.
Etkilenen bayraklar.
A - C - S - Z - P

DAS
Al yazmacındaki çıkartma sonucunu desimal pakatler.
Etkilenen bayraklar.
A - C - S - Z - P

DEC hedef
hedef=hedef-1 işlemini yapar.
Etkilenen bayraklar.
S - O - Z - A - P

DIV kaynak
Bölme işlemi yapar. Şayet Byte ile bölünüyorsa AX deki sayıyı böler.
Bu durumda AL bölüm AH kalan olu.
Word uzunluğunda bölme yapılıyorsa. DX ve AX çiftindeki sayıyı böler.
Bu durumda bölüm AX de kalan DX de saklanır.
Etkilenen bayraklar.
Yok

ENTER Bayt,Düzey (+188)
BP ile işaretli konumda stacta byte saklar.
Etkilenen bayraklar.
yok.

ESC işlemci_kodu,kaynak
Yardımcı işlemciye komut yollar.
Etkilenen bayraklar.
yok

HLT
Programı durdurur.
Etkilenen bayraklar.
yok.

IDIV kaynak
işaretli sayılarda bölme yapar. Şayet Byte ile bölünüyorsa AX deki sayıyı böler.
Bu durumda AL bölüm AH kalan olur.
Word uzunluğunda bölme yapılıyorsa. DX ve AX çiftindeki sayıyı böler.
Bu durumda bölüm AX de kalan DX de saklanır.
Etkilenen bayraklar.
yok.

IMUL kaynak
işaretli sayılarda çarpma yapar. Şayet Byte ile çarpılıyorsa AL deki sayıyı çarpar.
Bu durumda AX de sonuç olur.
Word uzunluğunda çarpma yapılıyorsa. AX yazmacındaki sayıyı çarpar.
Bu durumda sonuç DX ve AX çiftlerinde saklanır.
Etkilenen bayraklar.
O - C

IN toplayıcı,kıkış
Belirli bir sürücü çıkışındaki bilgiyi toplayıcıya alır.
Etkilenen bayraklar.
yok.

INC hedef
Hedef=hedef+1 işlemini yapar.
Etkilenen bayraklar.
S - O - Z - A - P

INS hedef_dizgi,çıkış (+188)
Diziye çıkıştan bilgi alır.
INSB (+188)
Çıkıştan ESI konumuna byte byte bilgi alır.
INSW (+188)
Çıkıştan ESI nonumuna word uzunluklu strinler alır.
Etkilenen bayraklar.
yok

INT Kesme
Bellekten kesme çağırır.
Etkilenen bayraklar.
tümü.

INTO
Taşma varsa INT 04H ı çaıştırır.
Etkilenen bayraklar.
Tümü.

INVD (+486)
Dahili bilgiler konumlarına yerleştirilir.
Etkilenen bayraklar.
Yok

INVLPG (+486)
Saklanan tanpon alana ulaşmayı geçersiz kılar.
Etkilenen bayraklar.
Yok.

IRET
İnterruptan çağrılan konuma geri döner.
Etkilenen bayraklar.
Tümü.

IRETD (+386)
Interrıptan çıkmak için kullanılır.
Saklanan CS:IP değerleri 32 bit olarak geri yüklenir.

JXX konum
Belli bir karşılaştırmadan sonra sıçramayı kontrol eder.
JA Büyükse sıçra
JAE Büyük eşitse sıçara
JB Küçükse sıçra
JBE Küçük eşitse sıçra
JC Taşma varsa sıçra.
JCXZ CX sıfırsa sıçra
JE Eşitse sıçra
JG Büyükse sıçra
JGE Büyük eşitse sıçra
JL Küçükse sıçra
JLE Küçük eşitse sıçra.
JNA Büyük değilse sıçra.
JNAE Büyük eşit değil ise sıçra.
JNB Küçük değilse sıçra.
JNBE Küçük eşit değil ise sıçra.
JNC Taşma yoksa sıçra.
JNE Eşit değilse sıçra.
JNG Büyük değilse sıçra.
JNGE Büyük eşit değilse sıçra.
JNL Küçük değilse sıçra
JNO Taşma yoksa sıçra.
JNP Bit sayısı çift değilse sıçra.
JNS İşaretli işlemler değilse sıçra.
JNZ Sıfır değilse sıçra.
JO Taşma varsa sıçra.
JP Bitlerin sayısı çift ise sıçra.
JPE Bitlerin sayısı cift ise sıçra.
JPO Bitlerin sayısı cift ise sıçra.
JS İşaretli işlemler ise sıçra.
JZ Sonuç sıfırsa sıçra.
Etkilenen bayraklar.
Tümü.

JMP konum
Belirtilen konuma sıçrar.
Etkilenen bayraklar.
Yok.

LAHF
Bağzı yazmaçları AH yazmacına yerleştirir.
AH nin şekli
_______________
|S|Z| |A| |P| |C|
olur.
Etkilenen bayraklar.
yok.

LAR erişim,seçici (+286)
Bir byte veriye erişir.
Etkilenen bayraklar.
Z

LDS hedef,kaynak
DS için dobleword uzunluklu veriyi göstergece yükler.
Etkilenen bayraklar.
yok

LES hedef,kaynak
ES için doubleword uzunluklu veriyi göstergece yükler.
Etkilenen bayraklar.
yok

LEA hedef,kaynak
Kaynağın offsetini hedefe alır.
Etkilenen bayraklar.
yok.

LEAVE (+188)
ENTER ile yer açılan kod için geri dönüş verir.
Etkilenen bayraklar.
yok

LFS hedef,kaynak (+386)
FS segmenti için bellekten bir göstergeç atar.
Bu yöntem ile FS içerisinden bir konum belirtilebilinir.
Kullanımı alt bellekteki varsayılan offseti içeren alanı bulmak içindir.
Böylece yığıt ve interrupt vektöründe bir göstergeç oluşmış olur.
Etkilenen bayraklar.
Yok

LGDT bellek (+286)
Bellekteki dözcük veriyi GDT yazmacına yükler.
Etkilenen bayraklar.
yok

LIDT bellek (+286)
Bellekteki sözcük veriyi IDT yazmacına yükler.
Etkilenen bayraklar.
yok

LGS hedef,kaynak (+386)
Ekstra data segmenti (GS) için bir işaretçi tanımlar
Etkilenen bayraklar.
Yok.

LLDS hedef (+286)
Yerel tanımlamalar tablosunu (LDS) yazmacını hedefe yükler.
Etkilenen bayraklar.
Yok

LMSW hedef (+286)
Belirtilen hedefe MSW sözcüğünü yukler.
Etkilenen bayraklar.
yok.

LOCK komut hedef,kaynak
Belirtilen veri yolu kilitleme sinyalini hedefe alır.
Alınan noktaya görebağzı komutları vardır. Bınlar
BT,BTS,BTR,BTC --> Bellekten yazmac yada anlık veriye.
XCG --> Yazmaçtan belleğe
XCG --> Bellekten yazmaca.
ADC,SUB,SBB,OR
XOR,AND,NOT
NEG,INC,DEC --> Bellekten yazmaca veye anlık veriye.
Etkilenen bayraklar.
yok

LODS dizgi
Belirtilen kaynaktan veri alır ve AX, veya AL yazmacına yükler.
Bu işlemi CX registerıne göre yapar.
LODSB
DS:SI konumundan byte veri alıp AL ye yükler.
Yön bayrağına göre SI değerini düzenler.
LOADSW
DS:SI konumundan word uzunluklu veri alıp AX e yükler.
Yön bayrağına göre SI değerini düzenler.
Etkilenen bayraklar.
Yok.

LOOP konum
CX değerini bir eksiltir eğer sonuç sıfır değilse belirtilen konuma sıçrar.
Etkilenen bayraklar.
yok

LOOPE konum
Bir karşılaştırma sonucu eşit çıktı ise ilgili konuma döngüyü devam ettirir.
LOOPNE konum
Bir karşılaştırma sonucu eşit çıkmadıysa döngüyü devam ettirir.
LOOPNZ konum
Bir karşılaştırma sonucu sıfır çıkmadıysa ilgili konuma döngüyü devam ettirir.
LOOPZ konum
Bir karşılaştırma sonucu sıfır çıktıysa ilgili konuma döngüyü devam ettirir.
Etkilenen bayraklar.
Yok.

LSL hedef,kaynak (+286)
sektör limiti yazmaçta belirlenebiliyorsa hedef bölgöye büyüklüğü yazılır.
Aksi taktirde sıfır bayrağı resetlenir.
Etkilenen bayraklar.
Z

LSS hedef,kaynak (+386)
Hedef register ve SS 32 bit genişlikli bellek alanına aktarılır.
Alcak ve yüksek bellek alanlarında içerilen offsetleri öğrenmekte kullanılır.
Yığıta ve interrupt vektörü tablosuna müdahale edebilir.
Etkilenen bayraklar.
Yok

LTR hedef (+286)
Word uzunluklu varsayılan görev yazmacını hedefe yükler.
Etkilenen bayraklar.
Yok

MOV hedef,kaynak
Belirtilen hedefe kaynağın değerini koyar.
Etkilenen bayraklar.
yok.

MOVSX hedef,kaynak (+386)
İşaretli sayıları taşır.
MOVZX hedef,kaynak (+386)
Bilgi transferi yapar, boş olan konumlara sıfır yerleştirir.
Etkilenen Bayraklar.
Yok

MOVS hedef,kaynak
CX değeri kadar bilgiyi kaynaktan hedefe taşır.
MOVSB
DS:SI bilgisini ESI konumuna byte byte taşır.
Yön bayrağına SI ve DI değerlerini ayarlar.
REP anahtarı ile CX kadar tekrarlatılabilinir.
MOVSW
DS:SI bilgisini ESI konumuna word uzunluklu taşır.
Yön bayrağına göre SI ve DI yazmaçlarını ayarlar.
REP anahtarı ile tekrar sayısı CX kadar ayarlanabilir.

MUL kaynak
Çarpma yapar. Şayet Byte ile çarpılıyorsa AL deki sayıyı çarpar.
Bu durumda AX de sonuç olur.
Word uzunluğunda çarpma yapılıyorsa. AX yazmacındaki sayıyı çarpar.
Bu durumda sonuç DX ve AX çiftlerinde saklanır.
Etkilenen bayraklar.
O - C

NEG hedef
Hedef konumundaki bilginin bitlerini ikinin tümleyeni şeklinde düzenler.
Etkilenen bayraklar.
O - S - Z - A - C - P

NOP
Hiç bir işlem yapmaz.
Etkilenen bayraklar.
Yok.

NOT hedef
Hedefteki bilgilerin bitleri set ise reset, reset ise set yapar.
Etkilenen bayraklar.
Yok.

OR hedef,kaynak
İki veriyi bit bit karşılaştırır.
Şayet herhangi bit set ise hedefteki biti set yapar.
Etkilenen bayraklar.
C - O - S - Z - P

OUT kapı,kaynak
Herhengibi çıkışa bilgi yollar.
Etkilenen bayraklar.
Yok.

OUTS kapı,dizgi (+188)
Belirtilen kapıya veri yollar.
Yön bayrağına göre sırayı ayarlar.
OUTSB (+188)
DX ile belirtilen çıkışa DS:SI konumundaki bilgiyi byte byte yollar.
Yön bayrağına göre SI değeri ayarlanır.
OUTSW (+188)
DX ile belirtilen çıkışa DS:SI konumundaki veriyi word uzunluklu aktarır.
Yön bayrağına göre SI değerini düzenler.
Etkilenen bayraklar.
Yok.

POP hedef
Hedefe yığıttan veri alır. SP yazmacını düzenler.
Etkilenen bayraklar.
Yok.

POPA (+188)
Yığıtta saklanan değerleri sırayla DI, SI, SP, BX, DX, CX, AX yazmaçlarına geri yükler.
POPAD (+386)
Yığıtta saklanan değerleri sırayla EDI, ESI, EBP, EBX, EDX, ECX, EAX yazmaçarına yükler
Etkilenen bayraklar.
Yok.

POPF
Bayrak yazmacını yığıttan geri yükler.
POPFD (+386)
EFlang yazmacını geri yükler.
Etkilenen bayraklar.
Bütün bayraklar.

PUSH kaynak
Kaynak veriyi yığıtta saklar ve SP registerını düzenler.
Etkilenen bayraklar.
Yok.

PUSHA
Sırayla AX, CX, DX, BX, SI, DI değerlerini yığıtta saklar.
PUSHAD (+386)
Sırayla EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI değerlerini yığıtta saklar.
Etkilenen bayraklar.
Yok.

PUSHF
Bayrak yazmacını yığıtta saklar.
PUSHFD (+386)
EFlang yazmacını yığıtta saklar.
Etkilenen bayraklar.
Yok.

RCL hedef,miktar
Taşma bayrağı ile birlikte ibtleri sola kaydırır.
|------->-----|
| |
C <-- Hedef <-
RCR hedef,miktar
Taşma bayrağı ile birlikte bitleri sağa kaydırır.
|-------<-----|
| |
C --> Hedef ->
ROL hedef,miktar
Hedef bitlerini sola doğrı döndürür.
|------->----|
| |
C --<---- Hedef -<-
ROR hedef,miktar
Hedef bitlerini sola doğru döndürür.
|--------<----|
| |
-- Hedef -->-----> C
Etkilenen bayraklar.
Yok.

REP Komut
Kendinden sonra gelen komutu CX yazmacındaki değer kadar tekrarlar.
İşlem sonucu CX değeri 0 olur.
REPE Komut
Kendisinden sonra gelen karşılaştırma komutu eşitliği sürdürdükçe devam eder.
İşlem CX kadar tekrarlanır. En sonunda CX değeri 0 olur.
REPNE komut
Kendisinden sonra gelen karşılaştırma komutu sıfır sonucunu vermedikçe devam eder.
İşlem CX kadar tekrarlanır. En sonunda CX değeri 0 olur.
REPZ
Kendisinden sonra gelen karşılaştırma komutu sıfır sonucunu verdiğikçe devam eder.
İşlem CX kadar tekrarlanır. En sonunda CX değeri 0 olur.
REPNE
Kendisinden sonra gelen karşılaştırma komutu eşitliği olmadıkça devam eder.
İşlem CX kadar tekrarlanır. En sonunda CX değeri 0 olur.
Etkilenen bayraklar.
Yok.

RET
CALL komutu ile çağrılan alt programdan çağrıldığı komuta geri döner.
RETF
Far pointer çağrıyı geri yükler.
RETN
Near pointer çağrıyı geri yükler.
Etkilenen bayraklar.
Yok.

SAHF
AH yazmacındaki belirli bitleri bayrak yazmacına kopyalar.
AH yazmacının durumu.
|S|Z| |A| |P| |C|
Etkilenen bayraklar.
S - Z - A - P - C

SAL hedef,miktar
SHL hedef,miktar
En duyarsız biti sıfır yaparak sola döndürme işlemi yapar.
C <----< Hedef <----< 0
Etkilenen bayraklar.
O - C - A - P - S

SAR hedef,miktar
SHR hedef,miktar
En duyarlı biti sıfır yaparak sola kaydırma yapar.
0 >----> Hedef >----> C
Etkilenen bayraklar.
O - C - A - P - S

SBB hedef,kaynak
Tamsayılarla çıkartma işlemi yapar.
Hedef=hedef-kaynak-taşma bayrağı işlemini gerçekleştirir.
Etkilenen bayraklar.
O - S - Z - P - C - A

SCAS hedef
String veriyi karşılaştırır.
REP anahtarı ile CX kadar tekrar ettirilebilinir.
ESI ile işaretlenen veriyi tarar. Bunun için AX veya AL yi kullanır.
SCASB
Byte formatında string veriyi karşılaştırır.
Bunun için ESI ve AL verilerini kullanır.
SCASW
Word uzunluklu stringleri karşılaştırır bunun için ESI ve AX yazmaclarını kullanır.
Etkilenen bayraklar.
O - S - Z - P - C - A

SETAE (+386)
SETNB (+386)
SETB (+386)
SETNAE (+386)
SETBE (+386)
SETNA (+386)
SETE (+386)
SETZ (+386)
SETNE (+386)
SETNZ (+386)
SETL (+386)
SETNL (+386)
SETLE (+386)
SETNG (+386)
SETG (+386)
SETNLE (+386)
SETS (+386)
SETNS (+386)
SETC (+386)
SETO (+386)
SETNO (+386)
SETP (+386)
SETPE (+386)
SETNP (+386)
SETPO (+386)

SGDT hedef (+286)
Genel tanımlamalar tablosu (GDT) yazmacını belirtilen konuma alır.
Etkilenen bayraklar.
Yok.

SIDT hedef (+286)
İnterrupt bilgi tablosu (IDT) yazmacını belirtilen hedefe yazar.
Etkilenen bayraklar.
Yok.

SHLD hedef1,hedef2,miktar (+386)
Belirtilen ilk hedefin bilgilerini sola doğru belirtilen miktarda kaydırır.
Bu esnada ikinci kaynağın bitleri kullanılır.
SHRD (+386)
Belirtilen ilk hedefin bilgilerini saga doğru belirtilen miktarda kaydırır.
Bu esnada ikinci kaynağın bitleri kullanılır.
Etkilenen bayraklar.
C - P - S - Z - O - A

SLDT hedef (+286)
Yerel tanımlama tablosu (LDT) yazmacındaki word uzunluklu bilgiyi hedefte saklar.
Etkilenen bayraklar.
Yok

SWSW hedef (+286)
Hedef alanda word uzunluklu olan MSW registerını alır.
Etkilenen bayraklar.
Yok.

STC
Taşma bayrağını set eder.
Etkilenen bayraklar.
C

STD
Yön bayrağını set eder.
Etkilenen bayraklar.
D

STI
Interrupt bayrağını set eder.
Etkilenen bayraklar.
I

STOS hedef
AL veya AX deki veriyi hedef bellek alanına yollar.
REP anahtarı kullanılabilir.
STOSB
AL yazmacındaki değeri ESI alanına yollar.
REP anahtarı ile CX kadar tekrarlatılabilinir.
Daha sonra DI yazmacı yön bayrağına göre düzenlenir.
STOSW
AX yazmacındaki değeri ESI konumuna yollar.
REP anahtarı ile CX kadar tekrarlatılabilinir.
Yön bayrağına göre DI değeri ayarlanır.
Etkilenen bayraklar.
Yok.

STR hedef (+286)
Görev yazmacını word uzunluklu hedef alana yazar.
Etkilenen bayraklar.
Yok.

SUB hedef,kaynak
Hedef=hedef-kaynak işlemini gerçekleştirir.
Etkilenen bayraklar.
O - S - Z - P - A - C

TEST hedef,kaynak
Hedef ve kaynak arasında and işlemi yapar.
Fakat hedef değeri değişmez, sadece bayraklar ayarlanır.
Etkilenen bayraklar.
O - C - S - Z - P

VERR kaynak (+286)
Öz segment ve konumdaki geçerli değer ve okunabilir ayrıcalıklı konumlar alır.
İşlem başarısız olursa sıfır bayrağını set eder.
VERW kaynak (+286)
Öz segment ve konumdaki geçerli değer ve yazılabilir ayrıcalıklı konumları yazar.
İşlem başarısız olursa sıfır bayrağını set eder.
Etkilenen bayraklar.
Z

WAIT
FWAIT
Herhangibir program interrupt çağırana kadar programı durdurur.
Amacı programları eşzamanlı yapmaktır.
Etkilenen bayraklar.
Yok.

WBINVD (+486)
Dahili bilgileri alır, sonra dışarıdaki kaynağa varsayılan bilgiyi yollar.
Ardından bu bilgileri varsayılan datanın içine alır.
Etkilenen bayraklar.
Yok.

XCHG hedef,kaynakXLAT kaynak
DS:BX ile gösterilen kaynak veri AL yazmacına taşır.
XLATB
DS:EBX ile işaretlenen veriyi AL yazmacına taşır.
Etkilenen bayraklar.
Yok.

XOR hedef,kaynak
Hedef ve kaynak veri arasında mantıksal veya işlemini gerçekleştirir.
Sonuç hedef olarak belirtilen konumda saklanır.
Bu işlem iki bitten yanlız biri set olması durumunda hedef alanı set eder.
Etkilenen bayraklar.
Yok.
__________________Not:Baska bır forumdan alıntıdır.
Saygılar flyby
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 01-07-05, 19:03 #20
com1 com1 çevrimdışı
Varsayılan Cvp: Assembly Öğreniyorum..!

dersler daha acıklayıcı olursa , biz "yeni başlayanlar" için daha iyi olur
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Cevapla

Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz

Konu Araçları

Gönderme Kuralları
Yeni konu açamazsınız
Cevap yazamazsınız
Dosya gönderemezsiniz
Mesajlarınızı düzenleyemezsiniz

BB code is Açık
Smiley Açık
[IMG] kodu Açık
HTML kodu Kapalı



Tüm saatler GMT +3. Şuan saat: 23:34
(Türkiye için artık GMT +3 seçilmelidir.)

 
5651 sayılı yasaya göre forumumuzdaki mesajlardan doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Şikayet Mailimiz. İçerik, Yer Sağlayıcı Bilgilerimiz. Reklam Mailimiz. Gizlilik Politikası. Tatil
Copyright © 2018