b) Aritmetik İşlem Komutları



Benzer belgeler
80x86 MICROPROCESSOR Instructions

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

8086 Mikroişlemcisi Komut Seti

MTM 305 MĠKROĠġLEMCĠLER

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

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

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

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

8086 Mikroişlemcisi Komut Seti

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER

Assembly Programlama Dili T e m m u z

Assembly. Programlama Dili. T e m m u z

Aritmetiksel Komutlar

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

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

MTM 305 MĠKROĠġLEMCĠLER

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

Mikroişlemciler. Giriş

AND Komutu. and hedef, kaynak

MTM 305 MĠKROĠġLEMCĠLER

Mikroişlemciler. Giriş

Bölüm 4 Veri Aktarma Komutları

BM-311 Bilgisayar Mimarisi

Prepared By IcEN. >> IcEN. Bu makalemizde 80x86 gerçek mod komutlar inceleyece iz.

MTM 305 MİKROİŞLEMCİLER

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

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

K uark projesi. Temel Özellikler :

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları

Ö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

Veri Yapıları ve Algoritmalar. Giriş

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

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

İ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

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

Mikrobilgisayar Mimarisi ve Programlama

1 NEDEN SEMBOLİK MAKİNA DİLİ ÖĞRENİLMELİDİR? MİKROİŞLEMCİLERİN ÇALIŞMA BİÇİMLERİ TİPİK BİR RAM İN YAPISI

CISC Complex Instruction Set Computers

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Mikrobilgisayar Mimarisi ve Programlama

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

(5 soru seçerek cevaplandırınız. Seçilen soru numaralarını yukarıdaki çizelgede işaretleyiniz) Sınav süresi 100 dakikadır. Başarılar dileriz.

80X86 SEMBOLİK MAKİNA DİLİ

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

MTM 305 MİKROİŞLEMCİLER

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

MTM 305 MİKROİŞLEMCİLER

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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

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

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

MTM 305 MĠKROĠġLEMCĠLER

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

KASIRGA -4 Buyruk Tasarımı Belgesi Ankara

6. Mikroişlemcili Geliştirme Sistemleri

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

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

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

Veri Yapıları ve Algoritmalar. Giriş (Genel Tanımlar ve Kavramlar) Dr. Öğr. Üyesi M. Ozan AKI

Bileenler arasndaki iletiim ise iletiim yollar ad verilen kanallar yardm ile gerçekleir: 1 Veri Yollar 2 Adres Yollar 3 Kontrol Yollar

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

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

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

BBM 341 Sistem Programlama

: BÖLÜM 1: PLC NİN YAPISI

İ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Ş

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

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

C-Serisi PLC İleri Seviye Eğitim

DIGIAC 2000 Deney Seti PAT İŞLEMCİ KARTI :

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

Mikrobilgisayar Donanımı

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

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

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

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

KOMUT AÇIKLAMALARI VE ÖRNEKLERİ

BM-311 Bilgisayar Mimarisi

İ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Ü

Bilg.Mimarisi-I 4.HAFTA VERI AKTARIMI VE ISLEME. Bilgisayar buyrukları 3 kategoride sınıflandırılabilir.

MİKROİŞLEMCİ LABORATUARI UYGULAMA ÖRNEKLERİ

Basit Bootstrap Uygulaması

1.BÖLÜM 1.SAYI SİSTEMLERİ

T.C. MİLLÎ EĞİTİM BAKANLIĞI UÇAK BAKIM MİKROİŞLEMCİLER 523EO0014

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

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

idea rsbasic KOMUTLARI

BLM1011 Bilgisayar Bilimlerine Giriş I

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

Ayhan Yüksel. (Son güncelleme: Berat Doğan) Tıbbi Enstrumantasyon Tasarım & Uygulamaları ( )

BÖLÜM 7 Kesmeler.

Komut Seti Mimarisi (ISA)

BM-311 Bilgisayar Mimarisi

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

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

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

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

Komut Seti Mimarisi (ISA)

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

Transkript:

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 by 1) INC D (D)+1 (D) AAA (Ascii Adjust for Addition) AAA (Toplama için Ascii ayar) DAA (Decimal Adjust for Addition) DAA (Toplama için desimal ayar) Bütün toplama komutları bütün durum bayraklarını etkiler. Ayar komutları sadece AL register ile çalışabilirler. Bu yüzden ayar komutlarından önceki toplama komutunun hedefi AL olmalıdır.

