· EEM332
EEM332 Mikroişlemciler: Laboratuvar 3–4: Adresleme, Aritmetik ve Mantık
EEM332 – Mikroişlemciler · 28.02.2006 · 18.10.2026
Bu yazı, Başkent Üniversitesi EEM332 Mikroişlemciler ders arşivindeki ilgili notları ve uygulamaları bir araya getiriyor (2006–2015). Adresleme kipleri, yazmaç değiştirme, toplama ve bayraklar, en küçük ve en büyük değeri arama; deney föyleri ve çözümler. Bir arkadaşın hazırladığı çalışmalar ve ders belgeleri birlikte aktarılmış; öğrenci adları, numaraları ve grup bilgileri çıkarılmıştır. Belgelerin PDF arşiv kopyaları ve varsa kaynak kodları yazının sonunda ZIP olarak indirilebilir.
eem332_lab03
EEM 332 - Mikroişlemciler Deney Numarası: 3 Deney Adı: Adresleme Kipleri (Addressing Modes)
Ön Çalışma Ders kitabınızdan adresleme kiplerini okuyup öğrenin. Her adresleme kipinin adını yazarak buna bir örnek veriniz ve bir liste hazırlayınız. (Ör: Immediate Operand Addressing Mode
MOV AX,1234)
Deneysel Çalışma
1. Aşağıda verilen komutlar için adresleme kipinin adını ve o komutta geçerli olan
fiziksel adresi (physical address) belirtiniz. Yazmaçların kaynak (source) veya varış noktası (destination) olarak kullanılması fiziksel adresin hesaplanma yöntemini etkilememektedir. Yazmaçların ilk durumları şu şekildedir: DS = 1000, SS =
2000, BX = 0300, BP = 1000, DI = 0100, SI = 0200.
a. MOV AL,[1234] Direct addressing, PA: 10000+1234=11234 b. MOV AX,[BX] Reg. indirect addressing, PA: 10000+0300=10300 c. MOV [DI],AL d. MOV AL,[BP+DI] e. MOV CX,[DI] f. MOV DX,[BP] g. MOV [100],DL h. MOV [SI+100],AX i. MOV DL,[BX+100] j. MOV [SI],DX k. MOV CL,[BX] l. MOV CH,[BX+SI] m. MOV AX,[BP+200] n. MOV AL,[BP+SI-200] o. MOV AL,[SI-0100]
2. Aşağıdaki işlemleri, belirtilen adresleme kipine uygun olarak gerçekleştirecek çevirici
(assembly) komutlarını yazınız. Verilen işlemler sıralıdır (sequential). Çalıştığınız aşamadan önceki aşamaların sonuçlarını kullanmanız gerekebilir.
a. Immediate; AXÅ1234
mov ax, 1234
b. Register; BXÅ1234
mov bx, ax
c. Register; CLÅ 34 d. Direct; to DS:0200 locationÅ1234 e. Direct; CHÅ 12 f. Direct; to ES:0220 locationÅ 1234 g. Register indirect using SI; AHÅ 34 h. Register indirect using BP; BHÅ34 i. Immediate; AXÅ 5678
j. Based with BX=0200; to DS:0202 location Å 5678 k. Immediate; AXÅ 90AB l. Indexed with DI=0220; to DS:0204 locationÅ 90AB m. Based indexed when BX=0100 and SI=0104; CLÅ AB n. Based indexed with displacement when BX=0100 and SI= 0100 an SI=0100;
CHÅ 90

eem332_lab04
EEM 332 - Mikroişlemciler Deney Numarası: 4 Deney Adı: Aritmetik ve Mantık İşlemleri 1
Ön Çalışma
Aşağıdaki soruları yanıtlayınız. Çalışmasının fazladan bir kopyasını yanınızda getiriniz. Ön çalışmalar laboratuvar saatinin başında toplanacaktır.
Ç1. AX ve BX yazmaçlarının içeriklerinin birbirleriyle değiştirilmesi istenmektedir. Bu işlemi sadece MOV komutunu ve AX, BX ve CX yazmaçlarını kullanarak gerçekleştiriniz. Ç2. Aynı işlemi sadece bir komut kullanarak gerçekleştirebilir misiniz? Belirtiniz. Ç3. DS:300 ve DS:400 hafıza yerlerindeki 16-bitlik değerlerinin yerlerinin birbirleriyle değiştirilmesi istenmektedir. Bu işlem hangi üç komut satırını kullanarak gerçekleştirilebilir? Belirtiniz. (ipucu: komutlardan birisi XCHG’dir) Ç4. “ADD AX,1” ve “INC AX” komutları arasındaki farklar nelerdir? Ç5. LEA komutu ne için kullanılır? “LEA AX,[BX]” ve “MOV AX,[BX]” komutları arasında fark var mıdır, varsa bu farkları nedir? Ç6. “ADC AX, BX” komutu ne işlemi yapar? Aşağıdaki iki koşula göre yanıtlayınız. a. elde bayrağı (carry flag) 1. b. elde bayrağı (carry flag) 0. Ç7. “NEG BX” komutu çalıştırıldığında hangi değişiklikler gözlenir? Ç8. Aşağıda verilen işlemin gerçekleşmesi için gereken çevirici (assembly) komutlarını
belirtiniz
Z=A+B*(C-D)
Not: A, B, C, D ve Z değişkenleri DS:500 hafıza adresinden başlayarak, belirtilen
sırayla saklanan 8-bitlik değerlerdir. Ç9. AL=20H CL=80H
MUL CL ………………. Æ AX=1000 ‘dir.
----------------------------------------------- Ancak IMUL CL …………. Æ AX=F000 olmaktadır. Bunun nedenini açıklayınız. Her iki komutta bayrakların durumlarını belirtiniz. Ç10. AX=0040 ve BX=0041 iken aşağıdaki işlemleri gerçekleştirmek için gereken çevirici kodlarını yazınız.
a. AX ve BX yazmaçlarında saklanan değerleri sadece kaydırma (shift) işlevlerini kullanarak 2’ye bölünüz. AX ve BX yazmaçlarında saklanan değerleri sadece kaydırma işlevlerini kullanarak 2’yle çarpınız. AX ve BX yazmaçlarının yeni değerlerini karşılaştırınız ve elde (carry) ve sıfır (zero) bayraklarını kontrol ediniz. AX yazmacındaki değeri arttırınız (increase) ve AX ve BX yazmaçlarının yeni değerlerini karşılaştırınız ve elde (carry) ve sıfır (zero) bayraklarını kontrol ediniz. AX ve BX yazmaçlarının değerlerini birbirleriyle değiştiriniz (exchange) ve AX ve BX yazmaçlarının yeni değerlerini karşılaştırınız ve elde (carry) ve sıfır (zero) bayraklarını kontrol ediniz.
b. AX yazmacına -16 değerini giriniz ve sadece kaydırma işlevlerini kullanarak 2 ’ye bölünüz.
Deneysel Çalışma Aşağıdaki sorularda istenilen işlemleri gerçekleştirip gerekli hafıza birimlerini ve yazmaçları kontrol ederek ön çalışmada gerçekleştirdiğiniz çalışmaların doğruluğunu kontrol ediniz.
L1. Ç1 sorusunda yazdığınız kodları çevirip çalıştırınız. L2. Ç2 sorusunda yazdığınız kodu çevirip çalıştırınız. L3. Ç3 sorusunda yazdığınız kodları çevirip çalıştırınız.. L4. Ç4 sorusuna verdiğiniz yanıtı her iki komutu da çalıştırarak ve yazmaç içeriklerindeki değişiklikler inceleyerek doğrulayınız. L5. “LEA AX, BX” komutunu çalıştırınız ve sonuçları gözlemleyiniz ve nedenlerini açıklayınız. L6. Ç6 sorusuna verdiğiniz yanıtın doğruluğunu elde bayrağının değerini değiştirerek verilen komutu çalıştırıp kontrol ediniz. L7. BX yazmcacına 0045h değerini yükleyiniz. İşaret bayrağını (sign flag) pozitif olarak ayarlayınız. NEG BX komutunu çevirip (assemble), izleyiniz (trace). a. BX yazmacında tutulan yeni değer nedir? b. Komut çalıştırıldıktan sonra işaret bayrağının durumu nedir? L8. Ç8 sorusunda yazmış olduğunuz program parçacığını çevirip (assemble) izleyiniz (trace). (Not: Komutları çalıştırmadan önce gerekli hafıza birimlerine A, B, C ve D değişkenleri için istediğiniz değerleri yükleyiniz.) L9. Yazmaçların içeriklerini Ç9’da verilen şekilde ayarlayınız ve“MUL CL” ile “IMUL CL” komutlarını çalıştırarak AX ve bayrak yazmaçlarının içeriklerini gözlemleyiniz. L10. Aşağıda verilen komutları çeviriniz (assemble) ve izleme (trace) komutuyla tek tek çalıştırınız. Her komutu çalıştırdıktan sonra bayrak yazmacı üzerindeki (sadece elde, taşma, sıfır ve işaret bayrakları) değişiklikleri not ediniz ve bu değişikliklerin nedenlerini açıklayınız.
MOV AL, FF
ADD AL, 1
MOV AL, 7F
ADD AL, 1
MOV AL, 80
ADD AL, 1
MOV AL, FF
INC AL
MOV AL, 80
INC AL
L11. Aşağıdaki komutları izleyerek (trace) AX ve BX yazmaçlarındaki değişimleri
inceleyiniz.
İlk değerler: AX=AA77 BX=C3C3
AND AX,BX
NOT AX
AND AL,BH
NOT BX
OR BX,AX
NOT AH
OR BL,AH
XOR AX,BX
NOT BX
XOR BH,AH
L12. Aşağıda verilen işlemleri gerçekleştirmek için gereken çevirici (assembly) komutlarını yazınız
a. AX yazmacına “4” sayısını ASCII kodu olarak giriniz ve bu değeri mantık işlemleri ile ikilik (binary) sisteme çeviriniz (yapısı gereği DEBUG sonucu 16’lık tabanda gösterecektir). b. AX yazmacına “48” sayısını ASCII kodu olarak giriniz ve bu değeri mantık işlemleri ile açılmış ikilik (unpacked binary) sisteme çeviriniz. c. BX yazmacına “48” sayısını ASCII kodu olarak giriniz ve bu değeri mantık işlemleri ile açılmamış ikilik (packed binary) sisteme çeviriniz. d. AX yazmacına 0038h değerini yükleyiniz ve bunu ASCII koduna çeviriniz. Sonucu istediğiniz bir yazmaçta gösterebilirsiniz.
L13. Ç10 sorusunda yazdığınız kodları çalıştırınız ve programınızın doğruluğunu kontrol ediniz.
L14. Aşağıdaki işlemleri gerçekleştirmek için gereken çevirici (assembly) komutlarını yazınız
a. AL ve AH yazmaçlarının içeriklerini döndürme (rotate) işlevlerini kullanarak birbirleriyle değiştiriniz. b. AL ve AH yazmaçlarının içeriklerini döndürme (rotate) işlevlerini ve bunların elde (carry) ve mantık (logic) özelliklerini kullanarak birbirleriyle değiştiriniz.
L15. AL=66h ve BL=48h iken aşağıdaki komutun çalıştırılmasıyla oluşacak sonuç nedir?
ADD AL,BL
AL ve BL yazmaçlarındaki değerlerin toplamının gerçek değerini AX yazmacına yükleyen çevirici kodunu yazınız. Bunun için çevirici dilindeki CBW komutunu kullanınınız.

