1109 Kul11b

500 views
475 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
500
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

1109 Kul11b

  1. 1. Model ingatan Kod dalam > 1 segmen Data dalam > satu segmen Tatasusunan lebih besar dr 64KB HUGE Kod dalam > satu segmen Data dalam > 1 segmen Tatasusunan tidak lebih dr 64KB LARGE Kod dalam satu segmen Data dalam > 1 segmen COMPACT Kod dalam > 1 segmen Data dalam satu segmen MEDIUM Kod dalam satu segmen Data dalam satu segmen SMALL Penerangan Model
  2. 2. Segmen data <ul><li>Mengandungi semua periytiharan pembolehubah </li></ul><ul><li>Untuk mengisytiharkan segmen data, direktif .DATA, diikuti oleh pengistiharan pembolehubah atau pemalar dibuat </li></ul><ul><li>Cth : </li></ul><ul><ul><li>.DATA </li></ul></ul><ul><ul><li>WORD1 DW 2 </li></ul></ul><ul><ul><li>WORD2 DW 5 </li></ul></ul><ul><ul><li>MSG DB ‘INI ADALAH MESEJ’ </li></ul></ul><ul><ul><li>MASK EQU 10010010B </li></ul></ul>
  3. 3. Segmen timbunan <ul><li>Digunakan untuk menempah satu blok ingatan untuk menyimpan timbunan </li></ul><ul><li>Sintak definisi </li></ul><ul><ul><li>.STACK saiz (saiz adalah optional) </li></ul></ul><ul><ul><li>Cth: .STACK 100H </li></ul></ul><ul><li>Pernyataan di atas akan menyediakan 100h bait untuk kawasan timbunan </li></ul>
  4. 4. Segmen kod <ul><li>Mengandungi arahan-arahan aturcara </li></ul><ul><li>Sintak pengisytiharan </li></ul><ul><li>.CODE nama di mana nama adalah pilihan bagi segmen tersebut </li></ul><ul><li>Arahan adalah di dalam bentuk prosedur </li></ul>
  5. 5. <ul><li>Perisytiharan prosedur yang mudah: </li></ul><ul><ul><li>nama PROC </li></ul></ul><ul><ul><li>;badan prosedur </li></ul></ul><ul><ul><li>nama ENDP </li></ul></ul><ul><ul><li>di mana nama (nama prosedur); PROC dan ENDP (pseudo-op yang menerangkan prosedur) </li></ul></ul>
  6. 6. <ul><li>Cth: </li></ul><ul><li>.CODE </li></ul><ul><li>MAIN PROC </li></ul><ul><li>;arahan prosedur utama </li></ul><ul><li>MAIN ENDP </li></ul><ul><li>;prosedur yang lain bermula di sini </li></ul>
  7. 7. Penggabungan segmen <ul><li>Satu bentuk am model aturcara menggunaan model ingatan .SMALL BOLEH DIBANGUNKAN </li></ul><ul><li>.MODEL SMALL </li></ul><ul><li>STACK 100H </li></ul><ul><li>.DATA </li></ul><ul><li>;pengisytiharan data bermula di sini </li></ul><ul><li>.CODE </li></ul><ul><li>MAIN PROC </li></ul><ul><li>;arahan bermula di sini </li></ul><ul><li>MAIN ENDP </li></ul><ul><li>;prosedur-prosedur lain bermula di sini </li></ul><ul><li>END MAIN </li></ul><ul><li>Baris terakhir mesti END, diikuti nama prosedur utama </li></ul>
  8. 8. SET ARAHAN 8086
  9. 9. Jenis-jenis arahan <ul><li>Arahan pemindahan data </li></ul><ul><li>Arahan aritmetik </li></ul><ul><li>Arahan pengendalian bit </li></ul><ul><li>Arahan banding </li></ul><ul><li>Arahan lompat/cabang </li></ul><ul><li>Arahan gelung </li></ul>
  10. 10. Arahan pemindahan data <ul><li>Digunakan untuk memindahkan data </li></ul><ul><ul><li>di antara satu daftar dalaman dengan satu daftar dalaman yang lain </li></ul></ul><ul><ul><li>di antara daftar dalaman dengan satu lokasi storan di ingatan </li></ul></ul><ul><ul><li>di antara satu daftar dalaman dengan satu nilai segera </li></ul></ul><ul><li>Arahan-arahan seperti MOV dan XCHG </li></ul>
  11. 11. MOV (MOV e ) <ul><li>Memindahkan dari operan sumber ke operan destinasi </li></ul><ul><li>Format </li></ul><ul><ul><li>MOV OD, OS di mana OS=operan sumber </li></ul></ul><ul><ul><li> OD=operan destinasi </li></ul></ul><ul><li>Contoh perlaksanaan </li></ul>XXX XXX Selepas operasi YYY XXX Sebelum operasi Operan destinasi Operan sumber
  12. 12. Operan sumber dan destinasi yang sah MOV [BX],25H Ingatan Pemalar/nilai segera MOV DS,[BX] Daftar segmen Ingatan MOV AX,DS Daftar am Daftar segmen MOV [BX],45H Ingatan Pemalar/nilai segera MOV AX,5H Daftar Pemalar/nilai segera MOV AX,BETA Daftar am Ingatan MOV [BX],AX Ingatan Daftar MOV DS, AX Daftar segmen Daftar am MOV AX, BX Daftar am Daftar am Contoh Operan destinasi Operan sumber
  13. 13. <ul><li>Untuk memindahkan kedua-dua operan sumber dan destinasi yang merupakan ruang ingatan boleh dilakukan dengan arahan </li></ul><ul><li>MOV AX,BETA : salin nilai BETA ke dalam AX </li></ul><ul><li>MOV ALPHA,AX : salin kandungan AX ke ALPHA </li></ul><ul><li>Pemindahan mestilah di antara saiz data yang sepadan, contoh: </li></ul><ul><li>MOV AL,1234H : tidak dibenarkan kerana memasukkan data bersaiz 16 bit kepada daftar bersaiz 8 bit </li></ul>
  14. 14. <ul><li>Contoh arahan MOV dengan mod pengalamatan daftar dan mod pengalamatan terus </li></ul><ul><ul><li>Mod pengalamatan daftar </li></ul></ul><ul><ul><li>MOV AX,BX  (BX)  (AX) </li></ul></ul><ul><ul><li>Mod pengalamatan terus </li></ul></ul><ul><ul><li>MOV CX,[ABCD]  ((DS)OH+ABCD)  (CL) </li></ul></ul><ul><ul><li> ((DS)OH+ABCD+1)  (CH) </li></ul></ul>
  15. 15. XCHG (EXCH ange ) <ul><li>Menukarganti data antara operan sumber dgn operan destinasi </li></ul><ul><li>Format </li></ul><ul><li>XCHG OD,OS di mana OD=operan destinasi </li></ul><ul><li> OS=operan sumber </li></ul><ul><li>Perlaksanaan arahan XCHG AX,DX </li></ul>XXX YYY selepas YYY XXX Sebelum DX AX
  16. 16. <ul><li>Boleh melibatkan 8 dan 16 bit data tetapi saiz yang terlibat mestilah sepadan </li></ul><ul><li>Bagi arahan yang melibatkan ruang ingatan seperti </li></ul><ul><li>XCHG [SUM],BX </li></ul><ul><li>pertukaran adalah seperti </li></ul><ul><li>XCHG [SUM],BX  ((DS)OH+SUM)  BX </li></ul>
  17. 17. Menukar 2 pembolehubah <ul><ul><li>title Exchange Two Variables     (Exchange.asm) </li></ul></ul><ul><ul><li>.model small </li></ul></ul><ul><ul><li>.stack 100h </li></ul></ul><ul><ul><li>.data </li></ul></ul><ul><ul><li>value1 db 0Ah </li></ul></ul><ul><ul><li>value2 db 14h </li></ul></ul><ul><ul><li>.code </li></ul></ul><ul><ul><li>main proc </li></ul></ul><ul><ul><li>     mov  ax,@data      ; initialize DS register </li></ul></ul><ul><ul><li>     mov  ds,ax </li></ul></ul><ul><ul><li>     mov  al,value1     ; load the AL register </li></ul></ul><ul><ul><li>     xchg  value2,al     ; exchange AL and value2 </li></ul></ul><ul><ul><li>     mov  value1,al     ; store AL back into value1 </li></ul></ul><ul><ul><li>     mov  ax,4C00h      ; exit program </li></ul></ul><ul><ul><li>     int  21h </li></ul></ul><ul><ul><li>main endp </li></ul></ul><ul><ul><li>end main </li></ul></ul>
  18. 18. Arahan aritmetik <ul><li>Melibatkan arahan tambah (ADD), tolak (SUB), darab (MUL) dan bahagi (DIV) </li></ul><ul><li>Juga mengandungi variasi arahan-arahan ini </li></ul><ul><li>Membentuk arahan-arahan seperti arahan ADC beserta arahan nilai bendera bawa </li></ul>
  19. 19. ADD (ADD ition ) <ul><li>Melakukan penambahan di antara operan sumber dan operan destinasi dan hasil di simpan di dalam operan destinasi </li></ul><ul><li>Format </li></ul><ul><li>ADD OD,OS di mana OD=operan destinasi </li></ul><ul><li> OS=operan sumber </li></ul><ul><li>ADD OD,OS </li></ul><ul><li>OD+OS  OD </li></ul><ul><li>(jika ada bawa, bendera bawa, </li></ul><ul><li>CF=1) </li></ul>
  20. 20. Arahan ADD <ul><li>Operan sumber boleh sebagai daftar, nilai segera atau ingatan </li></ul><ul><li>Operand destinasi boleh sebagai daftar atau ingatan </li></ul><ul><li>Hanya satu operan boleh sebagai operan ingatan </li></ul>
  21. 21. ADD Instruction Examples .data membyte db 25 memword dw 36 doubleVal dd 12340000h .code add al,5 add bx,ax add eax,edx add membyte,al add memword,bx add doubleVal,edx
  22. 22. <ul><li>Kombinasi operan destinasi dan operan sumber yang dibenarkan </li></ul>ADD BYTE PTR [BX],5H Nilai segera Ingatan ADD AX,35 Nilai segera Daftar am ADD AX,[BX] Daftar am Ingatan ADD [BX],AX Ingatan Daftar am ADD AX,DX Daftar am Daftar am Contoh arahan Operan destinasi Operan sumber
  23. 23. Contoh arahan <ul><li>Jika AX=1234H, BX=0001H, maka </li></ul><ul><li>ADD AX,BX adalah seperti jadual di bawah </li></ul>1 EF00H 0134H Selepas x EF00H 1234H Sebelum 2 0 0001H 1235H Selepas x 0001H 1234H Sebelum 1 Bendera Bawa BX AX
  24. 24. Arahan SUB <ul><li>Format : SUB OD, OS di mana OS operan sumber </li></ul><ul><li>OD operan destinasi </li></ul><ul><li>Menolak operak sumber dari operan destinasi </li></ul><ul><li>Operan sumber boleh jadi daftar, nilai segera atau ingatan </li></ul><ul><li>Operan destinasi boleh jadi daftar atau ingatan </li></ul><ul><li>Hanya satu operan boleh jadi operan ingatan </li></ul>
  25. 25. Contoh Arahan SUB .data membyte db 25 memword dw 36 doubleVal dd 12340000h .code sub al,5 sub bx,ax sub eax,edx sub membyte,al sub memword,bx sub doubleVal,edx

×