HEDEF KAYNAK (ilk iki komut için) REG REG ADD CL, BL ADC SI, DI MEM REG ADD [1234H], BP ADC [BX+4], AL REG MEM ADD BX, [SI] ADC AL, [BP+SI] REG IMMEDIATE ADD AX, 0FH ADC BL, 0FH MEM IMMEDIATE ADD BYTE PTR [200H], 0ABH HEDEF (INC komutu için) REG INC AL INC CX MEM INC BYTE PTR [SI+BX] INC WORD PTR [DI]

2- Çıkarma ve Çıkarma İle İlgili Komutlar Komut Format İşlem. SUB (SUBtract) SUB D, S (D)-(S) (D); ödünç CF SBB (SuBtract with Borrow) SBB D, S (D)-(S)-CF (D); yeni ödün CF DEC (DECrement by 1) DEC D (D)-1 (D) NEG (NEGate) NEG D 0 (D) (D); 1 CF AAS (Ascii Adjust for Subtruction) AAS (Çıkarma için Ascii ayar) DAS (Decimal Adjust for Subtruction) DAS (Çıkarma için desimal ayar)

HEDEF KAYNAK (ilk iki komut için) REG REG SUB CL, BL SBB SI, DI MEM REG SUB [1234H], BP SBB [BX+4], AL REG MEM SUB BX, [SI] SBB AL, [BP+SI] REG IMMEDIATE SUB AX, 0FH SBB BL, 0FH MEM IMMEDIATE SUB BYTE PTR [200H], 0ABH HEDEF (DEC ve NEG komutları için) REG DEC AL NEG CX MEM DEC BYTE PTR [SI+BX] NEG WORD PTR [DI] Bütün çıkarma komutları bütün durum bayraklarını etkiler.

3- Çarpma ve Bölme Komutları Komut Format İşlem. MUL MUL S S8*AL AX S16*AX DX AX IMUL IMULS S8*AL AX S16*AX DX AX DIV DIV S AX/S8 AL (sonuç) AH (kalan) IDIV IDIVS DX AX/S16 AX (sonuç) DX (kalan) KAYNAK (ilk dört komut için) REG MUL AL IMUL CX MEM MUL BYTE PTR [200H] IMUL WORD PTR [BX]

3- Çarpma ve Bölme Komutları Komut Format İşlem. AAM AAM Ascii Adjust for Multiplication AAD AAD Ascii Adjust for Division CBW CBW Convert Byte to Word CWD CWD Convert Word to Double word

CBW : AL de bulunan Byte ı AX e (Word e) genişletir. CWD : AX de bulunan Word ü DX AX e (Double Word e) genişletir. AL= 45 olsun. CBW çalıştıktan sonra : AX= 0045 olur.(sayı pozitiftir. Değerini değiştirmeden genişletir.) AL=8A olsun. CBW çalıştıktan sonra : AX= FF8A olur.(sayı negatiftir. Değerini değiştirmeden genişletir.)

AX= 6545 olsun. CWD çalıştıktan sonra : DX=0000 olur. AX= 6545 olarak kalır. AX= ABCD olsun. CWD çalıştıktan sonra : DX=FFFF olur. AX= ABCD olarak kalır.

LOJİK KOMUTLAR Komut Format İşlem. AND AND D, S (D) (S) (D) OR OR D, S (D) + (S) (D) XOR XOR D, S (D) (S) (D) NOT NOT D (D) (D)

HEDEF KAYNAK (ilk üç lojik komut için) REG REG AND AL, DL OR SI, BP MEM REG XOR [200h],AX AND [DI+4], BH REG MEM OR CX, [SI] XOR AL, [BP+SI] REG IMM. AND AX, 0Fh OR BL, 0Fh MEM IMM. XOR BYTE PTR [200H], 45h HEDEF (NOT komutu için) REG NOT AL NOT CX MEM NOT BYTE PTR [200h] NOT WORD PTR [BX]

