1109 Kul11b
-
Upload
madzani-nusa -
Category
Technology
-
view
438 -
download
4
Transcript of 1109 Kul11b
Model ingatan
Kod dalam > 1 segmenData dalam > satu segmenTatasusunan lebih besar dr 64KB
HUGE
Kod dalam > satu segmenData dalam > 1 segmenTatasusunan tidak lebih dr 64KB
LARGE
Kod dalam satu segmenData dalam > 1 segmen
COMPACT
Kod dalam > 1 segmenData dalam satu segmen
MEDIUM
Kod dalam satu segmenData dalam satu segmen
SMALL
PeneranganModel
Segmen data
Mengandungi semua periytiharan pembolehubah
Untuk mengisytiharkan segmen data, direktif .DATA, diikuti oleh pengistiharan pembolehubah atau pemalar dibuat
Cth :– .DATA– WORD1 DW 2– WORD2 DW 5– MSG DB ‘INI ADALAH MESEJ’– MASK EQU 10010010B
Segmen timbunan
Digunakan untuk menempah satu blok ingatan untuk menyimpan timbunan
Sintak definisi .STACK saiz (saiz adalah optional)Cth: .STACK 100H
Pernyataan di atas akan menyediakan 100h bait untuk kawasan timbunan
Segmen kod
Mengandungi arahan-arahan aturcara Sintak pengisytiharan
.CODE nama di mana nama adalah pilihan bagi segmen tersebut
Arahan adalah di dalam bentuk prosedur
Perisytiharan prosedur yang mudah:nama PROC;badan prosedurnama ENDP
di mana nama (nama prosedur); PROC dan ENDP (pseudo-op yang menerangkan prosedur)
Cth:.CODEMAIN PROC;arahan prosedur utamaMAIN ENDP;prosedur yang lain bermula di sini
Penggabungan segmen Satu bentuk am model aturcara menggunaan
model ingatan .SMALL BOLEH DIBANGUNKAN.MODEL SMALLSTACK 100H.DATA;pengisytiharan data bermula di sini.CODEMAIN PROC;arahan bermula di siniMAIN ENDP;prosedur-prosedur lain bermula di siniEND MAIN
Baris terakhir mesti END, diikuti nama prosedur utama
SET ARAHAN 8086
Jenis-jenis arahan
Arahan pemindahan data Arahan aritmetik Arahan pengendalian bit Arahan banding Arahan lompat/cabang Arahan gelung
Arahan pemindahan data
Digunakan untuk memindahkan data – di antara satu daftar dalaman dengan satu
daftar dalaman yang lain– di antara daftar dalaman dengan satu
lokasi storan di ingatan– di antara satu daftar dalaman dengan satu
nilai segera
Arahan-arahan seperti MOV dan XCHG
MOV (MOVe) Memindahkan dari operan sumber ke
operan destinasi Format
MOV OD, OS di mana OS=operan sumber
OD=operan destinasi
Contoh perlaksanaan
XXXXXXSelepas operasi
YYYXXXSebelum operasi
Operan destinasiOperan sumber
MOV [BX],25HIngatanPemalar/nilai segera
MOV DS,[BX]Daftar segmenIngatan
MOV AX,DSDaftar amDaftar segmen
MOV [BX],45HIngatanPemalar/nilai segera
MOV AX,5HDaftarPemalar/nilai segera
MOV AX,BETADaftar amIngatan
MOV [BX],AXIngatanDaftar
MOV DS, AXDaftar segmenDaftar am
MOV AX, BXDaftar amDaftar am
ContohOperan destinasiOperan sumber
Operan sumber dan destinasi yang sah
Untuk memindahkan kedua-dua operan sumber dan destinasi yang merupakan ruang ingatan boleh dilakukan dengan arahan
MOV AX,BETA : salin nilai BETA ke dalam AX
MOV ALPHA,AX : salin kandungan AX ke ALPHA
Pemindahan mestilah di antara saiz data yang sepadan, contoh:
MOV AL,1234H : tidak dibenarkan kerana memasukkan data bersaiz 16 bit kepada daftar bersaiz 8 bit
Contoh arahan MOV dengan mod pengalamatan daftar dan mod pengalamatan terus– Mod pengalamatan daftar
MOV AX,BX (BX) (AX)– Mod pengalamatan terus
MOV CX,[ABCD] ((DS)OH+ABCD) (CL) ((DS)OH+ABCD+1)(CH)
XCHG (EXCHange) Menukarganti data antara operan sumber
dgn operan destinasi Format
XCHG OD,OS di mana OD=operan destinasi
OS=operan sumber
Perlaksanaan arahan XCHG AX,DX
XXXYYYselepas
YYYXXXSebelum
DXAX
Boleh melibatkan 8 dan 16 bit data tetapi saiz yang terlibat mestilah sepadan
Bagi arahan yang melibatkan ruang ingatan seperti
XCHG [SUM],BX
pertukaran adalah seperti XCHG [SUM],BX ((DS)OH+SUM)BX
Menukar 2 pembolehubahtitle Exchange Two Variables (Exchange.asm).model small.stack 100h.datavalue1 db 0Ahvalue2 db 14h.codemain proc mov ax,@data ; initialize DS register mov ds,ax mov al,value1 ; load the AL register xchg value2,al ; exchange AL and value2 mov value1,al ; store AL back into value1
mov ax,4C00h ; exit program int 21hmain endpend main
Arahan aritmetik
Melibatkan arahan tambah (ADD), tolak (SUB), darab (MUL) dan bahagi (DIV)
Juga mengandungi variasi arahan-arahan ini
Membentuk arahan-arahan seperti arahan ADC beserta arahan nilai bendera bawa
ADD (ADDition)
Melakukan penambahan di antara operan sumber dan operan destinasi dan hasil di simpan di dalam operan destinasi
FormatADD OD,OS di mana OD=operan destinasi
OS=operan sumberADD OD,OS
OD+OS OD(jika ada bawa, bendera bawa,
CF=1)
Arahan ADD
Operan sumber boleh sebagai daftar, nilai segera atau ingatan
Operand destinasi boleh sebagai daftar atau ingatan
Hanya satu operan boleh sebagai operan ingatan
ADD Instruction Examples
.datamembyte db 25memword dw 36doubleVal dd 12340000h.codeadd al,5add bx,axadd eax,edxadd membyte,aladd memword,bxadd doubleVal,edx
Kombinasi operan destinasi dan operan sumber yang dibenarkan
ADD BYTE PTR [BX],5H
Nilai segeraIngatan
ADD AX,35Nilai segeraDaftar am
ADD AX,[BX]Daftar amIngatan
ADD [BX],AXIngatanDaftar am
ADD AX,DXDaftar amDaftar am
Contoh arahanOperan destinasi
Operan sumber
Contoh arahan Jika AX=1234H, BX=0001H, maka
ADD AX,BX adalah seperti jadual di bawah
1EF00H0134HSelepas
xEF00H1234HSebelum2
00001H1235HSelepas
x0001H1234HSebelum1
Bendera Bawa
BXAX
Arahan SUBFormat : SUB OD, OS di mana OS operan sumber
OD operan destinasi Menolak operak sumber dari operan destinasi Operan sumber boleh jadi daftar, nilai segera atau
ingatan Operan destinasi boleh jadi daftar atau ingatan Hanya satu operan boleh jadi operan ingatan
Contoh Arahan SUB
.datamembyte db 25memword dw 36doubleVal dd 12340000h.codesub al,5sub bx,axsub eax,edxsub membyte,alsub memword,bxsub doubleVal,edx