bım404 sistem programlama ch5 cevirici yonergeleri
DESCRIPTION
asmTRANSCRIPT
-
BIM404
Sistem ProgramlamaEVRC YNERGELER
Yrd. Do. Dr. Abdullah Snmez
-
8086/8088 evirici Ynergeleri
Sistem Programlama 2
Kelime Fonksiyon FunctionALIGN Balangc ift adrese hizala starts at an even memory addressASSUME Segmentlerin nerede olduunu gsterir indicates where the segments are locatedAT Segmenti bellekte saklar stores the segment in the memoryBYTE lenenin sekizli olarak ele alnmasn salar acts as a byte operandDB Sekizliyi tanmlar (8 bit) defines a byte (8 bit)DD ift kelime tanmlar (32 bit) defines a double word (32 bits)DQ Drtl kelime tanmlar (64 bit) defines quad word (64 bits)DT 10 byte tanmlar (80 bit) defines 10 bytes (80 bits)DUP Sonra gelen karakteri oaltr duplicates the following characterDW Kelime tanmlar (16 bit) defines word (16 bits)END Listenin sonunu gsterir indicates end of listingENDP Prosedrn sonunu gsterir indicates end of procedureENDS Segmentin sonunu gsterir indicates end of segmentEQU Eitler equatesFAR Uzak bellek iaretisi olarak ele alnmasn salar (Segmentler-aras) acts as far memory pointer (inter-segment)NEAR Yakn bellek iaretisi olarak ele alnmasn salar (Segment-ii) acts as near memory pointer (intra-segment)OFFSET Greli adresi belirtir specifies the offset addressORG Segment iindeki balangc ayarlar sets origin within segmentPROC Prosedr balangcn tanmlar defines beginning of procedurePTR Bellek iaretisi olarak ele alnmasn salar acts as memory pointerSEGMENT Bir segmentin balangcn belirler designates start of a segmentSTACK Yn segmenti olduunu gsterir indicates stack segment
-
rnek
Sistem Programlama 3
DB, DW, DD ynergelerini kullanma :
BIRINCI_VERI DB 1,2,3 ; 8 bit * 3:Degerleri 1,2, ve 3 olacak ekilde 3 sekizli tanmlandDB 45 H ; 8 bit: 45 hexDB 'A' ; 8 bit: ASCII ADB 11110000B ; 8 bit: ikili 111 10000DW 12,13 ; 16 bit * 2 : Degerleri 12 ve 13 olan 2 kelime tanmland
IKINCI_VERI DW LIST ; 16 bit : LIST : greli addresDW 3456H ; 16 bit : 3456 hexDD 0000FFFFH ; 32 bit : 0000FFFF hex
-
rnek
Sistem Programlama 4
DUP ynergesinin kullanlmas :
LIST_A DB ? LIST_A iin bir sekizli rezerve etLIST_B DB 10 DUP (?) LIST_B iin 10 sekizli rezerve et
ALIGN Adresi ift yapLIST C DW 10 DUP (?) LIST_C iin 10 kelime rezerve etLIST D DD 22 DUP (?) LIST_D iin 22 ift kelime rezerve etZEROS DB 100 DUP (0) ZEROS iin 100 sekizli rezerve et ve sfrla.
-
rnek
Sistem Programlama 5
EQU ifadesinin kullanlmas :
ON EQU 10 ; ON etiketini 10'a eitlerHARF_A EQU 'A' ; HARF_A etiketini A'ya eitlerSAYAC EQU 99 ; SAYAC etiketini 99'a eitlerSAYI_ON EQU ON ; SAYI_10 etiketini 10'a eitler
YIGIN_BELLEGI DW 50 DUP (?) 50 kelimelik yer rezerve etYIGIN_BASI EQU THIS WORD Yn ban gstermektedir
DB 10 Burada, 10 deerini saklaVERI EQU THIS BYTE VERI 10 olarak tanmlanyor
THIS WORD, THIS BYTE kullanlmas
-
rnek
Sistem Programlama 6
SEGMENT, END ve ASSUME ifadelerinin kullanlmas :DATA SEGMENT ; Segmentin ismi (Veri segmenti)LIST_A DB 10 DUP(?) ; LIST_A iin 10 sekizli rezerve etLIST_B DW 12 DUP(6) ; LIST_B iin her birinin deeri 6 olan 12 kelime iin yer aDATA ENDS ; Veri segmenti ile ilem sonu
EXTRA SEGMENT ; Segmentin ismi (Ekstra segment)STRING DB 'MERHABA' ; MERHABA'y kaydetEXTRA ENDS ; Ekstra segment ile ilem sonu
STACK SEGMENT ; Segmentin ismi (Yn segmenti)DW 5O DUP (?) ; 50 kelimelik yer rezerve et
STACK ENDS ; Yn segmenti ile ilem sonu
CODE SEGMENT ; Segmentin ismi (Kod segmenti)ASSUME CS:CODE, DS:DATAASSUME ES:EXTRA, SS:STACK
BASLA: MOV AX,DATA ; DS
-
rnek
Sistem Programlama 7
BLOK_1den BLOK_2 100 sekizli aktarlmas.SAYI EQU 100 ; SAYI'y 100 olarak tanmla
DATA SEGMENT ; Segmentin ismi (Veri segmenti)BLOCK_1 DB 100 DUP(?) ; BLOK_1 iin 100 sekizli rezerve etDATA ENDS ; Veri segmenti ile ilem sonu
EXTRA SEGMENT ; Segmentin ismi (Ekstra segment)BLOK_2 DB 100 DUP (?) ; BLOK_2 iin 100 sekizli rezerve etEXTRA ENDS ; Ekstra segment ile ilem sonu
CODE SEGMENT ; Segmentin ismi (Kod segmenti)ASSUME CS: CODE, DS:DATA, ES.EXTRA
BASLA: MOV AX,DATA ; DS
-
Toplama Komutlar
Sistem Programlama 8
Bir segment saklaycs veya bellek gzleri dorudan toplanamazlar.
Komut AklamaADD AL,BL AL
-
kartma Komutlar
Sistem Programlama 9
Bir segment saklaycs veya bellek gzleri dorudan karlamazlar.
Komut AklamaSUB CL,BL CL
-
Artrma ve Azaltma Komutlar
Sistem Programlama 10
Komut AklamaINC BL BL++INC SP SP++INC BYTE PTR[BX] [DS:PTR(BX)]++ (Sekizlinin deeri bir artttlr)INC WORD PTR[SI] [DS:PTR(SI)]++ (Kelimenin deeri bir artttlr)DEC BH BH--DEC BP BP--DEC BYTE PTR[Dl] [DS:PTR(DI)]-- (Sekizlinin deeri bir azaltlr)DEC WORD PTR[Sl+2] [DS:PTR(SI+2)]-- (Kelimenin deeri bir azaltlr)
-
Elde ile Toplama, dn ile kartma
Sistem Programlama 11
Komut AklamaADC AL,AH AL
-
Karlatrma Komutlar
Sistem Programlama 12
Komut AklamaCMP CL,BL CL-BL'yi hesaplar, BL ve CL'nin deeri deimezCMP AX,SP AX-SP'yi hesaplar, AX ve SP'nin deeri deimezCMP AX,OCCCCH AX-0CCCCH'yi hesaplar, AX 'in deeri deimezCMP [DI],CH [DS:DI]-CH'yi hesaplar, her ikisinin deeri de deimezCMP CH,[BP] CH-[SS:BP]'yi hesaplar, her ikisinin deeri de deimez.CMP AH,TEMP AH-[DS:TEMP]'i hesaplar, her ikisinin deeri de deimez.
Karlatrma komutlar aslnda kartma ilemi yapar ancak operandlarndeeri deimez, sadece bayraklar deiir.
rnek CMP AL,10HJZ ON_ISE
-
arpma Komutlar
Sistem Programlama 13
Komut AklamaMUL CL AX
-
Blme Komutlar
Sistem Programlama 14
Komut AklamaDIV CL (Blm:AL, Kalan:AH)
-
AND, OR, XOR, NOT Komutlar
Sistem Programlama 15
Komut AklamaAND AL,BL AL
-
Kaydrma Komutlar
Sistem Programlama 16
Komut AklamaSHL BL BL'deki bitler bir sola lojik olarak kaydrlrSHR AX AX'teki bitler bir saa lojik olarak kaydrlrSAL BYTE PTR[BX], CL
BX'in gsterdii bellek gzndeki deer CL'deki deer kadar sola aritmetik olarak telenir
SAR SI, CL SI'daki deer aritmetik olarak CL'deki deer kadar saa telenir
SAL ve SHL ayn ilevi gryor.
SAL
SHR
SAR
0
0
SHL
-
Dndrme Komutlar
Sistem Programlama 17
Komut AklamaRCL SI SI'daki deeri bir bit sola elde zerinde dndrr.ROL BL BL'deki deeri bir bit sola dndrr.ROR AH,CL AH'deki deeri CL'deki deer kadar sola dndrr.RCR WORD PTR[BP] (SS:BP)'deki deeri bir saa elde zerinden bir saa dndrr.
-
Katar Karlatrmalar
Sistem Programlama 18
rnekMOV DI, OFFSET BLOCK ; Adresi ykleCLD ; Otomatik artrmay seMOV CX,100H ; Saya deerini ykleMOV AL,0 ; AL
-
Koulsuz Dallanma
Sistem Programlama 19
rnekSTART: MOV AX,1
ADD AX,BX JMP NEXT
NEXT: MOV BX,AXJMP START
rnekMOV SI,OFFSET TABLEDEC BXADD SI,BXMOV AX, [SI]JMP AX
TABLE: DW ONE DW TWO DW THREE
-
Koullu Dallanma
Sistem Programlama 20
Komut Test edilen koul Aklama CommentJA C=0 ve Z=0 Bykse dallan (aretsiz) jump aboveJAE C=0 Byk eitse dallan (aretsiz) jump above or equal toJB C=1 Kkse dallan (aretsiz) jump belowJBE C=1 ve Z=1 Kk eitse dallan (aretsiz) jump below or equal toJC C=1 Elde varsa dallan jump carry setJE or JZ Z=1 Eitse / sfrsa dallan jump equal to or jump 0JG 0=Z and S Bykse dallan (aretli) jump greater thanJGE S=0 Byk veya eitse dallan (aretli) jump greater than or equal toJL S=0 Kkse dallan (aretli) jump less thanJLE Z=1 or S=0 Kk veya eitse dallan (aretli) jump less than or equal toJNC C=0 Elde yoksa dallan jump carry clearedJNE or JNZ Z=0 Eit deilse / sfr deilse dallan jump not equal to or jump not 0JNO O=0 Tama yoksa dallan jump no overflowJNS S=0 aret yoksa dallan jump no signJNP P=0 Parite yoksa dallan jump no parityJO O=1 Tama varsa dallan jump on overflowJP P=1 Parite varsa dallan jump on parityJS S=1 aret varsa dallan jump on signJCXZ CX=0 CX = 0 ise dallan jump if register CX is 0
-
rnek - Koullu Dallanma
Sistem Programlama 21
100 sekizli uzunluundaki bir tabloda 0AH deeri aranyor.
ARA: MOV DI,OFFSET TABLO; TABLO'nun adresini DI'ya ykleMOV CX,100 ; Sayac ykleMOV AL,0AH ; Aranacak numaray AL'ye ykleCLD ; Otomatik artrm seREPNE SCASB ; TABLO'da arama yapJCXZ BULUNAMADI ; Eer bulunamadysa BULUNAMADI'ya dallan
-
rnek Dng
Sistem Programlama 22
BLOK1 ve BLOK2deki 100 kelimeyi topluyor.
MOV CX,100 ; Sayac ykleMOV SI,OFFSET BLOK1 ; SI'ya BLOK1'in adresini ykleMOV DI,OFFSET BLOK2 ; DI'ya BLOK2'nin adresini ykle
TEKRAR: LODSW ; BLOK1'deki kelimeyi alSEG ES: ; Toplama iin ES'yi seADD AX,[DI] ; BLOK1'deki kelimeyi alSTOSW ; BLOK2'ye kaydetLOOP TEKRAR ; CX=0 olana kadar dn
-
rnek Altprosedr
Sistem Programlama 23
MOV SI,OFFSET HESAPLA ; SI'ya HESAPLA altprogramnn adresini ykleCALL SI ; SI ile adreslenen alt program ar..HESAPLA PROC NEARPUSH DXMOV DX,AXIN AX,DATAOUT PORT,AXMOV AX,DXPOP DXRETHESAPLA ENDP
BIM404Sistem ProgramlamaEVRC YNERGELER8086/8088 evirici YnergelerirnekrnekrnekrnekrnekToplama Komutlarkartma KomutlarArtrma ve Azaltma KomutlarElde ile Toplama, dn ile kartmaKarlatrma Komutlararpma KomutlarBlme KomutlarAND, OR, XOR, NOT KomutlarKaydrma KomutlarDndrme KomutlarKatar KarlatrmalarKoulsuz DallanmaKoullu Dallanmarnek - Koullu Dallanmarnek Dngrnek Altprosedr