KAYDIRMA VE DÖNDÜRME (SHIFT VE ROTATE) KOMUTLARI Format İşlem. SAL/SHL D, sayı Hedefteki veriyi sayı kadar kere sola kaydır, sağda boş kalan yerlere 0 yaz. Atılan bit Carry ye. SHR D, sayı SAR D, sayı Hedefteki veriyi sayı kadar kere sağa kaydır, solda boş kalan yerlere 0 yaz. Atılan bit Carry ye. Hedefteki veriyi sayı kadar kere sağa kaydır, solda boş kalan yerlere işaret bitini yaz.atılan bit Carry ye.

KAYDIRMA VE DÖNDÜRME (SHIFT VE ROTATE) KOMUTLARI ROR D, sayı Hedefteki veriyi sayı kadar kere sağa kaydır, solda boş kalan yerlere sağdan atılan bitleri yaz. Atılan bit Carry ye. ROL D, sayı Hedefteki veriyi sayı kadar kere sola kaydır, sağda boş kalan yerlere soldan atılan bitleri yaz. Atılan bit Carry ye. RCR D, sayı Hedefteki veriyi sayı kadar kere sağa kaydır, atılan biti Carry ye yaz. Carry dekini solda boş kalan yerlere yaz. RCL D, sayı Hedefteki veriyi sayı kadar kere sola kaydır, atılan biti Carry ye yaz. Carry dekini sağda boş kalan yerlere yaz.

KAYDIRMA VE DÖNDÜRME (SHIFT VE ROTATE) KOMUTLARI HEDEF sayı REG 1 SHL AX, 1 SHR CH, 1 ROR DX, 1 REG CL RCR AL, CL ROL SI, CL SAL BX, CL MEM 1 RCL BYTE PTR [200h], 1 MEM CL SHR WORD PTR [DI], CL

BAYRAK KONTROL KOMUTLARI (FLAG CONTROL INSTRUCTIONS) Komut Açılımı Anlamı Etkilediği bayraklar LAHF Load AH from Flags SAHF Store AH into Flags bayrakları AH ye yükler hiçbiri AH deki bilgiyi bayraklara yükler SF, ZF, AF, PF, CF CLC CLear Carry flag Carry bayrağını sıfırlar CF STC SeT Carry flag Carry bayrağını 1 yapar CF CMC CoMplement Carry flag Carry bayrağının değerini tersine çevirir CF CLI CLear Interrupt flag Interrupt bayrağını sıfırlar IF STI SeT Interrupt flag Interrupt bayrağını 1 yapar IF CLD CLear Direction flag Direction(yön biti) bayrağını sıfırlar DF STD SeT Direction flag Direction bayrağını 1 yapar DF AH = SF ZF AF PF CF sırasıyla kaydedilir. Bayrak kontrol komutlarının hiçbirinin parametresi yoktur.

Soru: Bayrakların mevcut değerlerini Data segmentte 0230h adresinde saklayacak ve 0240h adresindeki bilgiyi bayraklara yükleyecek olan program parçasını yazınız.

KARŞILAŞTIRMA KOMUTU (COMPARE INSTRUCTION) Komut Format İşlem Etkilediği bayraklar CMP CMP D,S (D) - (S) sonuca göre bayrakları etkiler OF, SF, ZF, AF, PF, CF Karşılaştırma için yapılan çıkarma işleminin sonucu hiçbir yere kaydedilmez. Sadece bulunan sonuca göre bayrakları değiştirir.

HEDEF KAYNAK REG REG CMP AL, DL CMP SI, BP MEM REG CMP [200h], AX CMP [DI+4],BH REG MEM CMP CX, [SI] CMP AL, [BP+SI] REG IMMEDIATE CMP AX, 1234h CMP BL, 25h MEM IMMEDIATE CMP BYTE PTR [200h], 45h

CF ve AF işaretsiz karşılaştırma sonucunu verir. SF işaretli karşılaştırma sonucunu verir. Hedef ve Kaynak eşitse ZF=1 olur. Sonuç değeri içindeki 1 ler çift sayıda ise PF=1 olur. İşlem sonucu pozitif çıkması gerekirken negatifse veya negatif çıkması gerekirken pozitifse OF=1 olur.

Örnek: MOV AX,1234H MOV BX,0ABCDH CMP AX,BX Sonuçta bayrakların durumu şöyle olacaktır: OF=0, SF=0, ZF=0, AF=1, PF=X, CF=1