EEM332 Deney 3 önçalışma
1) Yer değiştirme işi;
MOV CX,AX
MOVAX,BX
MOV BX,CX
kodlari ile gerçekleştirilir.
-a 100
13B6:0100 mov cx,ax
13B6:0102 mov ax,bx
13B6:0104 mov bx,cx
13B6:0106
-r
AX=1300 BX=1500 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0100 NV UP EI PL NZ NA PO NC
13B6:0100 89C1 MOV CX,AX
-t
AX=1300 BX=1500 CX=1300 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0102 NV UP EI PL NZ NA PO NC
13B6:0102 89D8 MOV AX,BX
-t
AX=1500 BX=1500 CX=1300 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0104 NV UP EI PL NZ NA PO NC
13B6:0104 89CB MOV BX,CX
-t
AX=1500 BX=1300 CX=1300 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0106 NV UP EI PL NZ NA PO NC
13B6:0106 0000 ADD [BX+SI],AL DS:1300=00
-
2) Aynı işlemi
XCHG AX,BX
Kodu ile gerçekleştirebiliriz.
-r
AX=1300 BX=1500 CX=1500 DX=0000 SP=FFEE BP=0000 SI=0002 DI=0002
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0100 NV UP EI PL ZR NA PE NC
13B6:0100 89C1 MOV CX,AX
-a
13B6:010A xchg ax,bx
13B6:010C
-t
AX=1500 BX=1300 CX=1300 DX=0000 SP=FFEE BP=0000 SI=0002 DI=0002
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0106 NV UP EI PL ZR NA PE NC
13B6:0106 87C3 XCHG AX,BX
-t
AX=1300 BX=1500 CX=1300 DX=0000 SP=FFEE BP=0000 SI=0002 DI=0002
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0108 NV UP EI PL ZR NA PE NC
13B6:0108 87C3 XCHG A
3) MOV AX,[0300]
XCHG [0400],AX
MOV [0300],AX
Komutları ile gerçekleştirebiliriz.
4) Komutları programda yazarak deneyecek olursak,
AX=1300 BX=1500 CX=1300 DX=0000 SP=FFEE BP=0000 SI=0002 DI=0002
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=010C NV UP EI PL ZR NA PE NC
13B6:010C 050100 ADD AX,0001
-t
AX=1301 BX=1500 CX=1300 DX=0000 SP=FFEE BP=0000 SI=0002 DI=0002
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=010F NV UP EI PL NZ NA PO NC
13B6:010F 40 INC AX
-t
AX=1302 BX=1500 CX=1300 DX=0000 SP=FFEE BP=0000 SI=0002 DI=0002
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0110 NV UP EI PL NZ NA PO NC
13B6:0110 0000 ADD [BX+SI],AL DS:1502=00
- * İki kod da aynı işlemi yapar ancak ilk kod 3 byte yer kaplar iken “inc ax” komutu 1 byte lık yer kaplar.
- Add komutu ekleme işlemi yapar. İnc komutu ise sadece 1 artırır.
- İnc komutu 8,16 bitlik yazmaçlar ve hafızalarda da işlem yapar.
5)
LEA AX,[BX] = Bu komutla BX in efektif adresini AX e aktarır. Lea komutu pointer gibi çalışır.
MOV AX,[BX] = Bu komutla ise adres içeriğini AX e aktarır.
“ADC”
6) “ADC “ komutu aynı “ADD” gibi toplama işlemi yapar ancak “ADC” komutunda carry flagde
toplamaya katılır.
Örneğin; Carry flag=1 ise,
AX=BX+AX+CF
Aşağdaki örnekte görüleceği üzere AX=3B08 , BX=1304 ve CF=1 ( flaglerde CY mevcut) Sonuç beklentiği gibi AX=BX+AX+CF=3B08+1304+1=4E0D çıktı. Aynı işlemi ADD komutu işle yapsaydık sonuç 4E0C çıkacaktı.
-r
AX=3B08 BX=1304 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0100 NV UP EI PL NZ NA PO CY
13B6:0100 11D8 ADC AX,BX
-a 13b6:0100
13B6:0100 adc ax,bx
13B6:0102
-r
AX=3B08 BX=1304 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0100 NV UP EI PL NZ NA PO CY
13B6:0100 11D8 ADC AX,BX
-t
AX=4E0D BX=1304 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0102 NV UP EI PL NZ NA PO NC
13B6:0102 89D8 MOV AX,BX
7)
Bu komutla sayıların ikinci complimentini bulabiliriz.
Örneğin rasgele bir sayı seçelim. Sayımız AX=1BC3 olsun.
1BC3 sayınısı bit lerine ayırırsak = 0001 1011 1100 0011 elde ederiz.
2. complimenti sağ dan ilk 1 sayısına kadar aynı sonrasını tam tersi ni yazarak elde ederiz yani
1BC3 ün kompimenti = 1110 0100 0011 1101= E43D dir.
Deneyerek görecek olursak;
-r
AX=1BC3 BX=1304 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0100 NV UP EI PL NZ NA PO NC
13B6:0100 11D8 ADC AX,BX
-a 13b6:0100
13B6:0100 neg ax
13B6:0102
-t
AX=E43D BX=1304 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0102 NV UP EI NG NZ AC PO CY
13B6:0102 89D8 MOV AX,BX
8)
MOV AL, [0503]
SUB [0502], AL
MOV AL, [0502]
MUL [0501]
ADD AL,[0500]
MOV [0504], AL
Komutları ile Z=A+B*(C-D) işlemini gerçekleştirebiliriz.
9) mul ile imul da aynı değere sahip registerlerin farklı sonuçlar vermesinin sebebi; MUL komutuyla
AL ile CL yi çarpıp direk AX e aktarabiliyoruz. Soruda işaretsiz iki hez sayının çarpımı 1000H çıkmıştır. Flaglerden ise overflow ve carry carry flag etkilenir. IMUL komutu ile de verilen iki değer çarpılır, çıkan sonucun 2 komplimenti alınarak AX e aktarılır. Etkilenecek flagler ise bir öncekinde olduğu gibi OV ve CF dir.
10)
-r
AX=0040 BX=0041 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0100 NV UP EI NG NZ AC PE CY
13B6:0100 F7D8 NEG AX
-a 13b6:0100
13B6:0100 shr ax,1 // ax i 2 y bölme
13B6:0102 shr bx,1 // bx i 2 ye bölme
13B6:0104 shl ax,1 // ax i 2 ile çarpma
13B6:0106 shl bx,1 // bx i 2 ile çarpma
13B6:0108
-t
AX=0020 BX=0041 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0102 NV UP EI PL NZ AC PO NC
13B6:0102 D1EB SHR BX,1
-t
AX=0020 BX=0020 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0104 NV UP EI PL NZ AC PO CY
13B6:0104 D1E0 SHL AX,1
-t
AX=0040 BX=0020 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0106 NV UP EI PL NZ AC PO NC
13B6:0106 D1E3 SHL BX,1
-t
AX=0040 BX=0040 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0108 NV UP EI PL NZ AC PO NC
13B6:0108 87C3 XCHG AX,BX
- İlk bölme işleminin sonunda ax i ikiye böldüğümüzde carry flag 0 dır yani NC olarak görülüyor. Bx i ikiye böldüğümüzde ise sonuç 20 elde 1 vardır, carry flag in NC den CY ye yani 0 dan 1 e geçtiğini görebiliriz.
Çarpma işleminde ise ikisinde de 20 den 40 a çıktık. İki işlemde de elde olmadığı için carry flag 0 a yani NC ye geçti.
4 işlemde de sonuç sıfır olmadığı için zero flag hiç değişmemiş NZ olarak kalmıştır.
-a
13B6:0108 inc ax
13B6:0109
-t
AX=0041 BX=0040 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0109 NV UP EI PL NZ NA PE NC
13B6:0109 C3 RET
Sadece ax i artırdığımız için AX 40 dan 41 e çıktı. BX de ise beklendiği gibi hiçbir değişiklik olmadı. Zero flag NZ Carry flag de NC olarak kaldı. Hiçbir değişiklik olmadı.
-a
13B6:0109 xchg ax,bx
13B6:010B
-t
AX=0040 BX=0041 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=010B NV UP EI PL NZ NA PE NC
13B6:010B C3 RET
İşlem sonunda ax ile bx in değerleri bir biri ile yer değiştirdi. Ax 41 ilken 40, bx ise 40 iken 41 oldu.
Zero flag ve carry flag de de herhangi bir değişiklik olmadı çünkü sonucu sıfıra giden bir işlem ve işlem sonunda elde kalacak bir hesaplama yapmadık.
10) -16 sayısı hex olarak FFEA ya karşılık gelmektedir.
-a 13b6:0100
13B6:0100 shr ax,1
13B6:0102
-r
AX=FFEA BX=0041 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0100 NV UP EI PL NZ NA PE NC
13B6:0100 D1E8 SHR AX,1
-t
AX=7FF5 BX=0041 CX=1304 DX=0000 SP=FFEE BP=0000 SI=0004 DI=0004
DS=13B6 ES=13B6 SS=13B6 CS=13B6 IP=0102 OV UP EI PL NZ NA PE NC
13B6:0102 D1EB SHR BX,1
LAB 4 ÖNÇALIŞMA
1) .MODEL SMALL
.Stack 64k
DATA DB 13,-10,19,14,-18,-9,12,-19,16
.CODE
MAIN: MOV AX,@DATA
MOV DS,AX
MOV SI,100H
MOV AL,[SI]
MOV CX,8
INC SI
AGAIN:CMP AL, [SI]
JL NEXT
MOV AL, [SI]
NEXT:INC SI
LOOP AGAIN
MOV AH, 4CH
INT 21H
END MAIN
2)
.MODEL SMALL
.STACK 100h
DATA DB 87,96,45,75
.DATA
.CODE
MAIN:MOV AX,@DATA
MOV DS,AX
MOV SI,100H
MOV AL,[SI]
MOV CX,4
INC SI
AGAIN: CMP AL, [SI]
JA NEXT
MOV AL, [SI]
NEXT: INC SI
LOOP AGAIN
MOV AH, 4CH
INT 21H
END MAIN
-2-
332_lab03_deney çalışması
L1-)
-r ax
AX 0000
:aaaa
-r bx
BX 0000
:bbbb
-a cs:100
1627:0100 mov cx,ax
1627:0102 mov ax,bx
1627:0104 mov bx,cx
-t=cs:100
AX=AAAA BX=BBBB CX=AAAA DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV UP EI PL ZR NA PE NC
1627:0102 89D8 MOV AX,BX
-t=cs:102
AX=BBBB BX=BBBB CX=AAAA DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0104 NV UP EI PL ZR NA PE NC
1627:0104 89CB MOV BX,CX
-t=cs:104
AX=BBBB BX=AAAA CX=AAAA DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0106 NV UP EI PL ZR NA PE NC
1627:0106 803EC19A00 CMP BYTE PTR [9AC1],00 DS:9AC1=00
L2-)
-r ax
AX BBBB
:aaaa
-r bx
BX AAAA
:bbbb
-a cs:100
1627:0100 xchg ax,bx
-t=cs:100
AX=BBBB BX=AAAA CX=AAAA DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV UP EI PL ZR NA PE NC
1627:0102 89D8 MOV AX,BX
L3-)
-a cs:100
1627:0100 mov ax,[300]
1627:0103 xchg ax,[400]
1627:0107 mov [300],ax
-e cs:300
1627:0300 11.33
-e cs:301
1627:0301 11.33
-e cs:400
1627:0400 44.44
-e cs:401
1627:0401 44.44
-r ip
IP 0104
:100
-t
AX=3333 BX=0080 CX=0080 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0103 OV UP EI PL ZR NA PE CY
1627:0103 87060004 XCHG AX,[0400] DS:0400=4444
-t
AX=4444 BX=0080 CX=0080 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0107 OV UP EI PL ZR NA PE CY
1627:0107 A30003 MOV [0300],AX DS:0300=3333
-t
-d ds:300 301
1627:0300 44 44
-d ds:400 401
1627:0400 33 33
L4-)
-a cs:100
1627:0100 add ax,1
1627:0103 inc ax
1627:0104
-r ax
AX 0000
:0000
-t=cs:100
AX=0001 BX=AAAA CX=AAAA DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0103 NV UP EI PL NZ NA PO NC
1627:0103 40 INC AX
-r ax
AX 0001
:0000
-t=cs:103
AX=0001 BX=AAAA CX=AAAA DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0104 NV UP EI PL NZ NA PO NC
1627:0104 89CB MOV BX,CX
L5-)
-a cs:100
1627:0100 lea ax,bx
^ Hatası
L6-)
-a cs:100
1627:0100 adc ax,bx
-r ax
AX AAAA
:0002
-r bx
BX AAAA
:0003
-r f
OV DN DI NG NZ NA PE NC -
-t=cs:100
AX=0005 BX=0003 CX=AAAA DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV DN DI PL NZ NA PE NC
1627:0102 004089 ADD [BX+SI-77],AL DS:FF8C=00
-r ax
AX 0005
:0002
-r f
NV DN DI PL NZ NA PE NC -cy
-t=cs:100
AX=0006 BX=0003 CX=AAAA DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV DN DI PL NZ NA PE NC
1627:0102 004089 ADD [BX+SI-77],AL DS:FF8C=00
L7-)
-r bx
BX 0045
:0045
-r f
NV DN DI NG NZ AC PO CY -pl
-a cs:100
1627:0100 neg bx
1627:0102
-t=cs:100
AX=0000 BX=FFBB CX=AAAA DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV DN DI NG NZ AC PE CY
1627:0102 004089 ADD [BX+SI-77],AL DS:FF44=00
a-) BX=FFBB
b-) ng ( negatif )
L8-)
-a cs:100
1627:0100 mov al,[502]
1627:0103 sub al,[503]
1627:0107 mov bh,[501]
1627:010B mul bh
1627:010D mov bh,[500]
1627:0110 add bh,al
1627:0112 mov [504],bh
-e ds:500
1627:0500 92.4
-e ds:501
1627:0501 00.3
-e ds:502
1627:0502 00.2
-e ds:503
1627:0503 2E.1
-r ip
IP 0103
:100
AX=0002 BX=0000 CX=0302 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0103 NV UP EI PL NZ NA PO NC
1627:0103 2A060305 SUB AL,[0503] DS:0503=01
-t
AX=0001 BX=0000 CX=0302 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0107 NV UP EI PL NZ NA PO NC
1627:0107 8A3E0105 MOV BH,[0501] DS:0501=03
-t
AX=0001 BX=0300 CX=0302 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010B NV UP EI PL NZ NA PO NC
1627:010B F6E7 MUL BH
-t
AX=0003 BX=0300 CX=0302 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010D NV UP EI PL NZ NA PE NC
1627:010D 8A3E0005 MOV BH,[0500] DS:0500=04
-t
AX=0003 BX=0400 CX=0302 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0111 NV UP EI PL NZ NA PE NC
1627:0111 00C7 ADD BH,AL
-t
AX=0003 BX=0700 CX=0302 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0113 NV UP EI PL NZ NA PO NC
1627:0113 883E0405 MOV [0504],BH DS:0504=07
-d ds:504 504
1627:0500 07
L9-)
-a cs:100
1627:0100 mul cl
1627:0102 imul cl
1627:0104
- rip
IP 0113
:100
-t
AX=1000 BX=0700 CX=0080 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 OV UP EI PL ZR NA PE CY
1627:0102 F6E9 IMUL CL
-r ax
AX 1000
:20
-r bx
BX 0700
:80
-r ip
IP 0102
:102
-t
AX=F000 BX=0080 CX=0080 DX=0006 SP=FFEE BP=0001 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0104 OV UP EI PL ZR NA PE CY
1627:0104 06 PUSH ES
L10-)
-a cs:100
1627:0100 mov al,ff
1627:0102 add al,1
1627:0104 mov al,7f
1627:0106 add al,1
1627:0108 mov al,80
1627:010A add al,1
1627:010C mov al,ff
1627:010E inc al
1627:0110 mov al,80
1627:0112 inc al
1627:0114
-r ip
IP 0102
:100
AX=FFFF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV UP EI NG NZ NA PO NC
1627:0102 0401 ADD AL,01
-t
AX=FF00 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0104 NV UP EI PL ZR AC PE CY
1627:0104 B07F MOV AL,7F
-t
AX=FF7F BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0106 NV UP EI PL ZR AC PE CY
1627:0106 0401 ADD AL,01
-t
AX=FF80 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0108 OV UP EI NG NZ AC PO NC
1627:0108 B080 MOV AL,80
-t
AX=FF80 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010A OV UP EI NG NZ AC PO NC
1627:010A 0401 ADD AL,01
AX=FF81 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010C NV UP EI NG NZ NA PE NC
1627:010C B0FF MOV AL,FF
-t
AX=FFFF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010E NV UP EI NG NZ NA PE NC
1627:010E FEC0 INC AL
-t
AX=FF00 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0110 NV UP EI PL ZR AC PE NC
1627:0110 B080 MOV AL,80
-t
AX=FF80 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0112 NV UP EI PL ZR AC PE NC
1627:0112 FEC0 INC AL
L11-)
-a cs:100
1627:0100 and ax,bx
1627:0102 not ax
1627:0104 and al,bh
1627:0106 not bx
1627:0108 or bx,ax
1627:010A not ah
1627:010C or bl,ah
1627:010E xor ax,bx
1627:0110 not bx
1627:0112 xor bh,ah
1627:0114
-r ax
AX FF80
:aa77 -rbx
BX 0000
:c3c3
-r ip
IP 0112
:100
AX=8243 BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV UP EI NG NZ NA PO NC
1627:0102 F7D0 NOT AX
-t
AX=7DBC BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0104 NV UP EI NG NZ NA PO NC
1627:0104 20F8 AND AL,BH
-t
AX=7D80 BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0106 NV UP EI NG NZ NA PO NC
1627:0106 F7D3 NOT BX
-t
AX=7D80 BX=3C3C CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0108 NV UP EI NG NZ NA PO NC
1627:0108 09C3 OR BX,AX
-t
AX=7D80 BX=7DBC CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010A NV UP EI PL NZ NA PO NC
1627:010A F6D4 NOT AH
AX=8280 BX=7DBC CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010C NV UP EI PL NZ NA PO NC
1627:010C 08E3 OR BL,AH
-t
AX=8280 BX=7DBE CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010E NV UP EI NG NZ NA PE NC
1627:010E 31D8 XOR AX,BX
-t
AX=FF3E BX=7DBE CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0110 NV UP EI NG NZ NA PO NC
1627:0110 F7D3 NOT BX
-t
AX=FF3E BX=8241 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0112 NV UP EI NG NZ NA PO NC
1627:0112 30E7 XOR BH,AH
L12-)
L13-)
a.
-r ax
AX FF3E
:0040
-r bx
BX 8241
:0041
-a cs:100
1627:0100 shr ax,1
1627:0102 shr bx,1
1627:0104 shl ax,1
1627:0106 shl bx,1
1627:0108 cmp ax,bx
1627:010A inc ax
1627:010B cmp ax,bx
1627:010D xchg ax,bx
1627:010F cmp ax,bx
-r ip
IP 0112
:100
-t
AX=0020 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV UP EI PL NZ NA PO NC
1627:0102 D1EB SHR BX,1
-t
AX=0020 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0104 NV UP EI PL NZ NA PO CY
1627:0104 D1E0 SHL AX,1
-t
AX=0040 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0106 NV UP EI PL NZ NA PO NC
1627:0106 D1E3 SHL BX,1
-t
AX=0040 BX=0040 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0108 NV UP EI PL NZ NA PO NC
1627:0108 39D8 CMP AX,BX
AX=0040 BX=0040 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010A NV UP EI PL ZR NA PE NC
1627:010A 40 INC AX
-t
AX=0041 BX=0040 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010B NV UP EI PL NZ NA PE NC
1627:010B 39D8 CMP AX,BX
-t
AX=0041 BX=0040 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010D NV UP EI PL NZ NA PO NC
1627:010D 87C3 XCHG AX,BX
-t
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=010F NV UP EI PL NZ NA PO NC
1627:010F 39D8 CMP AX,BX
b.
-a cs:100
1627:0100 sar ax,1
1627:0102
-r ax
AX 0000
:fff0
-r
AX=FFF0 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0100 NV UP EI PL NZ NA PO NC
1627:0100 D1F8 SAR AX,1
-r ip
IP 0100
-t
AX=FFF8 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV UP EI NG NZ NA PO NC
1627:0102 3AC4 CMP AL,AH
L14-)
a.
-r ax
AX 4422
:1199
-r cx
CX 0008
:8
-a cs:100
1627:0100 rol ax,cl
1627:0102
-r ip
IP 0104
:100
-t
AX=9911 BX=0041 CX=0008 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV UP EI NG NZ NA PO CY
1627:0102 D1C0 ROL AX,1
b.
332_lab04_rapor
1)
.MODEL SMALL
.STACK 64
.DATA
SICAKLIK DB 13,-10,+19,14,-18,-9,+12,-19,+16
eksi DB '-$'
.CODE
MAIN PROC FAR ;this is the program entry point
MOV AX,@DATA ;load the data segment address
MOV DS,AX ;assign value to DS
MOV SI, offset SICAKLIK ; point to SICAKLIK
MOV AL,[SI]
INC SI
MOV CX,8
DON: CMP AL,[SI]
JLE DEVAM
MOV AL,[SI]
DEVAM
INC SI
DEC CX
JNZ DON
MOV DL,AL
SHL DL,1
JNC POZ
NEG AL
MOV DL,0FFH
JMP NGTF
POZ:
MOV DL,0
NGTF:
MOV CL,AL ;decimal döncek sayı AL CL at
MOV AX,0
DONGU: INC AL ;AL ilk basamak
CMP AL,0Ah ;10 olmuşmu?
JNE DVM ;hayır devam
MOV AL,0 ;evet sıfırla
INC AH ;AH ikinci basamak
CMP AH,0Ah ;10 olmuşmu?
JNE DVM ;hayır devam
MOV AH,0
DVM:LOOP DONGU
SHL DL,1
JNC POZ2
PUSH AX
MOV AH,09
MOV DX,OFFSET eksi
INT 21H
POP AX
POZ2:
OR AL,30H
OR AH,30H
MOV CX,AX
MOV DL,CH
MOV AH,02H
INT 21H
MOV DL,CL
MOV AH,02H
INT 21H
MOV AH,4CH ;set up to
INT 21H ;return to DOS
MAIN ENDP
END MAIN ;this is the program exit point
2)
.MODEL SMALL
.STACK 64
.DATA
NOTLAR DB 69,87,96,45,75
.CODE
MAIN PROC FAR ;this is the program entry point
MOV AX,@DATA ;load the data segment address
MOV DS,AX ;assign value to DS
MOV SI, offset NOTLAR ; point to NOTLAR
MOV AL,[SI]
INC SI
MOV CX,4
DONGU: MOV BL,[SI]
CMP AL,BL
JNC KONTROL
MOV AL,BL
KONTROL: INC SI
DEC CX
JNZ DONGU
MOV CL,AL ;decimal döncek sayı AL CL at
MOV AX,0
DON: INC AL ;AL ilk basamak
CMP AL,0Ah ;10 olmuşmu?
JNE DVM ;hayır devam
MOV AL,0 ;evet sıfırla
INC AH ;AH ikinci basamak
CMP AH,0Ah ;10 olmuşmu?
JNE DVM ;hayır devam
MOV AH,0
DVM: LOOP DON
OR AL,30H ;ASCII’ye çevir
OR AH,30H
MOV CX,AX
MOV DL,CH ;ikinci basamak yazdır
MOV AH,02H
INT 21H
MOV DL,CL;birinci basamak yazdır
MOV AH,02H
INT 21H
MOV AH,4CH ;set up to
INT 21H ;return to DOS
MAIN ENDP
END MAIN ;this is the program exit point
3 önçalışma
Başkent Üniversitesi Elektrik – Elektronik Mühendisliği Bölümü
EEM 332 – Mikroişlemciler
Ön Çalışma
Deney No: 3
Deney Adı: Aritmetik ve Mantık İşlemleri
Deney Tarihi: 14 / 03 / 2007
Salı Çarşamba
Deney Yeri: A408 B407
Bu çalışma,kapak sayfası hariç 3 sayfadan oluşmaktadır.
Ç1.
mov cx,ax
mov ax,bx
mov bx,cx
Ç2.
xchg ax,bx
Ç3.
mov ax,[300]
xchg ax,[400]
mov [300],ax
Ç4.
add ax,1 komutu ax register’ı ile 1 sayısını toplar sonucu ax register’ında
saklar.
inc ax komutu ax registerının içindeki değeri 1 arttırır.Yani burada 2 komut
aynı işlevi görmektedir.
Ç5.
LEA ofset adres yükleme komutudur. Bu adresi 16 bitlik yazmaçlara (AX, BX,
CX, DX) yükler.
LEA AX,[BX] burada offset sadece BX olduğu için BX değerini AX’e yükler.
(effective address)
MOV AX,[BX] burada hafıza bölgesinin BX ofsetindeki değer AX’e atanır.
(AX’E DS:500’deki veri aktarılır.)
Ç6.
ADC AX,BX AX=AX+BX+CF işlemini gerçekleştirir.
a. CF=1 ise AX=AX+BX+1 b. CF=0 ise AX=AX+BX+0
Ç7.
NEG BX komutu BX registerının tümleyenini alır.(2’s complement binary olarak).
Bu işlemden BX registerının içindeki değer ve işaret bayrağı etkilenir.
Ç8.
mov al,[502]
sub al,[503]
mov bh,[501]
mul bh
mov bh,[500]
add bh,al
mov [504],bh
Ç9.
AL=20H CL=80H
MUL CL unsigned olarak işlem yaptığı için 20H x 80H = 1000 H
sonucunu verir.
IMUL CL signed olarak işlem yapar 8016 = 1000 0000 2 ‘dir.İlk bit sign biti olduğu için sayı negatiftir.Dolayısıyla sonuç negatif olacaktır. F000H ( 1’in 2’s complementi F tir sonuç negatif olduğu içinde 2’s complement formdadır).
Bu işlem sonunda Sign flag 1 olacaktır.
Ç10.
a. SHR AX,1
SHR BX,1
SHL AX,1
SHL BX,1
SHR BX,1 işleminden sonra cf ‘in değeri 1 olmuştur sebebi ise:
004116 = 0000 0000 0100 0001 2 sağa kaydırıldığında en sağdaki 1 cf’e gitmektedir.
AX ve BX yazmaçlarının yeni değerleri eşittir.Bunun sebebi 2 ye bölme işlemi sonucu AX yazmacının değeri 0020,BX yazmacının değeri de 0020 olmuştur.(41 16 / 2 = 2016 )
Karşılaştırma işleminden sonra ( CMP AX,BX ) zero flag 1 olmuştur.
AX yazmacındaki değeri 1 arttırdıktan sonra ( INC AX ) karşılaştırma işleminde zero flag ve carry flag 0 olmuştur.
AX ve BX yazmaçlarının değerleri birbiriyle değiştirildiğinde ( XCHG AX,BX ), zero ve carry flaglerinde bir değişiklik olmamıştır.
b. 1610 = 001016 , -1610 = FFF016
810 = 000816 , -810 = FFF816
FFF0 H = 1111 1111 1111 0000
FFF8 H = 1111 1111 1111 1000
SAR AX,1 komutu –16 (FFF0H) sayısını ikiye böler, -8 (FFF8).
-a cs:100
1627:0100 sar ax,1
1627:0102
-r ax
AX 0000
:fff0
-r
AX=FFF0 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0100 NV UP EI PL NZ NA PO NC
1627:0100 D1F8 SAR AX,1
-r ip
IP 0100
-t
AX=FFF8 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1627 ES=1627 SS=1627 CS=1627 IP=0102 NV UP EI NG NZ NA PO NC
1627:0102 3AC4 CMP AL,AH
önçalışma 332-4
1)
.DATA DB 13,-10,19,14,-18,-9,12,-19,16
.CODE
MAIN PROC FAR
MOV CX, 9
MOV BX, OFFSET DATA
SUB AL,AL
AGAIN: CMP AL,[BX]
JLE NEXT
MOV AL,[BX]
NEXT :INC BX
LOOP AGAIN
MOV DH,AL
MAIN ENDP
END MAIN
2)
.DATA DB 68,87,96,45,75
.CODE
MAIN PROC FAR
MOV CX, 5
MOV BX, OFFSET DATA
SUB AL,AL
AGAIN: CMP AL,[BX]
JA NEXT
MOV AL,[BX]
NEXT :INC BX
LOOP AGAIN
MOV DH,AL
MAIN ENDP
END MAIN
calisma-705
6-)
-a 100
15B7:0100 adc ax,bx
15B7:0102
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI PL NZ NA PO CY
15B7:0100 11D8 ADC AX,BX
-r f
NV UP EI NG NZ NA PO NC -cy
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI NG NZ NA PO CY
15B7:0100 11D8 ADC AX,BX
-t
AX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI PL NZ NA PO NC
15B7:0102 0000 ADD [BX+SI],AL DS:0000=CD
-
7-)
-r f
NV UP EI PL NZ NA PO NC -pl
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI PL NZ NA PO NC
15B7:0100 0000 ADD [BX+SI],AL DS:0000=CD
-r bx
BX 0000
:0045
-a 100
15B7:0100 neg bx
15B7:0102
-r ip
IP 0100
:0100
-r
AX=0000 BX=0045 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI PL NZ NA PO NC
15B7:0100 F7DB NEG BX
-t
AX=0000 BX=FFBB CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI NG NZ AC PE CY
15B7:0102 0000 ADD [BX+SI],AL DS:FFBB=00
--
8.
-r ds
DS 15B7
:0500
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI NG NZ AC PE NC
15B7:0100 F7DB NEG BX
-a 100
15B7:0100 mov bx,[502]
15B7:0104 sub bx,[503]
15B7:0108 mov ax,[501]
15B7:010B mul bx
15B7:010D add ax,[500]
15B7:0111
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI PL NZ NA PE NC
15B7:0100 8B1E0205 MOV BX,[0502] DS:0502=0A7E
-t
AX=0000 BX=0A7E CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0104 NV UP EI PL NZ NA PE NC
15B7:0104 2B1E0305 SUB BX,[0503] DS:0503=D50A
-t
AX=0000 BX=3574 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0108 NV UP EI PL NZ NA PE CY
15B7:0108 A10105 MOV AX,[0501] DS:0501=7E01
-t
AX=7E01 BX=3574 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=010B NV UP EI PL NZ NA PE CY
15B7:010B F7E3 MUL BX
-t
AX=4D74 BX=3574 CX=0000 DX=1A4F SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=010D OV UP EI PL NZ NA PE CY
15B7:010D 03060005 ADD AX,[0500] DS:0500=0180
-t
AX=4EF4 BX=3574 CX=0000 DX=1A4F SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0111 NV UP EI PL NZ NA PO NC
15B7:0111 0000 ADD [BX+SI],AL DS:3574=00
9-)
-r ax
AX 0020
:0020
-r cx
CX 0080
:0080
-r ip
IP 0100
:0100
-a 100
15B7:0100 mul cx
15B7:0102
-r ip
IP 0100
:0100
-t
AX=1000 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI PL NZ NA PE NC
15B7:0102 0205 ADD AL,[DI] DS:0000=53
-
mul komutu al ile cl degerlerini carparak ax yazmacına yazdı
10-)
-a 100
15B7:0100 mov al,ff
15B7:0102 add al,1
15B7:0104 mov al,7f
15B7:0106 add al,1
15B7:0108 mov al,80
15B7:010A add al,1
15B7:010C mov al,ff
15B7:010E inc al
15B7:0110 mov al,80
15B7:0112 inc al
15B7:0114
AX=00FF BX=0081 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI PL NZ NA PO NC
15B7:0102 0401 ADD AL,01
-t
AX=0000 BX=0081 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0104 NV UP EI PL ZR AC PE CY
15B7:0104 B07F MOV AL,7F
-t
AX=007F BX=0081 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0106 NV UP EI PL ZR AC PE CY
15B7:0106 0401 ADD AL,01
-t
AX=0080 BX=0081 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0108 OV UP EI NG NZ AC PO NC
15B7:0108 B080 MOV AL,80
-t
AX=0080 BX=0081 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=010A OV UP EI NG NZ AC PO NC
15B7:010A 0401 ADD AL,01
-t
AX=0081 BX=0081 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=010C NV UP EI NG NZ NA PE NC
15B7:010C B0FF MOV AL,FF
-t
AX=00FF BX=0081 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=010E NV UP EI NG NZ NA PE NC
15B7:010E FEC0 INC AL
-t
AX=0000 BX=0081 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0110 NV UP EI PL ZR AC PE NC
15B7:0110 B080 MOV AL,80
-t
AX=0080 BX=0081 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0112 NV UP EI PL ZR AC PE NC
15B7:0112 FEC0 INC AL
- 11-)
-a 100
15B7:0100 and ax,bx
15B7:0102 not ax
15B7:0104 and al,bh
15B7:0106 not bx
15B7:0108 or bx,ax
15B7:010A not ah
15B7:010C or bl,ah
15B7:010E xor ax,bx
15B7:0110 not bx
15B7:0112 xor bh,ah
15B7:0114
-r ip
IP 0112
:0100
-t
AX=8243 BX=C3C3 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI NG NZ NA PO NC
15B7:0102 F7D0 NOT AX
-t
AX=7DBC BX=C3C3 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0104 NV UP EI NG NZ NA PO NC
15B7:0104 20F8 AND AL,BH
-t
AX=7D80 BX=C3C3 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0106 NV UP EI NG NZ NA PO NC
15B7:0106 F7D3 NOT BX
-t
AX=7D80 BX=3C3C CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0108 NV UP EI NG NZ NA PO NC
15B7:0108 09C3 OR BX,AX
-AX=7D80 BX=7DBC CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=010A NV UP EI PL NZ NA PO NC
15B7:010A F6D4 NOT AH
-t
AX=8280 BX=7DBC CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=010C NV UP EI PL NZ NA PO NC
15B7:010C 08E3 OR BL,AH
-t
AX=8280 BX=7DBE CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=010E NV UP EI NG NZ NA PE NC
15B7:010E 31D8 XOR AX,BX
-t
AX=FF3E BX=7DBE CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0110 NV UP EI NG NZ NA PO NC
15B7:0110 F7D3 NOT BX
-t
AX=FF3E BX=8241 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0112 NV UP EI NG NZ NA PO NC
15B7:0112 30E7 XOR BH,AH
-
13-)
a 1)
-r ax
AX 0000
:0040
-r bx
BX 0000
:0041 -a100
15B7:0100 sar ax,1
15B7:0102 sar bx,1
15B7:0104
-r
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI PL NZ NA PO NC
15B7:0100 D1F8 SAR AX,1
-t
AX=0020 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI PL NZ NA PO NC
15B7:0102 D1FB SAR BX,1
-t
AX=0020 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0104 NV UP EI PL NZ NA PO CY
15B7:0104 0000 ADD [BX+SI],AL DS:0020=FF
a 2)
-r ax
AX 0000
:0040
-r bx
BX 0000
:0041
-a 100
15B7:0100 shl ax,1
15B7:0102 shl bx,1
15B7:0104
-r
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI PL NZ NA PO NC
15B7:0100 D1E0 SHL AX,1
-t
AX=0080 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI PL NZ NA PO NC
15B7:0102 D1E3 SHL BX,1
-t
AX=0080 BX=0082 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0104 NV UP EI PL NZ NA PE NC
15B7:0104 0000 ADD [BX+SI],AL DS:0082=20
a 3)
-t
AX=0020 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI PL NZ NA PO NC
15B7:0102 D1FB SAR BX,1
-t
AX=0020 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0104 NV UP EI PL NZ NA PO CY
15B7:0104 0000 ADD [BX+SI],AL DS:0020=FF
-t
AX=0080 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI PL NZ NA PO NC
15B7:0102 D1E3 SHL BX,1
-t
AX=0080 BX=0082 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0104 NV UP EI PL NZ NA PE NC
15B7:0104 0000 ADD [BX+SI],AL DS:0082=20
a 4)
-r ax
AX 0000
:0040
-r bx
BX 0000
:0041
-a 100
15B7:0100 inc ax
15B7:0101
-r
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI PL NZ NA PO NC
15B7:0100 40 INC AX
-t
AX=0041 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0101 NV UP EI PL NZ NA PE NC
15B7:0101 0000 ADD [BX+SI],AL DS:0041=00
a5)
-r ax
AX 0000
:0040
-r bx
BX 0000
:0041
-a 100
15B7:0100 xchg ax,bx
15B7:0102
-r
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0100 NV UP EI PL NZ NA PO NC
15B7:0100 87C3 XCHG AX,BX
-t
AX=0041 BX=0040 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15B7 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI PL NZ NA PO NC
15B7:0102 0000 ADD [BX+SI],AL DS:0040=05
14-)
-r ax
AX DDDD
:2244
-r bx
BX 0000
:2244
-r cx
CX 0008
:0008
-a 100
15B7:0100 ror ax,cl
15B7:0102
-r ip
IP 0104
:0100
-t
AX=4422 BX=2244 CX=0008 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0102 OV UP EI NG NZ NA PO NC
15B7:0102 F7D0 NOT AX
- b)
-a 102
15B7:0102 rol ax,cl
15B7:0104
-r ip
IP 0102
:0100
-t
AX=2244 BX=2244 CX=0008 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0500 ES=15B7 SS=15B7 CS=15B7 IP=0102 NV UP EI NG NZ NA PO NC
15B7:0102 D3C0 ROL AX,CL
EEM 332 4 OC
1-) Bu program verilen sıcaklık değerlerinin en düşüğünü bulur.
MODEL SMALL
.STACK
.DATA
SIGN_DATA DB +13,-10,+19,+14,-18,-9,+12,-19,+16
ORG 0010
LOWEST DB
MAİN: Prog Far
MOV CX,8
MOV SI,OFFSET SING_DATA
BACK: MOV AL,[SI]
INC SI
CMP AL,[SI]
JLE SEARCH
MOV AL,[SI]
SEARCH: LOOP BACK
MOV LOWEST,AL
MOV AH,4CH
INT 21
ENDP
END MAIN
2-) Bu program verilen notların en büyüğünü bulan programdır.
MODEL SMALL
.STACK
.DATA
SIGN_DATA DB 69,87,96,45,75
ORG 001
HIGH DB
MAİN: Prog Far
MOV CX,5
MOV BX,OFFSET DATA
SUB AL,AL
BACK: CMP AL,[BX]
JA NEXT
MOV AL,[BX]
NEXT: INC BX
LOOP AGAIN
MOV DH,AL
INT 21 H
ENDP
END MAIN
EEM_332_Lab_04
1.
;ÖN ÇALIŞMA -1-
.MODEL SMALL
.STACK 100h
.DATA
ORG 100H
D1 DB 13
D2 DB -10
D3 DB 19
D4 DB 14
D5 DB -18
D6 DB -9
D7 DB 12
D8 DB -19
D9 DB 16
.CODE
START
MOV AX,@DATA
MOV DS,AX
MOV SI,100H
MOV AL,[SI]
MOV CX,8
INC SI
AGAIN
CMP AL, [SI]
JL DEGISTIRME
MOV AL, [SI]
DEGISTIRME
INC SI
LOOP AGAIN
MOV AH, 4CH
INT 21H
END START
-1-
2.
;ÖN ÇALIŞMA -2-
.MODEL SMALL
.STACK 100h
.DATA
ORG 100H
D1 DB 69
D2 DB 87
D3 DB 96
D4 DB 45
D5 DB 75
.CODE
START
MOV AX,@DATA
MOV DS,AX
MOV SI,100H
MOV AL,[SI]
MOV CX,4
INC SI
AGAIN
CMP AL, [SI]
JA DEGISTIRME
MOV AL, [SI]
DEGISTIRME
INC SI
LOOP AGAIN
MOV AH, 4CH
INT 21H
END START
-2-
eem 332 öncalısma 3
1-)
Mov cx,ax
Mov ax,bx
Mov bx,cx
2-)
Aynı komutu XCHG komutunu kullanarak da gerçekleştirebiliriz. Böylece gereksiz değişkenlere de ihtiyacımız kalmamış olur.
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PO NC
14E6:0100 0000 ADD [BX+SI],AL DS:0000=CD
-r ax
AX 0000
:1000
-r bx
BX 0000
:2000
-r
AX=1000 BX=2000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PO NC
14E6:0100 0000 ADD [BX+SI],AL DS:2000=00
-a 100
14E6:0100 xchg ax,bx
14E6:0102
-t
AX=2000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0102 NV UP EI PL NZ NA PO NC
14E6:0102 0000 ADD [BX+SI],AL DS:1000=00
3-)
Bu işlemi XCHG ve MOV komutlarını kullanarak yazabiliriz
-d ds:300
14E6:0300 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-d ds:400
14E6:0400 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
14E6:0110 mov ax,[0300] (0300 adresindeki veriyi ax’e attık)
14E6:0113 xchg [0400],ax (ax adresindeki veriyi ile 0400 adresindeki veri yer değiştirdi)
14E6:0117 mov [0300],ax (ax adresindeki veriyi 0300 adresine attık)
Bu işlemler sonucunda ax degiskenini kullanarak 0300 ve 0400 adresindeki veriler yer değiştirmiştir.
-d ds:300
14E6:0300 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
-d ds:400
14E6:0400 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
4-)
Add ve inc komutları arasındaki fark add komutu 3 bytelik yer kaplarken inc komutu 1 bytelik
yer kaplamaktadır ve her iki komutta aynı işlemi yapmaktadır.
-r ax
AX 0000
:0100
-a 100
14E6:0100 add ax,1
14E6:0103 inc ax,1
14E6:0104
-r
AX=0100 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PO NC
14E6:0100 050100 ADD AX,0001
-t
AX=0101 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0103 NV UP EI PL NZ NA PO NC
14E6:0103 40 INC AX
-t
AX=0102 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0104 NV UP EI PL NZ NA PO NC
14E6:0104 0000 ADD [BX+SI],AL DS:0000=CD
5-)
Mov ax,[bx] komutu bx adresine gider ve oradaki değeri data bus üzerinden alır ve ax’e yazar.
Lea ax,[bx] komutu bx’in değerini ax’e atar.
6-)
-r ax
AX 0000
:0100
-r bx
BX 0000
:0200
-a 100
14E6:0100 adc ax,bx
14E6:0102
-r
AX=0100 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PE NC
14E6:0100 0000 ADC AX,BX
-t
AX=0300 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0102 NV UP EI PL NZ NA PE NC
14F2:0102 040A MOV AX,[BX]
Carry flag 0 olduğu zaman “adc” komutu ax ve bx değerlerinin toplamını ax yazmacına atar.
-r ax
AX 0000
:0100
-r bx
BX 0000
:0200
-a 100
14E6:0100 adc ax,bx
14E6:0102
-r
AX=0100 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PE CY
14E6:0100 11D8 ADC AX,BX
-t
AX=0301 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI PL NZ NA PE NC
14E6:0102 8B07 MOV AX,[BX]
Carry flag 1 olduğu zaman “adc” komutu ax ve bx değerlerinin toplamına 1 ekleyip ax yazmacına atar.
7-)
Neg bx komutu çalıştırıldığında bx değerinin 2’ye tümleyenini alıyor
14E6:0100 neg bx
14E6:0102
-r
AX=0100 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI NG NZ NA PE CY
14E6:0100 004000 NEG BX DS:0200=00
-t
AX=0100 BX=FE00 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0102 NV UP EI PL ZR NA PE NC
14E6:0102 0000 ADD [BX+SI],AL DS:FE00=00
8-)
-a 100
14E6:0100 MOV bx,[0502]
14E6:0104 SUB bx,[0503]
14E6:0108 MOV ax,[0501]
14E6:010B MUL bx
14E6:010D ADD ax,[0500]
14E6:0111 MOV [0504],ax
14E6:0114
-u 0100
14E6:0100 8B1E0205 MOV BX,[0502]
14E6:0104 2B1E0305 SUB BX,[0503]
14E6:0108 A10105 MOV AX,[0501]
14E6:010B F7E3 MUL BX
14E6:010D 03060005 ADD AX,[0500]
14E6:0111 A30405 MOV [0504],AX
A= DS:0500, B= DS:0501, C=DS:0502, D=DS:0503, Z=DS:0504
9-)
MUL komutunda al ile cl değerlerini çarpıp ax yazmacına atıyoruz , IMUL komutunda ise al
ile cl değerin çarpımının 2 ye tümleyenini alıp ax yazmacına atıyor
10-)
a 1)
-r ax
AX 0000
:0040
-r bx
BX 0000
:0041 -a100
14E6:0100 sar ax,1
14E6:0102 sar bx,1
14E6:0104
-r
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PO NC
14E6:0100 D1F8 SAR AX,1
-t
AX=0020 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0102 NV UP EI PL NZ NA PO NC
14E6:0102 D1FB SAR BX,1
-t
AX=0020 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0104 NV UP EI PL NZ NA PO CY
14E6:0104 0000 ADD [BX+SI],AL DS:0020=FF
a 2)
-r ax
AX 0000
:0040
-r bx
BX 0000
:0041
-a 100
14E6:0100 shl ax,1
14E6:0102 shl bx,1
14E6:0104
-r
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PO NC
14E6:0100 D1E0 SHL AX,1
-t
AX=0080 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0102 NV UP EI PL NZ NA PO NC
14E6:0102 D1E3 SHL BX,1
-t
AX=0080 BX=0082 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0104 NV UP EI PL NZ NA PE NC
14E6:0104 0000 ADD [BX+SI],AL DS:0082=20
a 3)
-t
AX=0020 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0102 NV UP EI PL NZ NA PO NC
14E6:0102 D1FB SAR BX,1
-t
AX=0020 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0104 NV UP EI PL NZ NA PO CY
14E6:0104 0000 ADD [BX+SI],AL DS:0020=FF
-t
AX=0080 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0102 NV UP EI PL NZ NA PO NC
14E6:0102 D1E3 SHL BX,1
-t
AX=0080 BX=0082 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0104 NV UP EI PL NZ NA PE NC
14E6:0104 0000 ADD [BX+SI],AL DS:0082=20
a 4)
-r ax
AX 0000
:0040
-r bx
BX 0000
:0041
-a 100
14E6:0100 inc ax
14E6:0101
-r
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PO NC
14E6:0100 40 INC AX
-t
AX=0041 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0101 NV UP EI PL NZ NA PE NC
14E6:0101 0000 ADD [BX+SI],AL DS:0041=00
a 5)
-r ax
AX 0000
:0040
-r bx
BX 0000
:0041
-a 100
14E6:0100 xchg ax,bx
14E6:0102
-r
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PO NC
14E6:0100 87C3 XCHG AX,BX
-t
AX=0041 BX=0040 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0102 NV UP EI PL NZ NA PO NC
14E6:0102 0000 ADD [BX+SI],AL DS:0040=05
b)
-r ax
AX 0000
FFF0
-a 100
14E6:0100 sar ax,1
14E6:0102
-r
AX=FFF0 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0100 NV UP EI PL NZ NA PO NC
14E6:0100 D1F8 SAR AX,1
-t
AX=FFF8 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14E6 ES=14E6 SS=14E6 CS=14E6 IP=0102 NV UP EI NG NZ NA PO NC
14E6:0102 0000 ADD [BX+SI],AL DS:0000=CD
eem332_rapor_4(1)
DENEYSEL ÇALIŞMA
5) Lea ax,[bx] komutu bx’in içinde bulunan değeri ax’e atar.
Aşağıda ise bunu açıklayan program
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0100 NV UP EI PL NZ NA PO NC
154F:0100 0000 ADD [BX+SI],AL DS:0000=CD
-r ax
AX 0000
:0100
-r bx
BX 0000
:0200
-a
154F:0100 lea ax,bx
^ Hatası
154F:0100 lea ax,[bx]
154F:0102
-r
AX=0100 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0100 NV UP EI PL NZ NA PO NC
154F:0100 8D07 LEA AX,[BX] DS:0000=20C
-t
AX=0200 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0102 NV UP EI PL NZ NA PO NC
154F:0102 0000 ADD [BX+SI],AL DS:0000=CD
7)
154F:0100 neg bx
154F:0102
-r
AX=0000 BX=0045 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0100 NV UP EI PL NZ NA PO NC
154F:0100 F7DB NEG BX
-t
AX=0000 BX=FFBB CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0102 NV UP EI NG NZ AC PE CY
154F:0102 0000 ADD [BX+SI],AL DS:FFBB=00
a)BX yazmacında tutulan yeni değer FFBB dir. b)Komut çalıştırıldıktan sonra “PL” işaret bayrağı “NG” olmuştur.
10)
-a
154F:0100 mov al,ff
154F:0102 add al,1
154F:0104 mov al,7f
154F:0106 add al,1
154F:0108 mov al,80
154F:010A add al,1
154F:010C mov al,ff
154F:010E inc al
154F:0110 mov al,80
154F:0112 inc al
154F:0114
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0100 NV UP EI PL NZ NA PO NC
154F:0100 B0FF MOV AL,FF
AX=00FF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0102 NV UP EI PL NZ NA PO NC
154F:0102 0401 ADD AL,01→Burada AL’nin içindeki değeri 1 artırırsak zero
flag, auxilary carry flag, carry flag aktif olur.Yalnız sign flag aktif olmaz çünkü bunu pozitif olarak algılar.Diğer bayrakların aktif olma nedenleri de bunları hexadecimal olarak topladığımızda anlayabiliriz.
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0104 NV UP EI PL ZR AC PE CY
154F:0104 B07F MOV AL,7F→Burada herhangi bir değişiklik olmamıştır.
-t
AX=007F BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0106 NV UP EI PL ZR AC PE CY
154F:0106 0401 ADD AL,01→AL=7F değerine 1 eklersek overflow bayrağı aktif
olur.Hexadecimal olarak toplamdan dolayı sekiz değerinin binary karşılığında son bitte bir vardır ve bu işaret biti olarak da kullanılır.Bundan dolayı sign flag de “NG” olur.
-t
AX=0080 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0108 OV UP EI NG NZ AC PO NC
154F:0108 B080 MOV AL,80
-t
AX=0080 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=010A OV UP EI NG NZ AC PO NC
154F:010A 0401 ADD AL,01→Sign flag 8 değerinin binary karşılığıdan dolayı
aktif olur.Elde bayrağı ve parity bayrağı da bu toplama bağımlı olarak değişir.
AX=0081 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=010C NV UP EI NG NZ NA PE NC
154F:010C B0FF MOV AL,FF
-t
AX=00FF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=010E NV UP EI NG NZ NA PE NC
154F:010E FEC0 INC AL→1. tracedeki durum tekrarlanır yalnız “INC” komutu
kullanıldığı için “PE” ve “NC” bayrakları bu durumdan etkilenmez.
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0110 NV UP EI PL ZR AC PE NC
154F:0110 B080 MOV AL,80
-t
AX=0080 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0112 NV UP EI PL ZR AC PE NC
154F:0112 FEC0 INC AL
-t
AX=0081 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0114 NV UP EI NG NZ NA PE NC
154F:0114 0000 ADD [BX+SI],AL DS:0000=CD→7.tracedeki durum
tekrar etmiştir.
11)
154F:0100 mov ax,aa77
154F:0103 mov bx,c3c3
154F:0106 and ax,bx
154F:0108 not ax
154F:010A and al,bh
154F:010C not bx
154F:010E or bx,ax
154F:0110 not ah
154F:0112 or bl,ah
154F:0114 xor ax,bx
154F:0116 not bx
154F:0118 xor bh,ah
154F:011A
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0100 NV UP EI PL NZ NA PO NC
154F:0100 B877AA MOV AX,AA77
-t
AX=AA77 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0103 NV UP EI PL NZ NA PO NC
154F:0103 BBC3C3 MOV BX,C3C3
-t
AX=AA77 BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0106 NV UP EI PL NZ NA PO NC
154F:0106 21D8 AND AX,BX
-t
AX=8243 BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0108 NV UP EI NG NZ NA PO NC
154F:0108 F7D0 NOT AX
-t
AX=7DBC BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=010A NV UP EI NG NZ NA PO NC
154F:010A 20F8 AND AL,BH
AX=7D80 BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=010C NV UP EI NG NZ NA PO NC
154F:010C F7D3 NOT BX
-t
AX=7D80 BX=3C3C CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=010E NV UP EI NG NZ NA PO NC
154F:010E 09C3 OR BX,AX
-t
AX=7D80 BX=7DBC CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0110 NV UP EI PL NZ NA PO NC
154F:0110 F6D4 NOT AH
-t
AX=8280 BX=7DBC CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0112 NV UP EI PL NZ NA PO NC
154F:0112 08E3 OR BL,AH
-t
AX=8280 BX=7DBE CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0114 NV UP EI NG NZ NA PE NC
154F:0114 31D8 XOR AX,BX
AX=FF3E BX=7DBE CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0116 NV UP EI NG NZ NA PO NC
154F:0116 F7D3 NOT BX
-t
AX=FF3E BX=8241 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0118 NV UP EI NG NZ NA PO NC
154F:0118 30E7 XOR BH,AH
-t
AX=FF3E BX=7D41 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=011A NV UP EI PL NZ NA PE NC
154F:011A 0000 ADD [BX+SI],AL DS:7D41=00
12)
a)
152D:0100 mov ax,0034
152D:0103 or al,30
152D:0105 aaa
152D:0106
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PO NC
152D:0100 B83400 MOV AX,0034
-t
AX=0034 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0103 NV UP EI PL NZ NA PO NC
152D:0103 0C30 OR AL,30
-t
AX=0034 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0105 NV UP EI PL NZ NA PO NC
152D:0105 37 AAA
-t
AX=0004 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0106 NV UP EI PL NZ NA PO NC
152D:0106 0000 ADD [BX+SI],AL DS:0000=CD
b)
c)
d)-a
152D:0100 mov ax,0038
152D:0103 or al,30
152D:0105 aaa
152D:0106
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PO NC
152D:0100 B83800 MOV AX,0038
-t
AX=0038 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0103 NV UP EI PL NZ NA PO NC
152D:0103 0C30 OR AL,30
-t
AX=0038 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0105 NV UP EI PL NZ NA PO NC
152D:0105 37 AAA
-t
AX=0008 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0106 NV UP EI PL NZ NA PO NC
152D:0106 0000 ADD [BX+SI],AL DS:0000=CD
14) a)
-r
AX=1234 BX=0004 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0100 NV UP EI PL NZ NA PO NC
154F:0100 D3C8 ROR AX,CL
-t
AX=4123 BX=0004 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0102 NV UP EI PL NZ NA PO NC
154F:0102 D3C8 ROR AX,CL
-t
AX=3412 BX=0004 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=154F ES=154F SS=154F CS=154F IP=0104 NV UP EI PL NZ NA PO NC
154F:0104 C8 DB C8
b)
15) ADD AL,BL sonucu:
-a
152D:0100 mov al,66
152D:0102 mov bl,48
152D:0104 add al,bl
152D:0106
-t
AX=0066 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000
DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL NZ NA PO
NC
152D:0102 B348 MOV BL,48
-t
AX=0066 BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000
DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0104 NV UP EI PL NZ NA PO
NC
152D:0104 00D8 ADD AL,BL
-t
AX=00AE BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000
DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0106 OV UP EI NG NZ NA PO
NC
152D:0106 0000 ADD [BX+SI],AL DS:0048=00
CBW komutu kullanıldıktan sonra
MOV AL,66
CBW
ADD AL,BL
MOV BL,48
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PO NC
152D:0100 B066 MOV AL,66
-t
AX=0066 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL NZ NA PO NC
152D:0102 B348 MOV BL,48
-t
AX=0066 BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0104 NV UP EI PL NZ NA PO NC
152D:0104 00D8 ADD AL,BL
-t
AX=00AE BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0106 OV UP EI NG NZ NA PO NC
152D:0106 98 CBW
-t
AX=FFAE BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0107 OV UP EI NG NZ NA PO NC
152D:0107 0000 ADD [BX+SI],AL DS:0048=00
rapor4
Başkent Üniversitesi Elektrik - Elektonik Mühendisliği Bölümü
EEM 332 – Mikroişlemciler Laboratuvarı
Ön Çalışma/ Rapor
Deney No: # 4 Deney Adı: Aritmetik ve Mantık İşlemleri 1 Deney Tarihi: 24/03/2006
5)
Lea ax, bx komutu bx’in değerini ax’e atar.
Komutu çalıştırdığımız zaman -a100
13A5:0100 lea ax,bx
^ Hatası
13A5:0100 lea ax,[bx]
13A5:0102
-r
AX=1234 BX=1111 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 8D07 LEA AX,[BX] DS:1111=0000
-t
AX=1111 BX=1111 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL NZ NA PO NC
13A5:0102 0000 ADD [BX+SI],AL DS:1111=00
- Verilen ilk komutu çalıştırdığımız zaman hata mesajı Verdi çünkü lea komutu değer atamaz,o adresin içinde tutulan değeri atar ,yani köşeli parantez içine alarak adresin içindeki değeri atıyor. Hata olmaması için köşeli parantez içine almalıyız.
7)
-r bx
BX 0000
:0045
-r
AX=0000 BX=0045 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 0000 ADD [BX+SI],AL DS:0045=00
-rf NV UP EI PL NZ NA PO NC -pl -rf
NV UP EI PL NZ NA PO NC -
-a100
13A5:0100 neg bx
13A5:0102
-r
AX=0000 BX=0045 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 F7DB NEG BX
-
AX=0000 BX=FFBB CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI NG NZ AC PE CY
13A5:0102 0000 ADD [BX+SI],AL DS:FFBB=00
-
a) Bx yazmacında tutulan yeni değer FFBB değeridir. b) Komut çalıştırıldıktan sonra işaret bayrağı PL --- NG olmaktadır
10)
-a100
13A5:0100 mov al,ff
13A5:0102 add al,1
13A5:0104 mov al,7f
13A5:0106 add al,1
13A5:0108 mov al,80
13A5:010A add al,1
13A5:010C mov al,ff
13A5:010E inc al
13A5:0110 mov al,80
13A5:0112 inc al
13A5:0114
-
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 B0FF MOV AL,FF
-t
AX=00FF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL NZ NA PO NC
13A5:0102 0401 ADD AL,01
Bu tracede AL’nin içindeki değeri 1 artırırsak zero flag, auxilary carry flag, carry flag aktif olur.Sadece sign flag aktif olmaz çünkü bunu pozitif olarak algılar.Diğer bayrakların aktif olma nedenleri ise bunları hexadecimal olarak topladığımızda anlayabiliriz.
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0104 NV UP EI PL ZR AC PE CY
13A5:0104 B07F MOV AL,7F
Herhangi bir değişiklik yoktur
-t
AX=007F BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0106 NV UP EI PL ZR AC PE CY
13A5:0106 0401 ADD AL,01
AL=7F değerine 1 eklersek overflow bayrağı aktif olur.Hexadecimal olarak toplamdan dolayı sekiz değerinin binary karşılığında son bitte bir vardır ve bu işaret biti olarak da kullanılır. Bundan dolayı sign flag de “NG” olur.
-t
AX=0080 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0108 OV UP EI NG NZ AC PO NC
13A5:0108 B080 MOV AL,80
-
-t
AX=0080 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=010A OV UP EI NG NZ AC PO NC
13A5:010A 0401 ADD AL,01
Sign flag 8 değerinin binary karşılığıdan dolayı aktif olur.Elde bayrağı ve parity bayrağı da bu toplama bağımlı olarak değişir.
-t
AX=0081 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=010C NV UP EI NG NZ NA PE NC
13A5:010C B0FF MOV AL,FF
-t
AX=00FF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=010E NV UP EI NG NZ NA PE NC
13A5:010E FEC0 INC AL
1. tracedeki durum tekrarlanır yalnız “INC” komutu kullanıldığı için “PE” ve “NC”
bayrakları bu durumdan etkilenmez.
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0110 NV UP EI PL ZR AC PE NC
13A5:0110 B080 MOV AL,80
-
-t
AX=0080 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0112 NV UP EI PL ZR AC PE NC
13A5:0112 FEC0 INC AL
-t
AX=0081 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0114 NV UP EI NG NZ NA PE NC
13A5:0114 0000 ADD [BX+SI],AL DS:0000=CD
-t
7.tracedeki durum tekrar etmiştir.
11)
-r ax
AX 0000
AA77
-r bx
BX 0000
C3C3
-a100
13A5:0100 and ax,bx
13A5:0102 not ax
13A5:0104 and al,bh
13A5:0106 not bx
13A5:0108 or bx,ax
13A5:010A not ah
13A5:010C or bl,ah
13A5:010E xor ax,bx
13A5:0110 not bx
13A5:0112 xor bh,ah
13A5:0114
-
-r
AX=AA77 BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 21D8 AND AX,BX
-t
AX=8243 BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI NG NZ NA PO NC
13A5:0102 F7D0 NOT AX
-t
AX=7DBC BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0104 NV UP EI NG NZ NA PO NC
13A5:0104 20F8 AND AL,BH
-t
AX=7D80 BX=C3C3 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0106 NV UP EI NG NZ NA PO NC
13A5:0106 F7D3 NOT BX
-t
AX=7D80 BX=3C3C CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0108 NV UP EI NG NZ NA PO NC
13A5:0108 09C3 OR BX,AX
-
AX=7D80 BX=7DBC CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=010A NV UP EI PL NZ NA PO NC
13A5:010A F6D4 NOT AH
-t
AX=8280 BX=7DBC CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=010C NV UP EI PL NZ NA PO NC
13A5:010C 08E3 OR BL,AH
-t
AX=8280 BX=7DBE CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=010E NV UP EI NG NZ NA PE NC
13A5:010E 31D8 XOR AX,BX
-t
AX=FF3E BX=7DBE CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0110 NV UP EI NG NZ NA PO NC
13A5:0110 F7D3 NOT BX
-t
AX=FF3E BX=8241 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0112 NV UP EI NG NZ NA PO NC
13A5:0112 30E7 XOR BH,AH
-
-t
AX=FF3E BX=7D41 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0114 NV UP EI PL NZ NA PE NC
13A5:0114 0000 ADD [BX+SI],AL DS:7D41=00
-
12)
a)
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 0000 ADD [BX+SI],AL DS:0000=CD
-a100
13A5:0100 mov ax,0034
13A5:0103 or al,30
13A5:0105 aaa
13A5:0106
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 B83400 MOV AX,0034
-t
AX=0034 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0103 NV UP EI PL NZ NA PO NC
13A5:0103 0C30 OR AL,30
-
AX=0034 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0105 NV UP EI PL NZ NA PO NC
13A5:0105 37 AAA
-t
AX=0004 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0106 NV UP EI PL NZ NA PO NC
13A5:0106 0000 ADD [BX+SI],AL DS:0000=CD
d)
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0100 NV UP EI PL NZ NA PO NC
139F:0100 0000 ADD [BX+SI],AL DS:0000=CD
-a100
139F:0100 mov ax,0038
139F:0103 or al,30
139F:0105 aaa
139F:0106
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0100 NV UP EI PL NZ NA PO NC
139F:0100 B83800 MOV AX,0038
-
-t
AX=0038 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0103 NV UP EI PL NZ NA PO NC
139F:0103 0C30 OR AL,30
-t
AX=0038 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0105 NV UP EI PL NZ NA PO NC
139F:0105 37 AAA
-t
AX=0008 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0106 NV UP EI PL NZ NA PO NC
139F:0106 0000 ADD [BX+SI],AL DS:0000=CD
-t
AX=0008 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0108 NV UP EI NG NZ AC PO NC
139F:0108 0000 ADD [BX+SI],AL DS:0000=D5
-
14)
a.)
-r
AX=1234 BX=0004 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0106 NV UP EI PL NZ NA PO NC
13A5:0106 D3C8 ROR AX,CL
-t
AX=4123 BX=0004 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0108 NV UP EI PL NZ NA PO NC
13A5:0108 D3C8 ROR AX,CL
-t
AX=3412 BX=0004 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=010A NV UP EI PL NZ NA PO NC
13A5:010A C8 DB C8
b)
15)
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 0000 ADD [BX+SI],AL DS:0000=CD
-a 100
13A5:0100 mov al,66
13A5:0102 mov bl,48
13A5:0104 add al,bl
13A5:0106
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 B066 MOV AL,66
-t
AX=0066 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL NZ NA PO NC
13A5:0102 B348 MOV BL,48
-t
AX=0066 BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0104 NV UP EI PL NZ NA PO NC
13A5:0104 00D8 ADD AL,BL
-t
AX=00AE BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0106 OV UP EI NG NZ NA PO NC
13A5:0106 0000 ADD [BX+SI],AL DS:0048=00
--Bu komut AL ile BL değerini toplayarak AL değerinin içine attı.
Ikinci kısım komutun tam hali
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0100 NV UP EI PL NZ NA PO NC
139F:0100 0000 ADD [BX+SI],AL DS:0000=CD
-a100
139F:0100 mov al,66
139F:0102 mov bl,48
139F:0104 add al,bl
139F:0106 cbw
139F:0107
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0100 NV UP EI PL NZ NA PO NC
139F:0100 B066 MOV AL,66
-t
AX=0066 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0102 NV UP EI PL NZ NA PO NC
139F:0102 B348 MOV BL,48
-
-t
AX=0066 BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0104 NV UP EI PL NZ NA PO NC
139F:0104 00D8 ADD AL,BL
-t
AX=00AE BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0106 OV UP EI NG NZ NA PO NC
139F:0106 98 CBW
-
-t
AX=FFAE BX=0048 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=139F ES=139F SS=139F CS=139F IP=0107 OV UP EI NG NZ NA PO NC
139F:0107 0000 ADD [BX+SI],AL DS:0048=00
-
rapor4b
5)
Lea ax,[bx] komutu bx’in değerini ax’e atar.
Mov ax,[bx] komutu ise bx değerinin data segmentteki offset değerinin gösterdiği
derğeri ax’e atar. İki komutta hafızada 2 byte lık yer kaplıyor.
-a 100
1506:0100 lea ax, bx
^ Hatası
7)
-r bx
BX 0000
:45
-r f
NV UP EI PL NZ NA PO NC -pl
-r f
NV UP EI PL NZ NA PO NC -
-a
1506:0100 neg bx
1506:0102
-r
AX=0000 BX=0045 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=0100 NV UP EI PL NZ NA PO NC
1506:0100 F7DB NEG BX
-t
AX=0000 BX=FFBB CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=0102 NV UP EI NG NZ AC PE CY
1506:0102 0000 ADD [BX+SI],AL DS:FFBB=00
a) BX=FFBB b) PL → NG
10)
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=0100 NV UP EI PL NZ NA PO NC
150F:0100 0000 ADD [BX+SI],AL DS:0000=CD
-a
150F:0100 mov al,ff
150F:0102 add al,1
150F:0104 mov al,7f
150F:0106 add al,1
150F:0108 mov al,80
150F:010A add al,1
150F:010C mov al,ff
150F:010E inc al
150F:0110 mov al,80
150F:0112 inc al
150F:0114
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=15 0F ES=150F SS=150F CS=150F IP=0100 NV UP EI PL NZ NA PO NC
150F:0100 B0FF MOV AL,FF
-t
AX=00FF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=0102 NV UP EI PL NZ NA PO NC
150F:0102 0401 ADD AL,01
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=0104 NV UP EI PL ZR AC PE CY
150F:0104 B07F MOV AL,7F
-t
AX=007F BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=0106 NV UP EI PL ZR AC PE CY
150F:0106 0401 ADD AL,01
-t
AX=0080 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=0108 OV UP EI NG NZ AC PO NC
150F:0108 B080 MOV AL,80
-t
AX=0080 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=010A OV UP EI NG NZ AC PO NC
150F:010A 0401 ADD AL,01
-t
AX=0081 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=010C NV UP EI NG NZ NA PE NC
150F:010C B0FF MOV AL,FF
-t
AX=00FF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=010E NV UP EI NG NZ NA PE NC
150F:010E FEC0 INC AL
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=0110 NV UP EI PL ZR AC PE NC
150F:0110 B080 MOV AL,80
-t
AX=0080 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=150F ES=150F SS=150F CS=150F IP=0112 NV UP EI PL ZR AC PE NC
150F:0112 FEC0 INC AL
11)
-r ax
AX 0A01
:aa77
-r bx
BX 0000
:c3c3
-a 100
1506:0100 and ax,bx
1506:0102 not ax
1506:0104 and al,bh
1506:0106 not bx
1506:0108 or bx,ax
1506:010A not ah
1506:010C or bl,ah
1506:010E xor ax,bx
1506:0110 not bx
1506:0112 xor bh,ah
AX=8243 BX=C3C3 CX=0006 DX=0038 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=0102 NV UP EI NG NZ NA PO NC
1506:0102 F7D0 NOT AX
-t
AX=7DBC BX=C3C3 CX=0006 DX=0038 SP=FFEE BP=0000 SI=0000
DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=0104 NV UP EI NG NZ NA PO NC
1506:0104 20F8 AND AL,BH
-t
AX=7D80 BX=C3C3 CX=0006 DX=0038 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=0106 NV UP EI NG NZ NA PO NC
1506:0106 F7D3 NOT BX
-t
AX=7D80 BX=3C3C CX=0006 DX=0038 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=0108 NV UP EI NG NZ NA PO NC
1506:0108 09C3 OR BX,AX
-t
AX=827D BX=82FF CX=0006 DX=0038 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=010A NV UP EI NG NZ NA PE NC
1506:010A F6D4 NOT AH
-t
AX=7D7D BX=82FF CX=0006 DX=0038 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=010C NV UP EI NG NZ NA PE NC
1506:010C 08E3 OR BL,AH
-t
AX=7D7D BX=82FF CX=0006 DX=0038 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=010E NV UP EI NG NZ NA PE NC
1506:010E 31D8 XOR AX,BX
-t
AX=FF82 BX=82FF CX=0006 DX=0038 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=0110 NV UP EI NG NZ NA PE NC
1506:0110 F7D3 NOT BX
-t
AX=FF82 BX=7D00 CX=0006 DX=0038 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1506 ES=1506 SS=1506 CS=1506 IP=0112 NV UP EI NG NZ NA PE NC
1506:0112 30E7 XOR BH,AH
12)
14)
a.
-r
AX=1234 BX=0004 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PO NC
14F2:0100 D3C8 ROR AX,CL
-t
AX=4123 BX=0004 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI PL NZ NA PO NC
14F2:0102 D3C8 ROR AX,CL
-t
AX=3412 BX=0004 CX=0004 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0104 NV UP EI PL NZ NA PO NC
14F2:0104 C8 DB C8
b.
15)
14F2:0000 B066 MOV AL,66
14F2:0002 B348 MOV BL,48
14F2:0004 00D8 ADD AL,BL
14F2:0006 98 CBW
calisma-744
Başkent Üniversitesi Elektrik - Elektonik Mühendisliği Bölümü
EEM 332 – Mikroişlemciler Laboratuvarı
Önçalışma
Deney No: 3 Deney Adı: Adresleme Kipleri Deney Tarihi: 28/03/2011
1)
Mov cx,ax
Mov ax,bx
Mov bx,cx
2)
Aynı işlem tek bir kod kullanılarakda yapılabilir
Xchg ax,bx kod komut satırı yazarak değiştirmek mümkündür.
Kod komut satırını ile
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 0000 ADD [BX+SI],AL DS:0000=CD
-r ax
AX 0000
:1000
-r bx
BX 0000
:2000
-r
AX=1000 BX=2000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 0000 ADD [BX+SI],AL DS:2000=00
-
-a 100
11B7:0100 xchg ax,bx
11B7:0102
-t
AX=2000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI PL NZ NA PO NC
11B7:0102 0000 ADD [BX+SI],AL DS:1000=00
- Komutu işlettiğimiz zaman ax ve bx degerlerinin yerdeğiştirir.
3)
11B7:0110 mov ax,[0300]
11B7:0113 xchg [0400],ax
11B7:0117 mov [0300],ax
Komut satırı yazılarak DS:300 ve DS:400 hafıza yerlerindeki 16 bitlik değerlerinin yerlerini değiştirebiliriz.
4)
-a 100
11B7:0100 ADD AX,1
11B7:0103 INC AX
11B7:0104
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 050100 ADD AX,0001
-t
AX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7ES=11B7 SS=11B7 CS=11B7 IP=11B7 NV UP EI PL NZ NA PO NC
11B7:0103 40 INC AX
-t
AX=0002 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0104 NV UP EI PL NZ NA PO NC
11B7:0104 0000 ADD [BX+SI],AL DS:0000=CD
- İki debug komutuda aynı işlemi yapmaktadır. Aralarındaki fark add ax,1 komutu 3 byte lık yer kaplamaktadır, inc ax ise 1 byte lık yer kaplamaktadır.
5) Lea ax,[bx] komutu bx’in değerini ax’e atmaktadır.
Mov ax,[bx] komutu ise bx değerinin data segmentteki offset değerinin gösterdiği
degeri ax’e atmaktadır. Bu iki komutta hafızada 2 byte lık yer kaplamaktadır
6)
-r ax
AX 0000
:2
-r bx
BX 0000
:3 -a100
11B7:0100 ADC AX,BX
11B7:0102
-r
AX=0002 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 11D8 ADC AX,BX
-t
AX=0005 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI PL NZ NA PE NC
11B7:0102 0000 ADD [BX+SI],AL DS:0003=9F
-
- Carry flag “0” iken “adc” komutu ax ve bx değerlerinin toplamını ax yazmacına atar.
-r ax
AX 0000
:2
-r bx
BX 0000
:3 -a100
11B7:0100 ADC AX,BX
11B7:0102
-r
AX=0002 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO CY
11B7:0100 11D8 ADC AX,BX
-t
AX=0006 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI PL NZ NA PE NC
11B7:0102 0000 ADD [BX+SI],AL DS:0003=9F
-
Carry flag “1” oldugu zaman “adc” komutu ax ve bx değerlerinin toplamına 1 ekleyip ax yazmacına atıyor.
7) NEG BX komutu bx değerinin 2 ye tümleyenini alıyor.
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 0000 ADD [BX+SI],AL DS:0000=CD
-r ax
AX 0000
:0100
-r bx
BX 0000
:0001 -a100
11B7:0100 NEG BX
11B7:0102
-r
AX=0100 BX=0001 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 F7DB NEG BX
-t
AX=0100 BX=FFFF CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI NG NZ AC PE CY
11B7:0102 0000 ADD [BX+SI],AL DS:FFFF=00
-
8)
A=DS:500 B=DS:501 C=DS:502 D=DS:503 Z=DS:504
Program komutları
Mov bx.[0502]
Sub bx,[0503]
Mov ax,[0501]
Mul bx
Add ax,[0501]
Mov [0504],ax
9)
MUL komutunda AL ile CL değerlerini çarpıp AX registera atıyor, IMUL komutunda
ise iki değerin çarpımının 2 ‘ye tümleyenini alıp AX registera atıyor.
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 A070 MOV AL,20
AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI PL NZ NA PO NC
11B7:0102 B180 MOV CL,80
AX=0020 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0104 NV UP EI PL NZ NA PO NC
11B7:0104 F6E1 MUL CL
AX=1000 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0106 OV UP EI PL ZR NA PE CY
11B7:0106 0000 ADD [BX+SI],AL DS:0000=CD
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 A070 MOV AL,20
AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI PL NZ NA PO NC
11B7:0102 B180 MOV CL,80
AX=0020 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0104 NV UP EI PL NZ NA PO NC
11B7:0104 F6E9 IMUL CL
AX=F000 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=11B7 OV UP EI PL ZR NA PE CY
11B7:0106 0000 ADD [BX+SI],AL DS:0000=CD
10)
a) -a100
11B7:0100 sar ax,1
11B7:0102 sar bx,1
11B7:0104
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 D1F8 SAR AX,1
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI PL ZR NA PE NC
11B7:0102 D1FB SAR BX,1
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0104 NV UP EI PL ZR NA PE NC
11B7:0104 0000 ADD [BX+SI],AL DS:0000=CD
-
b)
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PO NC
11B7:0100 D1E0 SHL AX,1
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI PL ZR NA PE NC
11B7:0102 D1E3 SHL BX,1
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0104 NV UP EI PL ZR NA PE NC
11B7:0104 0000 ADD [BX+SI],AL DS:0000=CD
-
c)
-r
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI NG NZ AC PO CY
11B7:0100 39D8 CMP AX,BX
-t
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI PL ZR NA PE NC
11B7:0102 D1E3 SHL BX,1
-r
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL NZ NA PE NC
11B7:0100 39D8 CMP AX,BX
-t
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI NG NZ AC PO CY
11B7:0102 D1E3 SHL BX,1
d)
-r
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=13A5 IP=0100 NV UP EI PL NZ NA PE NC
11B7:0100 40 INC AX
-t
AX=0041 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0101 NV UP EI PL NZ NA PE NC
11B7:0101 39D8 CMP AX,BX
-t
AX=0041 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0103 NV UP EI PL ZR NA PE NC
11B7:0103 E32B JCXZ 0130
e)
-r
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI PL ZR NA PE NC
11B7:0100 87C3 XCHG AX,BX
-t
AX=0041 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI PL ZR NA PE NC
11B7:0102 39D8 CMP AX,BX
-t
AX=0041 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7IP=0104 NV UP EI PL NZ NA PO NC
11B7:0104 2B1E0305 SUB BX,[0503] DS:0503=0303
2b) b.
-r
AX=FFF0 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0100 NV UP EI NG NZ NA PO NC
11B7:0100 D1F8 SAR AX,1
-t
AX=FFF8 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=11B7 ES=11B7 SS=11B7 CS=11B7 IP=0102 NV UP EI NG NZ NA PO NC
11B7:0102 39D8 CMP AX,BX
önçalışma4(1)
Başkent Üniversitesi Elektrik - Elektonik Mühendisliği Bölümü
EEM 332 – Mikroişlemciler Laboratuvarı
Ön Çalışma
Deney No:4 Deney Adı:Aritmetik ve Mantık İşlemleri 1 Deney Tarihi:24/03/2006
1)
MOV CX,AX
MOV AX,BX
MOV BX,CX
2)
-R AX
AX 0000
:0100
-R BX
BX 0000
:0200
-R
AX=0100 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PO NC
152D:0100 0000 ADD [BX+SI],AL DS:0002=FF
-A
152D:0100 XCHG AX,BX
152D:0102
-R
AX=0100 BX=0200 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PO NC
152D:0100 87C3 XCHG AX,BX
-T
AX=0200 BX=0100 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL NZ NA PO NC
152D:0102 0000 ADD [BX+SI],AL DS:0001=20
3)
-D DS:100
152D:0100 01 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
-D DS:200
152D:0200 02 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
152D:0110 MOV AX,[0100]
152D:0113 XCHG [0200],AX
152D:0117 MOV [0100],AX
-D DS:100
152D:0100 02 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
-D DS:200
152D:0200 01 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
4)
-A 100
152D:0100 ADD AX,1
152D:0103 INC AX
152D:0104
-R
AX=0004 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PO NC
152D:0100 050100 ADD AX,0001
-T
AX=0005 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0103 NV UP EI PL NZ NA PE NC
152D:0103 40 INC AX
-T
AX=0006 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0104 NV UP EI PL NZ NA PE NC
152D:0104 0300 ADD AX,[BX+SI] DS:0004=9A00
BU İKİ KOMUTUN İŞLEVİ AYNIDIR FAKAT “ADD AX,1” KOMUTU 3 BYTE
YER KAPLARKEN, “INC AX” KOMUTU SADECE 1 BYTE YER
KAPLAMAKTADIR.
5)
LEA AX,[BX] KOMUTU BX’İN DEĞERİNİ AX’E ATAR.
MOV AX,[BX] KOMUTU İSE BX DEĞERİNİN DATA SEGMENTTEKİ
OFFSET DEĞERİNİN GÖSTERDİĞİ DEĞERİ AX’E ATAR. İKİ KOMUTTA
HAFIZADA 2 BYTE YER KAPLAR.
6)
-R AX
AX 0004
:1
-R BX
BX 0004
:2
-A 100
152D:0100 ADC AX,BX
152D:0102
-R
AX=0001 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PE NC
152D:0100 11D8 ADC AX,BX
-T
AX=0003 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL NZ NA PE NC
152D:0102 8B07 MOV AX,[BX] DS:0002=9FFF
CARRY FLAG “0” İKEN “ADC” KOMUTU AX VE BX DEĞERLERİNİN
TOPLAMINI AX’E ATAR.
-R AX
AX 0004
:1
-R BX
BX 0004
:2
-A 100
152D:0100 ADC AX,BX
152D:0102
-R
AX=0001 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PE CY
152D:0100 11D8 ADC AX,BX
-T
AX=0004 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL NZ NA PE NC
152D:0102 8B07 MOV AX,[BX] DS:0002=9FFF
CARRY FLAG “1” İKEN “ADC” KOMUTU AX VE BX DEĞERLERİNİN
TOPLAMINA 1 EKLEYİP AX’E ATAR.
7)
“NEG BX” KOMUTU BX REGİSTERINDAKİ DEĞERİN 2 YE TÜMLEYENİNİ
ALIR
-R
AX=0100 BX=0001 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ AC PO CY
152D:0100 F7DB NEG BX
-T
AX=0100 BX=FFFF CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI NG NZ AC PE CY
152D:0102 8B07 MOV AX,[BX] DS:FFFF=CD00
8)
-A
152D:0100 MOV BX,[0502]→C
152D:0104 SUB BX,[0503] →C-D
152D:0108 MOV AX,[0501]→B
152D:010B MUL BX →B*(C-D)
152D:010D ADD AX,[0500]→A+B*(C-D)
152D:0111 MOV [0504],AX→Z=A+B*(C-D)
A= DS:500, B= DS:501, C=DS:502, D=DS:503, Z=DS:504
9)
MUL KOMUTUNDA AL İLE CL DEĞERLERİNİ ÇARPIP AX’E ATAR, IMUL
KOMUTUNDA İSE İKİ DEĞERİN ÇARPIMININ 2 YE TÜMLEYENİNİ ALIP
AX’E ATAR.
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PO NC
152D:0100 A070 MOV AL,20
AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL NZ NA PO NC
152D:0102 B180 MOV CL,80
AX=0020 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0104 NV UP EI PL NZ NA PO NC
152D:0104 F6E1 MUL CL
AX=1000 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0106 OV UP EI PL ZR NA PE CY
152D:0106 0000 ADD [BX+SI],AL DS:0000=CD
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PO NC
152D:0100 A070 MOV AL,20
AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL NZ NA PO NC
152D:0102 B180 MOV CL,80
AX=0020 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0104 NV UP EI PL NZ NA PO NC
152D:0104 F6E9 IMUL CL
AX=F000 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0106 OV UP EI PL ZR NA PE CY
152D:0106 0000 ADD [BX+SI],AL DS:0000=CD
10)
A.
İ)
152D:0100 SAR AX,1
152D:0102 SAR BX,1
152D:0104
-R
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PE NC
152D:0100 D1F8 SAR AX,1
-T
AX=0020 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL NZ NA PO NC
152D:0102 D1FB SAR BX,1
-T
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0104 NV UP EI PL NZ NA PO CY
152D:0104 2B1E0305 SUB BX,[0503] DS:0503=0303
İİ)
152D:0100 SHL AX,1
152D:0102 SHL BX,1
152D:0104
-R
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PO CY
152D:0100 D1E0 SHL AX,1
-T
AX=0080 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL NZ NA PO NC
152D:0102 D1E3 SHL BX,1
-T
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0104 NV UP EI PL NZ NA PE NC
152D:0104 2B1E0305 SUB BX,[0503] DS:0503=0303
İİİ)
-R
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI NG NZ AC PO CY
152D:0100 39D8 CMP AX,BX
-T
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL ZR NA PE NC
152D:0102 D1E3 SHL BX,1
-R
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PE NC
152D:0100 39D8 CMP AX,BX
-T
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI NG NZ AC PO CY
152D:0102 D1E3 SHL BX,1
İV)
-R
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL NZ NA PE NC
152D:0100 40 INC AX
-T
AX=0041 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0101 NV UP EI PL NZ NA PE NC
152D:0101 39D8 CMP AX,BX
-T
AX=0041 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0103 NV UP EI PL ZR NA PE NC
152D:0103 E32B JCXZ 0130
V)
-R
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI PL ZR NA PE NC
152D:0100 87C3 XCHG AX,BX
-T
AX=0041 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0102 NV UP EI PL ZR NA PE NC
152D:0102 39D8 CMP AX,BX
-T
AX=0041 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0104 NV UP EI PL NZ NA PO NC
152D:0104 2B1E0305 SUB BX,[0503] DS:0503=0303
B.
-R
AX=FFF0 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152D IP=0100 NV UP EI NG NZ NA PO NC
152D:0100 D1F8 SAR AX,1
-T
AX=FFF8 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=152D ES=152D SS=152D CS=152DIP=0102 NV UP EI NG NZ NA PO NC
152D:0102 39D8 CMP AX,BX
önçalışma4
1)
Mov cx,ax
Mov ax,bx
Mov bx,cx
2)
-r ax
AX 0000
:1
-r bx
BX 0000
:2
-r
AX=0001 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PO NC
14F2:0100 0000 ADD [BX+SI],AL DS:0002=FF
-a 100
14F2:0100 xchg ax,bx
14F2:0102
-r
AX=0001 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PO NC
14F2:0100 87C3 XCHG AX,BX
-t
AX=0002 BX=0001 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI PL NZ NA PO NC
14F2:0102 0000 ADD [BX+SI],AL DS:0001=20
3)
-d ds:300
14F2:0300 03 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
-d ds:400
14F2:0400 04 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
14F2:0110 mov ax,[0300]
14F2:0113 xchg [0400],ax
14F2:0117 mov [0300],ax
-d ds:300
14F2:0300 04 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
-d ds:400
14F2:0400 03 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
4)
-a 100
14F2:0100 add ax,1
14F2:0103 inc ax
14F2:0104
-r
AX=0004 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PO NC
14F2:0100 050100 ADD AX,0001
-t
AX=0005 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0103 NV UP EI PL NZ NA PE NC
14F2:0103 40 INC AX
-t
AX=0006 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0104 NV UP EI PL NZ NA PE NC
14F2:0104 0300 ADD AX,[BX+SI] DS:0004=9A00
Görüldüğü gibi iki komutunda işlevi aynıdır fakat “add ax,1” komutu 3 byte yer kaplarken, “inc ax” komutu sadece 1 byte yer kaplar.
5)
Lea ax,[bx] komutu bx’in değerini ax’e atar.
Mov ax,[bx] komutu ise bx değerinin data segmentteki offset değerinin gösterdiği
derğeri ax’e atar. İki komutta hafızada 2 byte lık yer kaplıyor.
6)
-r ax
AX 0004
:1
-r bx
BX 0004
:2
-a 100
14F2:0100 adc ax,bx
14F2:0102
-r
AX=0001 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PE NC
14F2:0100 11D8 ADC AX,BX
-t
AX=0003 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI PL NZ NA PE NC
14F2:0102 8B07 MOV AX,[BX] DS:0002=9FFF
Carry flag “0” iken “adc” komutu ax ve bx değerlerinin toplamını ax yazmacına atar.
-r ax
AX 0004
:1
-r bx
BX 0004
:2
-a 100
14F2:0100 adc ax,bx
14F2:0102
-r
AX=0001 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PE CY
14F2:0100 11D8 ADC AX,BX
-t
AX=0004 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI PL NZ NA PE NC
14F2:0102 8B07 MOV AX,[BX] DS:0002=9FFF
Carry flag “1” iken “adc” komutu ax ve bx değerlerinin toplamına 1 ekleyip ax yazmacına atıyor.
7)
“neg” komutu bx değerinin 2 ye tümleyenini alıyor
-r
AX=0100 BX=0001 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ AC PO CY
14F2:0100 F7DB NEG BX
-t
AX=0100 BX=FFFF CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI NG NZ AC PE CY
14F2:0102 8B07 MOV AX,[BX] DS:FFFF=CD00
8)
-u 100
14F2:0100 8B1E0205 MOV BX,[0502]
14F2:0104 2B1E0305 SUB BX,[0503]
14F2:0108 A10105 MOV AX,[0501]
14F2:010B F7E3 MUL BX
14F2:010D 03060005 ADD AX,[0500]
14F2:0111 A30405 MOV [0504],AX
A= DS:500, B= DS:501, C=DS:502, D=DS:503, Z=DS:504
9)
MUL komutunda al ile cl değerlerini çarpıp ax yazmacına atıyor, IMUL komutunda
ise iki değerin çarpımının 2 ye tümleyenini alıp ax yazmacına atıyor.
10)
a.
i)
14F2:0100 sar ax,1
14F2:0102 sar bx,1
14F2:0104
-r
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PE NC
14F2:0100 D1F8 SAR AX,1
-t
AX=0020 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI PL NZ NA PO NC
14F2:0102 D1FB SAR BX,1
-t
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0104 NV UP EI PL NZ NA PO CY
14F2:0104 2B1E0305 SUB BX,[0503] DS:0503=0303
ii)
14F2:0100 shl ax,1
14F2:0102 shl bx,1
14F2:0104
-r
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PO CY
14F2:0100 D1E0 SHL AX,1
-t
AX=0080 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI PL NZ NA PO NC
14F2:0102 D1E3 SHL BX,1
-t
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0104 NV UP EI PL NZ NA PE NC
14F2:0104 2B1E0305 SUB BX,[0503] DS:0503=0303
iii)
-r
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI NG NZ AC PO CY
14F2:0100 39D8 CMP AX,BX
-t
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI PL ZR NA PE NC
14F2:0102 D1E3 SHL BX,1
-r
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PE NC
14F2:0100 39D8 CMP AX,BX
-t
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI NG NZ AC PO CY
14F2:0102 D1E3 SHL BX,1
iv)
-r
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL NZ NA PE NC
14F2:0100 40 INC AX
-t
AX=0041 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0101 NV UP EI PL NZ NA PE NC
14F2:0101 39D8 CMP AX,BX
-t
AX=0041 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0103 NV UP EI PL ZR NA PE NC
14F2:0103 E32B JCXZ 0130
v)
-r
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI PL ZR NA PE NC
14F2:0100 87C3 XCHG AX,BX
-t
AX=0041 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI PL ZR NA PE NC
14F2:0102 39D8 CMP AX,BX
-t
AX=0041 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0104 NV UP EI PL NZ NA PO NC
14F2:0104 2B1E0305 SUB BX,[0503] DS:0503=0303
b.
-r
AX=FFF0 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0100 NV UP EI NG NZ NA PO NC
14F2:0100 D1F8 SAR AX,1
-t
AX=FFF8 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F2 ES=14F2 SS=14F2 CS=14F2 IP=0102 NV UP EI NG NZ NA PO NC
14F2:0102 39D8 CMP AX,BX
ön çalışma 3
Başkent Üniversitesi Elektrik - Elektonik Mühendisliği Bölümü
EEM 332 – Mikroişlemciler Laboratuvarı
Ön Çalışma/ Rapor
Deney No: # 3 Deney Adı: Adresleme Kipleri (Addressing Modes) Deney Tarihi: 17/03/2006
1) Register Operand Addressing Mode:
MOV CH,AH
2) Immediate Operand Addressing Mode:
MOV CX,1234
3) Memory Operand Addressing Modes:
* Direct Addressing Mode
MOV CX,[1234H]
* Register Indirect Addressing Mode
MOV AX, [SI]
* Based Addressing Mode
MOV [BX] + 1234H, AL
*Indexed Addressing Mode
MOV AL, [SI] + 2000H
*Based-Indexed Addressing Mode
MOV AH , [BX] [SI] + 1234H
calisma-850
Başkent Üniversitesi Elektrik - Elektonik Mühendisliği Bölümü
EEM 332 – Mikroişlemciler Laboratuvarı
Önçalışma
Deney No: #3 Deney Adı: Adresleme Kipleri Deney Tarihi: 17/03/2006
1)
Mov cx,ax
Mov ax,bx
Mov bx,cx
2)
Aynı işlemi tek bir kod kullanarak yapmak mümkündür.
Xchg ax,bx kod komut satırı yazarak değiştirmek mümkündür.
Kod komut satırını uygularsak
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 0000 ADD [BX+SI],AL DS:0000=CD
-r ax
AX 0000
:1000
-r bx
BX 0000
:2000
-r
AX=1000 BX=2000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 0000 ADD [BX+SI],AL DS:2000=00
-
-a 100
13A5:0100 xchg ax,bx
13A5:0102
-t
AX=2000 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL NZ NA PO NC
13A5:0102 0000 ADD [BX+SI],AL DS:1000=00
- Komutu işlettiğimiz zaman ax ve bx degerlerinin değiştiğini görürüz.
3)
13A5:0110 mov ax,[0300]
13A5:0113 xchg [0400],ax
13A5:0117 mov [0300],ax
Komut satırı yazılarak DS:300 ve DS:400 hafıza yerlerindeki 16 bitlik değerlerinin yerlerini değiştirebiliriz.
4)
-a 100
13A5:0100 ADD AX,1
13A5:0103 INC AX
13A5:0104
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 050100 ADD AX,0001
-t
AX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0103 NV UP EI PL NZ NA PO NC
13A5:0103 40 INC AX
-t
AX=0002 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0104 NV UP EI PL NZ NA PO NC
13A5:0104 0000 ADD [BX+SI],AL DS:0000=CD
- İki debug komutuda aynı işlemi yapmaktadır. Aralarındaki fark add ax,1 komutu 3 byte lık yer kaplamaktadır, inc ax ise 1 byte lık yer kaplamaktadır.
5) Lea ax,[bx] komutu bx’in değerini ax’e atmaktadır.
Mov ax,[bx] komutu ise bx değerinin data segmentteki offset değerinin gösterdiği
degeri ax’e atmaktadır. Bu iki komutta hafızada 2 byte lık yer kaplamaktadır
6)
-r ax
AX 0000
:2
-r bx
BX 0000
:3 -a100
13A5:0100 ADC AX,BX
13A5:0102
-r
AX=0002 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 11D8 ADC AX,BX
-t
AX=0005 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL NZ NA PE NC
13A5:0102 0000 ADD [BX+SI],AL DS:0003=9F
-
- Carry flag “0” iken “adc” komutu ax ve bx değerlerinin toplamını ax yazmacına atar.
-r ax
AX 0000
:2
-r bx
BX 0000
:3 -a100
13A5:0100 ADC AX,BX
13A5:0102
-r
AX=0002 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO CY
13A5:0100 11D8 ADC AX,BX
-t
AX=0006 BX=0003 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL NZ NA PE NC
13A5:0102 0000 ADD [BX+SI],AL DS:0003=9F
-
Carry flag “1” oldugu zaman “adc” komutu ax ve bx değerlerinin toplamına 1 ekleyip ax yazmacına atıyor.
7) NEG BX komutu bx değerinin 2 ye tümleyenini alıyor.
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 0000 ADD [BX+SI],AL DS:0000=CD
-r ax
AX 0000
:0100
-r bx
BX 0000
:0001 -a100
13A5:0100 NEG BX
13A5:0102
-r
AX=0100 BX=0001 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 F7DB NEG BX
-t
AX=0100 BX=FFFF CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI NG NZ AC PE CY
13A5:0102 0000 ADD [BX+SI],AL DS:FFFF=00
-
8)
A=DS:500 B=DS:501 C=DS:502 D=DS:503 Z=DS:504
Program komutları
Mov bx.[0502]
Sub bx,[0503]
Mov ax,[0501]
Mul bx
Add ax,[0501]
Mov [0504],ax
9)
MUL komutunda AL ile CL değerlerini çarpıp AX registera atıyor, IMUL komutunda
ise iki değerin çarpımının 2 ‘ye tümleyenini alıp AX registera atıyor.
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 A070 MOV AL,20
AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL NZ NA PO NC
13A5:0102 B180 MOV CL,80
AX=0020 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0104 NV UP EI PL NZ NA PO NC
13A5:0104 F6E1 MUL CL
AX=1000 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0106 OV UP EI PL ZR NA PE CY
13A5:0106 0000 ADD [BX+SI],AL DS:0000=CD
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 A070 MOV AL,20
AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL NZ NA PO NC
13A5:0102 B180 MOV CL,80
AX=0020 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0104 NV UP EI PL NZ NA PO NC
13A5:0104 F6E9 IMUL CL
AX=F000 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0106 OV UP EI PL ZR NA PE CY
13A5:0106 0000 ADD [BX+SI],AL DS:0000=CD
10)
a) -a100
13A5:0100 sar ax,1
13A5:0102 sar bx,1
13A5:0104
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 D1F8 SAR AX,1
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL ZR NA PE NC
13A5:0102 D1FB SAR BX,1
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0104 NV UP EI PL ZR NA PE NC
13A5:0104 0000 ADD [BX+SI],AL DS:0000=CD
-
b)
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PO NC
13A5:0100 D1E0 SHL AX,1
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL ZR NA PE NC
13A5:0102 D1E3 SHL BX,1
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0104 NV UP EI PL ZR NA PE NC
13A5:0104 0000 ADD [BX+SI],AL DS:0000=CD
-
c)
-r
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI NG NZ AC PO CY
13A5:0100 39D8 CMP AX,BX
-t
AX=0020 BX=0020 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL ZR NA PE NC
13A5:0102 D1E3 SHL BX,1
-r
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PE NC
13A5:0100 39D8 CMP AX,BX
-t
AX=0080 BX=0082 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI NG NZ AC PO CY
13A5:0102 D1E3 SHL BX,1
d)
-r
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL NZ NA PE NC
13A5:0100 40 INC AX
-t
AX=0041 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0101 NV UP EI PL NZ NA PE NC
13A5:0101 39D8 CMP AX,BX
-t
AX=0041 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0103 NV UP EI PL ZR NA PE NC
13A5:0103 E32B JCXZ 0130
e)
-r
AX=0040 BX=0041 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI PL ZR NA PE NC
13A5:0100 87C3 XCHG AX,BX
-t
AX=0041 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI PL ZR NA PE NC
13A5:0102 39D8 CMP AX,BX
-t
AX=0041 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0104 NV UP EI PL NZ NA PO NC
13A5:0104 2B1E0305 SUB BX,[0503] DS:0503=0303
2b) b.
-r
AX=FFF0 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0100 NV UP EI NG NZ NA PO NC
13A5:0100 D1F8 SAR AX,1
-t
AX=FFF8 BX=0040 CX=0000 DX=000C SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0102 NV UP EI NG NZ NA PO NC
13A5:0102 39D8 CMP AX,BX
332 öç 4
1) Sıcaklık değerlerinin en küçüğünü bulan program;
.MODEL SMALL
.STACK 64
.DATA
DATA DB +13,-10,+19,+14,-18,-9,+12,-19,+16
SONUC DB
.CODE
MAIN PROG FAR -programın başlama noktası
MOV AX,@DATA -data segmentin adresi yükleniyor
MOV DS,AX
MOV DI,OFFSET DATA
MOV CX,8 -döngü işlemleri CX yazmacı üzerinde gerçekleştirilir
AGAIN: MOV AL,[DI]
INC DI -indisi arttırıyor
CMP AL,[DI] -karşılaştırma yapılıyor
JLE NEXT -şu andaki değer bir önceki değerden eşit ya da küçük mü
MOV AL,[DI]
NEXT : LOOP AGAIN -CX=0 olduğunda döngüden çıkılır
MOV SONUC,AL -en düşük sıcaklık değeri aktarıldı
MOV AH,4CH
INT 21 -DOS’a dönüş
MAIN ENDP
END MAIN -programdan çıkış
2) Öğrencinin notları arasında en büyüğünü bulan program;
.MODEL SMALL
.STACK 64
.DATA
DATA DB 69,87,96,45,75
SONUC DB
.CODE
MAIN PROG FAR
MOV AX,@DATA
MOV DS,AX
MOV DI,OFFSET DATA
MOV CX,5
MOV AX,00
AGAIN: CMP AL,[DI]
JA NEXT ( ZF=0 ve CF=0 durumunu sağlaması gerekir.)
MOV AL,[DI]
INC DI
NEXT : LOOP AGAIN
MOV SONUC,AL
MOV AH,4CH
INT 21
MAIN ENDP
END MAIN
öç-3 332
1) İki yazmaç içerisindeki değerleri değiştirmeyi, tablo halinde temsili ifadelerle (* ve !)
gösterirsek;
Komut AX BX CX Açıklama
İLK DURUM * !
MOV CX , AX * ! * AX’deki değer CX’e atıldı
MOV AX , BX ! ! * BX’deki değer AX’e atıldı
MOV BX , CX ! * ! CX’deki değer BX’e atıldı
CX yazmacı burada geçici bellek birimi olarak kullanılmıştır.
2) İlk soruda yaptığımız işlemi tek bir komut ile şu şekilde gerçekleştirebiliriz;
XCHG AX , BX
3) Tablo halinde temsili ifadelerle (* ve !) gösterirsek, bu yer değiştirme şu kod ile yapılabilir;
Komut DS:300 DS:400 AX Açıklama
İLK DURUM * !
MOV AX , [300] * ! * 300’ün gösterdiği yerdeki değer AX’e atıldı
XCHG AX , [400] * * ! AX ile 400’ün gösterdiği yerdeki değer değiştirildi
MOV [300] , AX ! * ! AX’in değeri, 300’ün gösterdiği yere atıldı
Sonuçta görüldüğü gibi, 300 ve 400’ün gösterdiği yerdeki değerler değiştirilmiş oldu.
4) ADD AX,1 ve INC AX komutlarının ikisi de AX yazmacının değerini 1 arttırır. ADD
AX,1 komutu hafızada 3 byte yer kaplarken, INC AX komutu 1 byte yer kaplar. Büyük bir programda, INC komutu belleği daha az işgal eder. Buna ek olarak, INC komutu bu işlemi daha hızlı sürede gerçekleştirir. Bu yüzden INC komutu daha avantajlıdır.
5) LEA (load effective address) komutu, göreceli konum adreslerini hedef operanda
yükleyemeyi sağlar. LEA AX , [BX] komutunu kullandığımızda, BX yazmacının içeriği AX yazmacına kopyalanır. Yani, MOV AX, BX komutuyla aynıdır. MOV AX , [BX] komutunu kullandığımız zaman ise, DS: BX hafızasında bulunan veri AX yazmacının içerisine aktarılır.
6) ADC (Add With Carry) komutunda toplama işlemi yapılırken Carry de hesaba katılır ve
eklenir. ADC AX, BX komutuna göre, AX ve BX yazmaçlarının içindeki değerler ve Carry Flag’deki değer de toplanarak AX yazmacına atanır.
a) Carry Flag 1 ise, AX + BX + 1 işleminin sonucu AX’e yazılır. b) Carry Flag 0 ise, AX + BX + 0 işleminin sonucu AX’e yazılır.
7) NEG komutu ile sayının ikilik komplementi alınır. Bu arada programda bayrakların değeri
de değişir.
PL → NG : Sayının işaretinin ilk durumda pozitif, sonra negatif olduğunu gösterir. NA →AC : Not Auxiliary Carry durumdan, Auxilary Carry durumuna geçildiğini gösterir. PO → PE : Parity bit’in 0 iken 1 olduğunu gösterir. NC → CY : Carry yok iken, Carry olan duruma geçildiğini gösterir.
8) Z = A + B * ( C – D) işleminin gerçekleşmesi için;
MOV BL, [ 501]
MOV CL, [502]
MOV DL, [ 503]
SUB CL, DL
MOV AL, CL
MUL BL
ADD AL, [500]
MOV [504], AL
Bu kodlar ile, önce yazmaçlarının içerisine bilgiler atanmıştır. SUB CL, DL komutu ile CL yazmacının içeriği CL –DL işleminin sonucu oldu. MUL BL komutu ile AX = AL * BL işlemi gerçekleştirilir.
9) MUL komutu işaretsiz sayıların , IMUL komutu ise işaretli sayıların çarpılmasında
kullanılır.
AL = 20H ........ 32 ( Decimal )
CL = 80H ....... 128 ( Decimal )
MUL CL ....... → AX = 1000H değerine sahip olur.
Çünkü AL * CL = 4096 ( Decimal ) değerini verecektir.
4096 = 1000H ‘ tir
IMUL CL ..... → AX =F000 değerine sahip olur .
Çünkü IMUL komutu işaretli sayılar üzerinde çarpım yapar. MUL komutu sonucu
ortaya çıkan 1000h = 0001 0000 0000 0000 ikili değeri IMUL komutu kullanımı ile işaretli
sayı olarak algılanır. Bundan dolayı 1111 0000 0000 0000 = F000H değerine sahip olur.
Debug ortamında bayrakların durumuna bakarsak;
MUL CL sonucu ;
-a 100
0C7F:0100 mul cl
0C7F:0102
-t
AX=1000 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C7F ES=0C7F SS=0C7F CS=0C7F IP=0102 OV UP EI PL NZ NA PO CY
0C7F:0102 04DA ADD AL,DA
IMUL CL sonucu ;
-a 100
0C7F:0100 IMUL CL
0C7F:0102
-t
AX=F000 BX=0000 CX=0080 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C7F ES=0C7F SS=0C7F CS=0C7F IP=0102 OV UP EI PL NZ NA PO CY
0C7F:0102 04DA ADD AL,DA
10) a) AX ve BX yazmaçlarında saklanan değerleri sadece kaydırma işlevini kullanarak 2 ile
bölme ;
-A 100
0C7F:0100 SHR AX , 1
0C7F:0102 SHR BX , 1
0C7F:0104
-T
AX=0020 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C7F ES=0C7F SS=0C7F CS=0C7F IP=0102 NV UP EI PL NZ NA PO NC
0C7F:0102 D1EB SHR BX,1
-T
AX=0020 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C7F ES=0C7F SS=0C7F CS=0C7F IP=0104 NV UP EI PL NZ NA PO CY
0C7F:0104 020B ADD CL,[BP+DI] SS:0000=CD
Bayrak durumlarına baktığımız zaman SHR BX , 1 komutu ile elde yok durumundan (NC), elde var durumuna (CY) geçmiştir.
AX ve BX yazmaçlarında saklanan değerleri sadece kaydırma işlevini kullanarak 2 ile çarpma ;
-a
0C7F:0104 SHL AX , 1
0C7F:0106 SHL BX , 1
0C7F:0108
-T
AX=0040 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C7F ES=0C7F SS=0C7F CS=0C7F IP=0106 NV UP EI PL NZ NA PO NC
0C7F:0106 D1E3 SHL BX,1
-T
AX=0040 BX=0040 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C7F ES=0C7F SS=0C7F CS=0C7F IP=0108 NV UP EI PL NZ NA PO NC
0C7F:0108 022604F0 ADD AH,[F004] DS:F004=00
Yazmaç içerikleri AX = BX = 0040H olurken, bayrak durumu tekrar elde yok (NC) durumuna geçerken, sıfır bayrağı değişmemiştir.
AX yazmacının içeriğini 1 artırıp, AX ve BX yazmaçlarının içeriklerini ve bayrak durumlarını kontrol edelim ;
-a
0C7F:0108 INC AX
0C7F:0109
-T
AX=0041 BX=0040 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C7F ES=0C7F SS=0C7F CS=0C7F IP=0109 NV UP EI PL NZ NA PE NC
0C7F:0109 26 ES:
0C7F:010A 04F0 ADD AL,F0
AX yazmacının içeriği 1 arttı, BX yazmacının içeriği ve bayrak durumları değişmemiştir.
AX ve BX yazmaçlarının içeriğini birbiriyle değiştirirsek ;
-a
0C7F:0109 XCHG AX , BX
0C7F:010B
-T
AX=0040 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C7F ES=0C7F SS=0C7F CS=0C7F IP=010B NV UP EI PL NZ NA PE NC
0C7F:010B F0 LOCK
0C7F:010C 0204 ADD AL,[SI] DS:0000=CD
AX ve BX yazmaçlarının içerikleri değişti, bayrak durumlarında bir değişiklik olmamıştır.
b) 16 (decimal) → 0000 0000 0001 0000 (binary) → 0010 (hex)
O halde -16 (decimal) → 1111 1111 1111 0000 → FFF0 (hex) olur.
-A
0C7F:010B SHR AX , 1
0C7F:010D
-T
AX=7FF8 BX=0041 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C7F ES=0C7F SS=0C7F CS=0C7F IP=010D OV UP EI PL NZ NA PO NC
0C7F:010D 0404 ADD AL,04
Bu sayede AX yazmacının içeriğine ikiye bölmüş olduk.
calisma-1232
;THE FORM OF AN ASSEMBLY LANGUAGE PROGRAM
; USING SIMPLIFIED SEGMENT DEFINITION
.MODEL SMALL
.STACK 64
.DATA
DATA DB 69,87,96,45,75
SONUC DB ?
.CODE
MAIN PROC FAR ;this is the program entry point
MOV AX,@DATA ;load the data segment address
MOV DS,AX ;assign value to DS
MOV DI,OFFSET DATA
MOV CX,5
MOV AX,00
AGAIN: CMP AL,[DI]
JA NEXT
MOV AL,[DI]
INC DI
NEXT: LOOP AGAIN
MOV SONUC,AL
MOV AH,4CH ;set up to
INT 21H ;return to DOS
MAIN ENDP
END MAIN ;this is the program exit point
calisma-1260
UMUT [kişisel bilgi çıkarıldı] SAĞDIÇOĞLU
[kişisel bilgi çıkarıldı]
DENEY 3 (28.03.2011)
Microsoft Windows XP [Sürüm 5.1.2600]
(C) Telif Hakkı 1985-2001 Microsoft Corp.
C:\calisma>debug
1)
-r ax
AX 0000
:100
-r bx
BX 0000
:150
-a 100
1524:0100 mov cx,ax
1524:0102 mov ax,bx
1524:0104 mov bx,cx
1524:0106
-t
AX=0100 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0102 NV UP EI PL NZ NA PO NC
1524:0102 89D8 MOV AX,BX
-t
AX=0150 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0104 NV UP EI PL NZ NA PO NC
1524:0104 89CB MOV BX,CX
-t
AX=0150 BX=0100 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0106 NV UP EI PL NZ NA PO NC
1524:0106 0000 ADD [BX+SI],AL DS:0100=89
---------------------------------------------------------------------------------
AX ve BX yazmaçlarının içerikleri değiştirildi
---------------------------------------------------------------------------------
2)
-r ax
AX 0150
:
-r bx
BX 0100
:
-a 106
1524:0106 xchg ax,bx
1524:0108
-t
AX=0100 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0108 NV UP EI PL NZ NA PO NC
1524:0108 0000 ADD [BX+SI],AL DS:0150=00
---------------------------------------------------------------------------------
AX ve BX yazmaç değerlerini xchng komutuyla gerçekleştirdik
---------------------------------------------------------------------------------
3)
-a 108
1524:0108 mov ax,[300]
1524:010B xchg ax,[400]
1524:010F mov[300],ax
1524:0112
-t
AX=0000 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=010B NV UP EI PL NZ NA PO NC
1524:010B 87060004 XCHG AX,[0400] DS:0400=0000
-t
AX=0000 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=010F NV UP EI PL NZ NA PO NC
1524:010F A30003 MOV [0300],AX DS:0300=0000
-t
AX=0000 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0112 NV UP EI PL NZ NA PO NC
1524:0112 0000 ADD [BX+SI],AL DS:0150=00
---------------------------------------------------------------------------------
[300] ile [400]'deki değerlere yer değiştirme yapıldı
---------------------------------------------------------------------------------
4)
-a 112
1524:0112 add ax,1
1524:0115 inc ax
1524:0116
-t
AX=0001 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0115 NV UP EI PL NZ NA PO NC
1524:0115 40 INC AX
-t
AX=0002 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0116 NV UP EI PL NZ NA PO NC
1524:0116 0000 ADD [BX+SI],AL DS:0150=00
5)
-a 116
1524:0116 lea ax,bx
^ Hatası
1524:0116 lea ax,[bx]
1524:0118
-t
AX=0150 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0118 NV UP EI PL NZ NA PO NC
1524:0118 0000 ADD [BX+SI],AL DS:0150=00
------------------------------------------------------------------------------
İlk olarak [] olmadığı için hata verdi çünkü notasyonu parantezli şekilde
BX yazmacının değeri AX'e yazıldı. (MOV komutu gibi)
------------------------------------------------------------------------------
6)
-a 118
1524:0118 adc ax,bx
1524:011A
-t
AX=02A0 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=011A NV UP EI PL NZ NA PE NC
1524:011A 0000 ADD [BX+SI],AL DS:0150=00
-r f
NV UP EI PL NZ NA PE NC -cy
-a 011A
1524:011A adc ax,bx
1524:011C
-t
AX=03F1 BX=0150 CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=011C NV UP EI PL NZ NA PO NC
1524:011C 3400 XOR AL,00
------------------------------------------------------------------------------
Carry yokken ve Carry varken 2 farklı şekilde yaptım
------------------------------------------------------------------------------
7)
-r bx
BX 0150
:0045
-r f
NV UP EI PL NZ NA PO NC -ng
-a 011C
1524:011C neg bx
1524:011E
-t
AX=03F1 BX=FFBB CX=0100 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=011E NV UP EI NG NZ AC PE CY
1524:011E 1315 ADC DX,[DI] DS:0000=20CD
--------------------------------------------------------------------------------
Neg komutu sayının ikilik komplementini alır.
a.BX'in yeni değeri FFBB
b.İşaret bayrağı negatif kaldı
--------------------------------------------------------------------------------
8)
-r ax
AX 03F1
:1111
-r bx
BX FFBB
:2222
-r cx
CX 0100
:3333
-r dx
DX 0000
:4444
-a 011E
1524:011E MOV BL,[501]
1524:0122 MOV CL,[502]
1524:0126 MOV DL,[503]
1524:012A SUB CL,DL
1524:012C MOV AL,CL
1524:012E MUL BL
1524:0130 ADD AL,[500]
1524:0134 MOV [504],AL
1524:0137
-t
AX=1111 BX=2200 CX=3333 DX=4444 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0122 NV UP EI NG NZ AC PE CY
1524:0122 8A0E0205 MOV CL,[0502] DS:0502=00
-t
AX=1111 BX=2200 CX=3300 DX=4444 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0126 NV UP EI NG NZ AC PE CY
1524:0126 8A160305 MOV DL,[0503] DS:0503=00
-t
AX=1111 BX=2200 CX=3300 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=012A NV UP EI NG NZ AC PE CY
1524:012A 28D1 SUB CL,DL
-t
AX=1111 BX=2200 CX=3300 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=012C NV UP EI PL ZR NA PE NC
1524:012C 88C8 MOV AL,CL
-t
AX=1100 BX=2200 CX=3300 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=012E NV UP EI PL ZR NA PE NC
1524:012E F6E3 MUL BL
-t
AX=0000 BX=2200 CX=3300 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0130 NV UP EI PL ZR NA PE NC
1524:0130 02060005 ADD AL,[0500] DS:0500=00
-t
AX=0000 BX=2200 CX=3300 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0134 NV UP EI PL ZR NA PE NC
1524:0134 A20405 MOV [0504],AL DS:0504=00
-t
AX=0000 BX=2200 CX=3300 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0137 NV UP EI PL ZR NA PE NC
1524:0137 0000 ADD [BX+SI],AL DS:2200=00
------------------------------------------------------------------------------
Bizden istenilen işlemi yaptım
------------------------------------------------------------------------------
9)
-r ax
AX 0000
:0020
-r cx
CX 3300
:0080
-a 0137
1524:0137 mul cl
1524:0139
-t
AX=1000 BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0139 OV UP EI PL ZR NA PE CY
1524:0139 0000 ADD [BX+SI],AL DS:2200=00
-r ax
AX 1000
:0020
-r cx
CX 0080
:0080
-a 0139
1524:0139 imul cl
1524:013B
-t
AX=F000 BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=013B OV UP EI PL ZR NA PE CY
1524:013B 0000 ADD [BX+SI],AL DS:2200=00
--------------------------------------------------------------------------------
MUL komutu işaretsiz sayıların çarpımında, IMUL komutu ise işaretli sayıların
çarpımında kullanılır.
--------------------------------------------------------------------------------
10)
-a 013B
1524:013B MOV AL,FF
1524:013D ADD AL,1
1524:013F MOV AL,7F
1524:0141 ADD AL,1
1524:0143 MOV AL,80
1524:0145 ADD AL,1
1524:0147 MOV AL,FF
1524:0149 INC AL
1524:014B MOV AL,80
1524:014D INC AL
1524:014F
-t
AX=F0FF BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=013D OV UP EI PL ZR NA PE CY
1524:013D 0401 ADD AL,01
-t
AX=F000 BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=013F NV UP EI PL ZR AC PE CY
1524:013F B07F MOV AL,7F
------------------------------------------------------------------------------
ov --> NV
------------------------------------------------------------------------------
-t
AX=F07F BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0141 NV UP EI PL ZR AC PE CY
1524:0141 0401 ADD AL,01
-t
AX=F080 BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0143 OV UP EI NG NZ AC PO NC
1524:0143 B080 MOV AL,80
-----------------------------------------------------------------------------
NV --> OV
PL --> NG
ZR --> NZ
CY --> NC
-----------------------------------------------------------------------------
-t
AX=F080 BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0145 OV UP EI NG NZ AC PO NC
1524:0145 0401 ADD AL,01
-t
AX=F081 BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0147 NV UP EI NG NZ NA PE NC
1524:0147 B0FF MOV AL,FF
-----------------------------------------------------------------------------
OV --> NV
-----------------------------------------------------------------------------
-t
AX=F0FF BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0149 NV UP EI NG NZ NA PE NC
1524:0149 FEC0 INC AL
-t
AX=F000 BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=014B NV UP EI PL ZR AC PE NC
1524:014B B080 MOV AL,80
-----------------------------------------------------------------------------
NZ --> ZR
NG --> PL
-----------------------------------------------------------------------------
-t
AX=F080 BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=014D NV UP EI PL ZR AC PE NC
1524:014D FEC0 INC AL
-t
AX=F081 BX=2200 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=014F NV UP EI NG NZ NA PE NC
1524:014F 0000 ADD [BX+SI],AL DS:2200=00
------------------------------------------------------------------------------
PL --> NG
------------------------------------------------------------------------------
11)
-r ax
AX F081
:AA77
-r bx
BX 2200
:C3C3
-a 014F
1524:014F AND AX,BX
1524:0151 NOT AX
1524:0153 AND AL,BH
1524:0155 NOT BX
1524:0157 OR BX,AX
1524:0159 NOT AH
1524:015B OR BL,AH
1524:015D XOR AX,BX
1524:015F NOT BX
1524:0161 XOR BH,AH
1524:0163
-t
AX=8243 BX=C3C3 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0151 NV UP EI NG NZ NA PO NC
1524:0151 F7D0 NOT AX
-t
AX=7DBC BX=C3C3 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0153 NV UP EI NG NZ NA PO NC
1524:0153 20F8 AND AL,BH
-t
AX=7D80 BX=C3C3 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0155 NV UP EI NG NZ NA PO NC
1524:0155 F7D3 NOT BX
-t
AX=7D80 BX=3C3C CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0157 NV UP EI NG NZ NA PO NC
1524:0157 09C3 OR BX,AX
-t
AX=7D80 BX=7DBC CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0159 NV UP EI PL NZ NA PO NC
1524:0159 F6D4 NOT AH
-t
AX=8280 BX=7DBC CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=015B NV UP EI PL NZ NA PO NC
1524:015B 08E3 OR BL,AH
-t
AX=8280 BX=7DBE CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=015D NV UP EI NG NZ NA PE NC
1524:015D 31D8 XOR AX,BX
-t
AX=FF3E BX=7DBE CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=015F NV UP EI NG NZ NA PO NC
1524:015F F7D3 NOT BX
-t
AX=FF3E BX=8241 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0161 NV UP EI NG NZ NA PO NC
1524:0161 30E7 XOR BH,AH
-t
AX=FF3E BX=7D41 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0163 NV UP EI PL NZ NA PE NC
1524:0163 0000 ADD [BX+SI],AL DS:7D41=00
12)
-r ax
AX FF3E
:0034
-a 0163
1524:0163 AND AX,0F0F
1524:0166
-T
AX=0004 BX=7D41 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0166 NV UP EI PL NZ NA PO NC
1524:0166 0000 ADD [BX+SI],AL DS:7D41=00
-r ax
AX 0004
:3438
-a 0166
1524:0166 AND AX,C4C8
1524:0169
-t
AX=0408 BX=7D41 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0169 NV UP EI PL NZ NA PO NC
1524:0169 0000 ADD [BX+SI],AL DS:7D41=00
-r bx
BX 7D41
:3438
-a 0169
1524:0169 XOR BX,3740
1524:016D
-T
AX=0408 BX=0378 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=016D NV UP EI PL NZ NA PE NC
1524:016D 0000 ADD [BX+SI],AL DS:0378=00
-r ax
AX 0408
:0038
-a 0171
1524:0171 AAA
1524:0172
-t
AX=0008 BX=3438 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0172 NV UP EI PL NZ NA PO NC
1524:0172 0000 ADD [BX+SI],AL DS:3438=08
13)
-r ax
AX 0008
:40
-r bx
BX 3438
:41
-A 0172
1524:0172 SHR AX,1
1524:0174 SHR BX,1
1524:0176 SHL AX,1
1524:0178 SHL BX,1
1524:017A INC AX
1524:017B XCHG AX,BX
1524:017D
-t
AX=0020 BX=0041 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0174 NV UP EI PL NZ NA PO NC
1524:0174 D1EB SHR BX,1
-t
AX=0020 BX=0020 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0176 NV UP EI PL NZ NA PO CY
1524:0176 D1E0 SHL AX,1
-t
AX=0040 BX=0020 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0178 NV UP EI PL NZ NA PO NC
1524:0178 D1E3 SHL BX,1
-t
AX=0040 BX=0040 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=017A NV UP EI PL NZ NA PO NC
1524:017A 40 INC AX
-t
AX=0041 BX=0040 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=017B NV UP EI PL NZ NA PE NC
1524:017B 87C3 XCHG AX,BX
-t
AX=0040 BX=0041 CX=0080 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=017D NV UP EI PL NZ NA PE NC
1524:017D 0000 ADD [BX+SI],AL DS:0041=00
14)
-r ax
AX 0040
:1234
-r cx
CX 0080
:5678
-a 017D
1524:017D ror ax,cl
1524:017F
-t
AX=3412 BX=0041 CX=5678 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=017F NV UP EI PL NZ NA PE NC
1524:017F 0000 ADD [BX+SI],AL DS:0041=00
-R AX
AX FFAE
:1234
-R CX
CX 5678
:
-a 0182
1524:0182 rcr ax,cl
1524:0184
-t
AX=D024 BX=0048 CX=5678 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0184 NV UP EI NG NZ NA PO NC
1524:0184 0000 ADD [BX+SI],AL DS:0048=00
15)
-r ax
AX 3412
:0066
-r bx
BX 0041
:0048
-a 017F
1524:017F add al,bl
1524:0181
-t
AX=00AE BX=0048 CX=5678 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0181 OV UP EI NG NZ NA PO NC
1524:0181 0000 ADD [BX+SI],AL DS:0048=00
-a 0181
1524:0181 cbw
1524:0182
-t
AX=FFAE BX=0048 CX=5678 DX=4400 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1524 ES=1524 SS=1524 CS=1524 IP=0182 OV UP EI NG NZ NA PO NC
1524:0182 0000 ADD [BX+SI],AL DS:0048=00
c3
.MODEL SMALL
.STACK 64 (?)
; DATA SEGMENT
.DATA
CR EQU 0DH
LF EQU 0AH
STR1 DB 100, ?, 100 DUP (0)
ORG 100
STR2 DB CR, LF, 100 DUP (?), '$'
MSG DB 'CUMLEYI YAZ..:$'
ORG 22H
MSG2 DB CR, LF, 'YENI CUMLE..:$'
ORG 20H
.CODE
MAIN PROC FAR
MOV AX, @DATA
MOV DS, AX
XOR AX,AX
CALL CLRSCR
CALL CURSOR
MOV DX, OFFSET MSG
CALL DISPLAYSTR
MOV DX, OFFSET STR1
CALL INPUT
MOV BX, OFFSET STR1
CALL FNDSPC
MOV AX, OFFSET STR1
ADD AX, DX
MOV SI, AX
MOV AX, OFFSET STR2
MOV DI, AX
CALL REVERT
MOV DX, OFFSET MSG2
CALL DISPLAYSTR
MOV DX, OFFSET STR2
CALL DISPLAYSTR
MOV AH, 4CH
INT 21H
JMP tekrar
MAIN ENDP
CLRSCR PROC
MOV AX, 0600H
MOV BH, 07H
MOV CX, 0000H
MOV DX, 184FH
INT 10H
RET
CLRSCR ENDP
CURSOR PROC
MOV AH, 02H
MOV BH, 00H
MOV DL, 00H
MOV DH, 00H
INT 10H
RET
CURSOR ENDP
INPUT PROC
MOV AH,0AH
INT 21H
RET
INPUT ENDP
FNDSPC PROC
;BX= OFFSET STR*******************************
XOR DX,DX
SPACE: MOV DX, BX
SEARCH: MOV AL,[BX]
INC BX
CMP AL, 20H
JE SPACE
CMP AL,0DH
JE LOST
JMP SEARCH
LOST: RET
FNDSPC ENDP
REVERT PROC
MOV AX, BX
SUB AX, DX
MOV CX, AX
DEC CX
TURN: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
LOOP TURN
MOV AL, 20H
MOV [DI], AL
INC DI
MOV AX, OFFSET STR1
INC AX
INC AX
MOV SI, AX
COPY: MOV AL, [SI]
MOV [DI], AL
INC DI
INC SI
CMP SI, DX
JC COPY
RET
REVERT ENDP
DISPLAYSTR PROC
MOV AH, 09H
INT 21H
RET
DISPLAYSTR ENDP
END MAIN
eem332deney3
-a
1517:0107 ds: [0200],ax
^ Hatası
1517:0108
-a 107
1517:0107 ds: mov [0200],ax
1517:010B mov ch,[0201]
1517:010F es: mov [0220],ax
1517:0113 mov sı,220
^ Hatası
1517:0113 mov SI,0220
1517:0116 mov ah,[SI]
1517:0118 mov bp,0220
1517:011B ds: mov ax,5678
1517:011F mov bx,0200
1517:0122 ds: mov [bx+2] ax
^ Hatası
1517:0123
-a 0122
1517:0122 ds: mov [bx+2],ax
1517:0126 mov ax,90AB
1517:0129 mov dı,0220
^ Hatası
1517:0129 mov DI,0220
1517:012C
1517:0135 mov cl [bx][SI]
^ Hatası
1517:0135 mov cl[bx][SI]
^ Hatası
1517:0135 mov cl,[bx][SI]
1517:0137 mov SI,100
1517:013A
-a 012C
1517:012C mov [DI]-1c,ax
1517:012F mov bx,100
1517:0132 mov SI,104
1517:0135 mov cl,[bx][SI]
1517:0137 mov SI,0100
1517:013A mov ch,[bx][SI]+5
1517:013D
-r ip
IP 0100
:t
^ Hatası
-t
AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0220 SI=0100 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0103 NV UP EI NG NZ NA PE NC
1517:0103 89C3 MOV BX,AX
AX=1234 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=0105 NV UP EI PL NZ NA PO NC
1517:0105 88D9 MOV CL,BL
-t
AX=1234 BX=1234 CX=0034 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=0107 NV UP EI PL NZ NA PO NC
1517:0107 3E DS:
1517:0108 A30002 MOV [0200],AX DS:0200=0000
-t
AX=1234 BX=1234 CX=0034 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=010B NV UP EI PL NZ NA PO NC
1517:010B 8A2E0102 MOV CH,[0201] DS:0201=12
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=010F NV UP EI PL NZ NA PO NC
1517:010F 26 ES:
1517:0110 A32002 MOV [0220],AX ES:0220=0000
-
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=0113 NV UP EI PL NZ NA PO NC
1517:0113 BE2002 MOV SI,0220
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0220 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=0116 NV UP EI PL NZ NA PO NC
1517:0116 8A24 MOV AH,[SI] DS:0220=34
-t
AX=3434 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0220 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=0118 NV UP EI PL NZ NA PO NC
1517:0118 BD2002 MOV BP,0220
-t
AX=3434 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=011B NV UP EI PL NZ NA PO NC
1517:011B 3E DS:
1517:011C B87856 MOV AX,5678
-
AX=5678 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=011F NV UP EI PL NZ NA PO NC
1517:011F BB0002 MOV BX,0200
-t
AX=5678 BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=0122 NV UP EI PL NZ NA PO NC
1517:0122 3E DS:
1517:0123 894702 MOV [BX+02],AX DS:0202=0000
-t
AX=5678 BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=0126 NV UP EI PL NZ NA PO NC
1517:0126 B8AB90 MOV AX,90AB
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=1517 ES=1517 SS=1517 CS=1517 IP=0129 NV UP EI PL NZ NA PO NC
1517:0129 BF2002 MOV DI,0220
-
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=012C NV UP EI PL NZ NA PO NC
1517:012C 8945E4 MOV [DI-1C],AX DS:0204=0000
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=012F NV UP EI PL NZ NA PO NC
1517:012F BB0001 MOV BX,0100
-t
AX=90AB BX=0100 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=0132 NV UP EI PL NZ NA PO NC
1517:0132 BE0401 MOV SI,0104
-
AX=90AB BX=0100 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0104 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=0135 NV UP EI PL NZ NA PO NC
1517:0135 8A08 MOV CL,[BX+SI] DS:0204=AB
-t
AX=90AB BX=0100 CX=12AB DX=0000 SP=FFEE BP=0220 SI=0104 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=0137 NV UP EI PL NZ NA PO NC
1517:0137 BE0001 MOV SI,0100
-t
AX=90AB BX=0100 CX=12AB DX=0000 SP=FFEE BP=0220 SI=0100 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=013A NV UP EI PL NZ NA PO NC
1517:013A 8A6805 MOV CH,[BX+SI+05] DS:0205=90
-
AX=90AB BX=0100 CX=90AB DX=0000 SP=FFEE BP=0220 SI=0100 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=013D NV UP EI PL NZ NA PO NC
1517:013D 0000 ADD [BX+SI],AL DS:0200=34
-t
eem332trace
AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0220 SI=0100 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0103 NV UP EI NG NZ NA PE NC
1517:0103 89C3 MOV BX,AX
-t
AX=1234 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0220 SI=0100 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0105 NV UP EI NG NZ NA PE NC
1517:0105 88D9 MOV CL,BL
-t
AX=1234 BX=1234 CX=0034 DX=0000 SP=FFEE BP=0220 SI=0100 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0107 NV UP EI NG NZ NA PE NC
1517:0107 3E DS:
1517:0108 A30002 MOV [0200],AX DS:0200=12FF
-t
AX=1234 BX=1234 CX=0034 DX=0000 SP=FFEE BP=0220 SI=0100 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=010B NV UP EI NG NZ NA PE NC
1517:010B 8A2E0102 MOV CH,[0201] DS:0201=12
-
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0100 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=010F NV UP EI NG NZ NA PE NC
1517:010F 26 ES:
1517:0110 A32002 MOV [0220],AX ES:0220=90AB
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0100 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0113 NV UP EI NG NZ NA PE NC
1517:0113 BE2002 MOV SI,0220
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0116 NV UP EI NG NZ NA PE NC
1517:0116 8A24 MOV AH,[SI] DS:0220=34
-t
AX=3434 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0118 NV UP EI NG NZ NA PE NC
1517:0118 BD2002 MOV BP,0220
-
-t
AX=3434 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=011B NV UP EI NG NZ NA PE NC
1517:011B 3E DS:
1517:011C B87856 MOV AX,5678
-t
AX=5678 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=011F NV UP EI NG NZ NA PE NC
1517:011F BB0002 MOV BX,0200
-t
AX=5678 BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0122 NV UP EI NG NZ NA PE NC
1517:0122 3E DS:
1517:0123 894702 MOV [BX+02],AX DS:0202=5678
-t
AX=5678 BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0126 NV UP EI NG NZ NA PE NC
1517:0126 B8AB90 MOV AX,90AB
-
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=02B2
DS=1517 ES=1517 SS=1517 CS=1517 IP=0129 NV UP EI NG NZ NA PE NC
1517:0129 BF2002 MOV DI,0220
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=012C NV UP EI NG NZ NA PE NC
1517:012C 8945E4 MOV [DI-1C],AX DS:0204=90AB
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=012F NV UP EI NG NZ NA PE NC
1517:012F BB0001 MOV BX,0100
-t
AX=90AB BX=0100 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=0132 NV UP EI NG NZ NA PE NC
1517:0132 BE0401 MOV SI,0104
-
-t
AX=90AB BX=0100 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0104 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=0135 NV UP EI NG NZ NA PE NC
1517:0135 8A08 MOV CL,[BX+SI] DS:0204=AB
-t
AX=90AB BX=0100 CX=12AB DX=0000 SP=FFEE BP=0220 SI=0104 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=0137 NV UP EI NG NZ NA PE NC
1517:0137 BE0001 MOV SI,0100
-t
AX=90AB BX=0100 CX=12AB DX=0000 SP=FFEE BP=0220 SI=0100 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=013A NV UP EI NG NZ NA PE NC
1517:013A 8A6805 MOV CH,[BX+SI+05] DS:0205=90
-t
AX=90AB BX=0100 CX=90AB DX=0000 SP=FFEE BP=0220 SI=0100 DI=0220
DS=1517 ES=1517 SS=1517 CS=1517 IP=013D NV UP EI NG NZ NA PE NC
1517:013D 0000 ADD [BX+SI],AL DS:0200=34
-
utrace
-u100
1517:0100 B83412 MOV AX,1234
1517:0103 89C3 MOV BX,AX
1517:0105 88D9 MOV CL,BL
1517:0107 3E DS:
1517:0108 A30002 MOV [0200],AX
1517:010B 8A2E0102 MOV CH,[0201]
1517:010F 26 ES:
1517:0110 A32002 MOV [0220],AX
1517:0113 BE2002 MOV SI,0220
1517:0116 8A24 MOV AH,[SI]
1517:0118 BD2002 MOV BP,0220
1517:011B 3E DS:
1517:011C B87856 MOV AX,5678
1517:011F BB0002 MOV BX,0200
-
-u 011F
1517:011F BB0002 MOV BX,0200
1517:0122 3E DS:
1517:0123 894702 MOV [BX+02],AX
1517:0126 B8AB90 MOV AX,90AB
1517:0129 BF2002 MOV DI,0220
1517:012C 8945E4 MOV [DI-1C],AX
1517:012F BB0001 MOV BX,0100
1517:0132 BE0401 MOV SI,0104
1517:0135 8A08 MOV CL,[BX+SI]
1517:0137 BE0001 MOV SI,0100
1517:013A 8A6805 MOV CH,[BX+SI+05]
1517:013D 0000 ADD [BX+SI],AL
-
rapor3
deney 3 program ve trace leri
C:\calisma>debug
-a100
13A5:0100 mov ax,1234
13A5:0103 mov bx,ax
13A5:0105 mov cl,bl
13A5:0107 DS: mov [0200],ax
13A5:010B mov ch,[0201]
13A5:010F ES: mov [0220],ax
13A5:0113 mov SI,0220
13A5:0116 mov ah,[SI]
13A5:0118 mov bp,0220
13A5:011B DS: mov ax,5678
13A5:011F mov bx,0200
13A5:0122 DS: mov [bx+2],ax
13A5:0126 mov ax,90AB
13A5:0129 mov DI,0220
13A5:012C mov [DI]-1c,ax
13A5:012F mov bx,100
13A5:0132 mov SI,104
13A5:0135 mov cl,[bx][SI]
13A5:0137 mov SI,0100
13A5:013A mov ch,[bx][SI]+5
-t
AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0103 NV UP EI PL NZ NA PO NC
13A5:0103 89C3 MOV BX,AX
-t
AX=1234 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0105 NV UP EI PL NZ NA PO NC
13A5:0105 88D9 MOV CL,BL
-t
AX=1234 BX=1234 CX=0034 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0107 NV UP EI PL NZ NA PO NC
13A5:0107 3E DS:
13A5:0108 A30002 MOV [0200],AX DS:0200=0000
-t
AX=1234 BX=1234 CX=0034 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=010B NV UP EI PL NZ NA PO NC
13A5:010B 8A2E0102 MOV CH,[0201] DS:0201=12
-
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=010F NV UP EI PL NZ NA PO NC
13A5:010F 26 ES:
13A5:0110 A32002 MOV [0220],AX ES:0220=0000
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0113 NV UP EI PL NZ NA PO NC
13A5:0113 BE2002 MOV SI,0220
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0220 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0116 NV UP EI PL NZ NA PO NC
13A5:0116 8A24 MOV AH,[SI] DS:0220=34
-t
AX=3434 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0220 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0118 NV UP EI PL NZ NA PO NC
13A5:0118 BD2002 MOV BP,0220
-
-t
AX=3434 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=011B NV UP EI PL NZ NA PO NC
13A5:011B 3E DS:
13A5:011C B87856 MOV AX,5678
-t
AX=5678 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=011F NV UP EI PL NZ NA PO NC
13A5:011F BB0002 MOV BX,0200
-t
AX=5678 BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0122 NV UP EI PL NZ NA PO NC
13A5:0122 3E DS:
13A5:0123 894702 MOV [BX+02],AX DS:0202=0000
-t
AX=5678 BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0126 NV UP EI PL NZ NA PO NC
13A5:0126 B8AB90 MOV AX,90AB
-
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0000
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0129 NV UP EI PL NZ NA PO NC
13A5:0129 BF2002 MOV DI,0220
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0220
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=012C NV UP EI PL NZ NA PO NC
13A5:012C 8945E4 MOV [DI-1C],AX DS:0204=0000
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0220
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=012F NV UP EI PL NZ NA PO NC
13A5:012F BB0001 MOV BX,0100
-t
AX=90AB BX=0100 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0220 DI=0220
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0132 NV UP EI PL NZ NA PO NC
13A5:0132 BE0401 MOV SI,0104
-
-t
AX=90AB BX=0100 CX=1234 DX=0000 SP=FFEE BP=0220 SI=0104 DI=0220
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0135 NV UP EI PL NZ NA PO NC
13A5:0135 8A08 MOV CL,[BX+SI] DS:0204=AB
-t
AX=90AB BX=0100 CX=12AB DX=0000 SP=FFEE BP=0220 SI=0104 DI=0220
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=0137 NV UP EI PL NZ NA PO NC
13A5:0137 BE0001 MOV SI,0100
-t
AX=90AB BX=0100 CX=12AB DX=0000 SP=FFEE BP=0220 SI=0100 DI=0220
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=013A NV UP EI PL NZ NA PO NC
13A5:013A 8A6805 MOV CH,[BX+SI+05] DS:0205=90
-t
AX=90AB BX=0100 CX=90AB DX=0000 SP=FFEE BP=0220 SI=0100 DI=0220
DS=13A5 ES=13A5 SS=13A5 CS=13A5 IP=013D NV UP EI PL NZ NA PO NC
13A5:013D 0000 ADD [BX+SI],AL DS:0200=34
-
-d
13A5:0100 B8 34 12 89 C3 88 D9 3E-A3 00 02 8A 2E 01 02 26 .4.....>.......&
13A5:0110 A3 20 02 BE 20 02 8A 24-BD 20 02 3E B8 78 56 BB . .. ..$. .>.xV.
13A5:0120 00 02 3E 89 47 02 B8 AB-90 BF 20 02 89 45 E4 BB ..>.G..... ..E..
13A5:0130 00 01 BE 04 01 8A 08 BE-00 01 8A 68 05 00 00 00 ...........h....
13A5:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13A5:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13A5:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13A5:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-
-u 100
13A5:0100 B83412 MOV AX,1234
13A5:0103 89C3 MOV BX,AX
13A5:0105 88D9 MOV CL,BL
13A5:0107 3E DS:
13A5:0108 A30002 MOV [0200],AX
13A5:010B 8A2E0102 MOV CH,[0201]
13A5:010F 26 ES:
13A5:0110 A32002 MOV [0220],AX
13A5:0113 BE2002 MOV SI,0220
13A5:0116 8A24 MOV AH,[SI]
13A5:0118 BD2002 MOV BP,0220
13A5:011B 3E DS:
13A5:011C B87856 MOV AX,5678
13A5:011F BB0002 MOV BX,0200
13A5:0122 3E DS:
13A5:0123 894702 MOV [BX+02],AX
13A5:0126 B8AB90 MOV AX,90AB
13A5:0129 BF2002 MOV DI,0220
13A5:012C 8945E4 MOV [DI-1C],AX
13A5:012F BB0001 MOV BX,0100
13A5:0132 BE0401 MOV SI,0104
13A5:0135 8A08 MOV CL,[BX+SI]
13A5:0137 BE0001 MOV SI,0100
13A5:013A 8A6805 MOV CH,[BX+SI+05]
13A5:013D 0000 ADD [BX+SI],AL
-
Cİ
.MODEL SMALL
.STACK 64
.DATA
ORG 0100h
DAT DB 100 DUP(?)
.CODE
MAIN PROC FAR
MOV AX,@DATA
MOV DS,AX
SUB AX,AX
MOV CX,100
MOV SI,OFFSET DAT
sub bx,bx
verial:
mov ax,0
int 16h
mov [si],al
mov si
mov dl,al
mov ah,02
int 21h
cmp al,32d
jnz devam
inc bx
devam: cmp al,46
jz yazdir
loop verial
yazdir: inc bl
sub ax,ax
mov al,bl
mov cl,10
div cl
mov bx,ax
mov ah,02
int 21h
mov dl,9
int 21h
mov dl,bl
or dl,48
int 21h
mov dl,bh
or dl,48
int 21h
mov ah,4ch
int 21h
ENDP
END MAIN
c. MOV [DI],AL Reg. Indirect addressing, PA10000+0100=10100
c. MOV [DI],AL ? Reg. Indirect addressing, PA:10000+0100=10100
d. MOV AL,[BP+DI] ? Based Indexed addressing, PA:10000+1000+0100=11100
e. MOV CX,[DI] ? Indexed addressing, PA:10100
f. MOV DX,[BP] ? Based addressing, PA:11000
g MOV [100],DL ? Direct addressing, PA:10100
h. MOV [SI+100],AX ? Indexed addressing PA:20000+0200+100= 20300
i. MOV DL,[BX+100] ? Based addressing, PA:10000+0300+100= 10400
j. MOV [SI],DX ? Register indirect addressing, PA:10200
k. MOV CL,[BX] ? Based addressing, PA:10300
l. MOV CH,[BX+SI] ? Based indexed addressing, PA:10000+0300+0200=10500
m.MOV AX,[BP+200] ? Based addressing, PA:11200
n. MOV AL,[BP+SI-200] ? Based indexed addressing, PA:11000
o. MOV AL,[SI-0100] ? Indexed indirect addressing, PA:10100
2)
-r ip
-r ip
IP 0100
:100
-r
AX=0200 BX=0100 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0100 NV UP EI PL NZ NA PO NC
14F1:0100 89C1 MOV CX,AX
-t
AX=0200 BX=0100 CX=0200 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0102 NV UP EI PL NZ NA PO NC
14F1:0102 89D8 MOV AX,BX
-t
AX=0100 BX=0100 CX=0200 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0104 NV UP EI PL NZ NA PO NC
14F1:0104 89CB MOV BX,CX
-t
AX=0100 BX=0200 CX=0200 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0106 NV UP EI PL NZ NA PO NC
14F1:0106 0000 ADD [BX+SI],AL DS:0200=00
-
14F10100 mov ax,1234
-a
14F1:0100 mov ax,1234
14F1:0103 mov bx,ax
14F1:0105 mov cl,al
14F1:0107 mov [200],ax
14F1:010A mov ch,12
14F1:010C es:mov [220] ,ax
14F1:0110 mov si, 200
14F1:0113 mov bp, 200
14F1:0116 mov ah,[si]
14F1:0118 mov bh,[bp]
14F1:011B mov ax,5678
14F1:011E mov bx,200
14F1:0121 mov [bx+2],ax
14F1:0124 mov ax,90ab
14F1:0127 mov di, 220
14F1:012A mov [di-1b],ax
14F1:012D mov bx, 100
14F1:0130 mov si, 104
14F1:0133 mov cl, [bx][si]
14F1:0135 mov si,100
14F1:0138 mov ch, [bx][si+4]
14F1:013B
AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0103 NV UP EI PL NZ NA PO NC
14F1:0103 89C3 MOV BX,AX
-t
AX=1234 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0105 NV UP EI PL NZ NA PO NC
14F1:0105 88C1 MOV CL,AL
-t
AX=1234 BX=1234 CX=0034 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0107 NV UP EI PL NZ NA PO NC
14F1:0107 A30002 MOV [0200],AX DS:0200=0000
-t
AX=1234 BX=1234 CX=0034 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=010A NV UP EI PL NZ NA PO NC
14F1:010A B512 MOV CH,12
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=010C NV UP EI PL NZ NA PO NC
14F1:010C 26 ES:
14F1:010D A32002 MOV [0220],AX ES:0220=0000
-
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0110 NV UP EI PL NZ NA PO NC
14F1:0110 BE0002 MOV SI,0200
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0000 SI=0200 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0113 NV UP EI PL NZ NA PO NC
14F1:0113 BD0002 MOV BP,0200
-t
AX=1234 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0116 NV UP EI PL NZ NA PO NC
14F1:0116 8A24 MOV AH,[SI] DS:0200=34
-t
AX=3434 BX=1234 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0118 NV UP EI PL NZ NA PO NC
14F1:0118 8A7E00 MOV BH,[BP+00] SS:0200=34
-t
AX=3434 BX=3434 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=011B NV UP EI PL NZ NA PO NC
14F1:011B B87856 MOV AX,5678
-
AX=5678 BX=3434 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=011E NV UP EI PL NZ NA PO NC
14F1:011E BB0002 MOV BX,0200
-t
AX=5678 BX=0200 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0121 NV UP EI PL NZ NA PO NC
14F1:0121 894702 MOV [BX+02],AX DS:0202=0000
-t
AX=5678 BX=0200 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0124 NV UP EI PL NZ NA PO NC
14F1:0124 B8AB90 MOV AX,90AB
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0000
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0127 NV UP EI PL NZ NA PO NC
14F1:0127 BF2002 MOV DI,0220
-t
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0220
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=012A NV UP EI PL NZ NA PO NC
14F1:012A 8945E5 MOV [DI-1B],AX DS:0205=0000
-
AX=90AB BX=0200 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0220
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=012D NV UP EI PL NZ NA PO NC
14F1:012D BB0001 MOV BX,0100
-t
AX=90AB BX=0100 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0200 DI=0220
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0130 NV UP EI PL NZ NA PO NC
14F1:0130 BE0401 MOV SI,0104
-t
AX=90AB BX=0100 CX=1234 DX=0000 SP=FFEE BP=0200 SI=0104 DI=0220
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0133 NV UP EI PL NZ NA PO NC
14F1:0133 8A08 MOV CL,[BX+SI] DS:0204=00
-t
AX=90AB BX=0100 CX=1200 DX=0000 SP=FFEE BP=0200 SI=0104 DI=0220
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0135 NV UP EI PL NZ NA PO NC
14F1:0135 BE0001 MOV SI,0100
-t
AX=90AB BX=0100 CX=1200 DX=0000 SP=FFEE BP=0200 SI=0100 DI=0220
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=0138 NV UP EI PL NZ NA PO NC
14F1:0138 8A6804 MOV CH,[BX+SI+04] DS:0204=00
-
AX=90AB BX=0100 CX=0000 DX=0000 SP=FFEE BP=0200 SI=0100 DI=0220
DS=14F1 ES=14F1 SS=14F1 CS=14F1 IP=013B NV UP EI PL NZ NA PO NC
14F1:013B 0000 ADD [BX+SI],AL DS:0200=34
-
Not: Verilen sıcaklık dizisinin en küçük değeri −19, en büyük değeri 19’dur. Bazı öğrenci sürümleri karşılaştırmaya AL=0 ile başlar; bu başlangıç her veri kümesi için doğru sonuç vermez. Kaynak kodlar düzeltilmeden aktarılmıştır.