İki pozitif ya da iki negatif sayının karşılaştırılması sonucunda hiçbir zaman OF=1 olamaz. Biri negatif diğeri pozitif olan sayıların karşılaştırılması sonucunda OF=1 olabilir. Bu durumda SF nin yanlış değer vermemesi için işlemci tarafından tersi alınır ve olması gereken sonuç kaydedilir. Yani OF=1 olması sorun oluşturmaz.

ATLAMA KOMUTLARI(JUMP INSTRUCTIONS) a) Koşulsuz Atlama Komutu Komut Format İşlem Etkilediği bayraklar JMP JMP operand Operand tarafından belirlenen yeni adrese atlar Hiçbiri Operand Short-label Near-label JMP sonuc (gidilecek yer 8 bitle tarif edilebilecek mesafedeyse) JMP ortalama (gidilecek yer 16 bitle tarif edilebilecek mesafedeyse) Mem-ptr16 JMP [BX] JMP [200h] JMP [SI+23h] Reg-ptr16 JMP BX JMP SI Far-label Mem-ptr32 JMP uzak JMP DWORD PTR [DI]

Yukarıda yer alan ilk dört operand için, komutun çalışması sırasında yalnızca IP register ın değişmesi yeterlidir. Bunlar segment içi atlama olarak adlandırılırlar. Çünkü programın devam edeceği yeni adres zaten o an mevcut olan kod segmenti ndedir. Sonraki iki operand türünün kullanılması durumu ise segment dışı atlama olarak adlandırılır. Programın devamının yer aldığı yeni adres o anki kod segmenti nin içinde değildir. Bu yüzden IP register a hangi değer verilirse verilsin yeni adrese ulaşmasına yetmez. Hem IP hem de CS register değişmelidir.

Koşullu Atlama Komutları Komut Açılımı. JA/JNBE Jump if Above/Jump if Not Below or Equal JAE/JNB Jump if Above or Equal /Jump if Not Below JB/JNAE Jump if Below /Jump if Not Above or Equal JBE/JNA Jump if Below or Equal /Jump if Not Above JC Jump if Carry JNC Jump if Not Carry JE/JZ Jump if Equal/ Jump if Zero JNE/JNZ Jump if Not Equal/ Jump if Not Zero JCXZ Jump if CX is Zero JG/JNLE Jump if Greater /Jump if Not Less or Equal JGE/JNL Jump if Greater or Equal /Jump if Not Less JLE/JNG Jump if Less or Equal /Jump if Not Greater JP Jump if Parity JS Jump if Sign JO Jump if Overflow

MOV AX, 6 MOV BX, 2 CMP AX, BX JB DIFF2 DIFF1: MOV DX, AX SUB DX, BX JMP BITTI DIFF2: MOV DX, BX SUB DX, AX BITTI: NOP ÖRNEK: Bu program parçası çalıştıktan sonra DX de hangi bilgi olur?

DÖNGÜLER VE İLGİLİ KOMUTLAR Komut Format LOOP LOOP short-label LOOPE/LOOPZ LOOPE/LOOPZ short-label İşlem CX=CX-1; CX 0 olduğu sürece dön CX=CX-1; CX 0 ve ZF= 1 olduğu sürece dön LOOPNE/LOOPNZ LOOPNE/LOOPNZ short-label CX=CX-1; CX 0 ve ZF= 0 olduğu sürece dön LOOP mavi LOOPE etiket LOOPNE 2300h (IP=2300 olur.) Döngü komutları yeni adrese gidilebilmesi için sadece IP register ı değiştirirler.

ALTPROGRAMLAR VE İLGİLİ KOMUTLAR (SUBROUTINES) Komut Anlamı Format Etkilenen Bayraklar CALL Altprogramı CALL operand hiçbiri çağır RET Altprogramdan RET hiçbiri geri dön

Operand Near-proc CALL ortalama Mem-ptr16 CALL [BX] CALL [200h] CALL [SI+23h] Reg-ptr16 CALL BX CALL SI Far-proc CALL uzak Mem-ptr32 CALL DWORD PTR [DI] CALL DWORD PTR [4050h]

PUSH ve POP KOMUTLARI Komut Anlamı Format İşlem PUSH iki byte ı PUSH S (S) [(SP)] yığına at POP yığından POP D [(SP)] (D) iki byte çek hedef veya kaynak Register PUSH AX PUSH SI POP BX Seg-Reg (CS hariç) POP DS POP ES PUSH SS Memory PUSH [200h] PUSH [SI] POP [BX+DI-5]

Komut Anlamı İşlem PUSHF Bayrakları yığına at (bayraklar) [(SP)] POPF Yığından iki byte ı al [(SP)] (bayraklar) bayraklara kaydet

MOV CX, 100h MOV DS, CX MOV BX, 900h MOV SI, 100h MOV DI, 300h Again: ADD BX, MOV AX, [BX] CMP AX, 0h JGE Atla MOV [DI], AX INC DI INC DI JMP Nxt Atla: MOV [SI], AX INC SI INC SI Nxt: LOOP Again

YINE: WW: MOV AX, 3000H a) Programın ne iş yaptığını açıklayınız. MOV DS, AX MOV SI, 100H b) Programda CMP DL, BL yerine CMP BL, DL MOV DI, 200H azılmış olsaydı programın yaptığı iş açısından ne MOV CX, 20H değişirdi? Açıklayınız. MOV BL, 50H MOV DL, [SI] CMP DL, BL c) Programda JBE yerine JB komutu JA WW kullanılmış olsaydı CMP DL, 03H programın yaptığı iş açısından JBE WW ne değişirdi? Açıklayınız. MOV AL, [SI] MUL DL d) Programın sonuna JCXZ YİNE komutu eklenseydi MOV [DI], AX programın yaptığı iş açısından ADD DI, 02H ne değişirdi? Açıklayınız. INC SI LOOP YINE

DİZİLER VE İLGİLİ KOMUTLAR(STRING INSTRUCTIONS) Komut İşlem. MOVSB [DS(0)+SI] [ES(0)+DI] SI = SI ± 1 DI = DI ± 1 MOVSW [DS(0)+SI] [ES(0)+DI] [DS(0)+SI+1] [ES(0)+DI+1] SI = SI ± 2 DI = DI ± 2 CMPSB [DS(0)+SI] - [ES(0)+DI] SI = SI ± 1 DI = DI ± 1 CMPSW [DS(0)+SI] - [ES(0)+DI] [DS(0)+SI+1] - [ES(0)+DI+1] SI = SI ± 2 DI = DI ± 2

DİZİLER VE İLGİLİ KOMUTLAR(STRING INSTRUCTIONS) Komut İşlem. SCASB AL - [ES(0)+DI] DI = DI ± 1 SCASW AX - [ES(0)+DI] DI = DI ± 2 LODSB [DS(0)+SI] AL SI = SI ± 1 LODSW [DS(0)+SI] AX SI = SI ± 2 STOSB AL [ES(0)+DI] DI = DI ± 1 STOSW AX [ES(0)+DI] DI = DI ± 2

CMPS ve SCAS komutları işlem sonucunu herhangi bir yere yazmazlar. Yalnızca sonuca göre bayrakları etkilerler.

Ön ek Birlikte kullanıldığı komutlar Anlamı REP MOVS CX 0 ise STOS CX = CX 1 yapar ve tekrar eder REPE/REPZ CMPS CX 0 ise ve SCAS ZF = 1 ise CX = CX 1 yapar ve tekrar eder REPNE/REPNZ CMPS SCAS CX 0 ise ve ZF = 0 ise CX = CX 1 yapar ve tekrar eder

ÖRNEK PROGRAM PARÇASI 4. CLD MOV AX, 4500h MOV DS, AX MOV AX, 8500h MOV ES, AX MOV CX, 20h MOV SI, 300h MOV DI, 300h REP MOVSB

Giriş/Çıkış Komutları 1. Dolaysız Giriş/Çıkış IN AL, 78H IN AX, 235 MOV AL, 22 MOV AX, 1234 OUT 95, AL OUT 255, AX Dolaysız giriş/çıkış işlemi için doğrudan port numarası verilerek işlem yapılır. Fakat bunun için port numarası 8 bit olmalıdır. Daha büyük numaralı portlar için dolaylı yöntem kullanılmalıdır.

2. Dolaylı Giriş/Çıkış MOV DX,78h MOV DX,235 IN AL, DX IN AX, DX MOV AL, 50 MOV AX, 1234 MOV DX,95h MOV DX,255 OUT DX, AL OUT DX, AX Dolaylı giriş/çıkış için gerekli port numarası önce DX register a kaydedilmelidir.