Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Stack Segment & Bahasa Assembly
Triyogatama Wahyu Widodo
2
Triyogatama Wahyu Widodo
Mengenai Segmen Stack Mengapa diperlukan? Apa gunanya stack? Apa kekurangannya? Bagaimana mengakses stack? Operasi apa yang dapat dilakukan pada stack? Apa beda segmen kode dengan segmen stack? Krn tidak mungkin menjejalkan register sebanyak mungkin dan setiap program mempunyai teknik masing2 Utk menyimpan data secara temporer Aksesnya lebih lambat SS:SP dan SS:BP (untuk aplikasi khusus, terutama parameter passing pada C) PUSH/POP -> 16 bit register Arahnya: kode awalnya dr depan & increment, stack awalnya dr belakang & decrement Triyogatama Wahyu Widodo
3
Triyogatama Wahyu Widodo
Contoh Triyogatama Wahyu Widodo
4
Triyogatama Wahyu Widodo
Serba-serbi Segmen Satu alamat fisik dapat diperoleh dari beberapa alamat logik Alamat logik berputar kembali ke awal (wrap around) jika lebih dari alamat fisiknya Triyogatama Wahyu Widodo
5
Triyogatama Wahyu Widodo
Serba-serbi Segmen Triyogatama Wahyu Widodo
6
Triyogatama Wahyu Widodo
Serba-serbi Segmen Dimungkinkan 2 segmen untuk saling tindih (overlap) Triyogatama Wahyu Widodo
7
Triyogatama Wahyu Widodo
Bahasa Assembly Bahasa mesin: 0 dan 1 Rumit: ????? Banyak salah Bahasa assembly: mnemonic, singkatan (umumnya 3 karakter) Lebih mudah dipahami Mengurangi kesalahan Mnemonic machine language: assembler Triyogatama Wahyu Widodo
8
Program dalam Bahasa Assembly
Terdiri dari baris-baris instruksi bahasa Assembly Instruksi bahasa Assembly terdiri dari mnemonic diikuti dengan nol, satu atau dua operan Operan adalah data yang diolah/dimanipulasi Mnemonic adalah perintah kepada CPU untuk melakukan sesuatu pada operan Triyogatama Wahyu Widodo
9
Struktur Bahasa Assembly
INSTRUKSI/MNEMONIC [OPERAN1[, OPERAND2]] Opsional Triyogatama Wahyu Widodo
10
Instruksi MOV(E) dan ADD
MOV destination, source ADD destination, source Triyogatama Wahyu Widodo
11
Triyogatama Wahyu Widodo
Contoh Instruksi MOV Triyogatama Wahyu Widodo
12
Triyogatama Wahyu Widodo
Fakta Instruksi MOV Menyalin, bukan memindah Dua operan harus sama ukurannya, 8 bit semua atau 16 bit semua Flag register tidak bisa menjadi operan Tidak boleh menyalin data secara langsung ke segment register (CS, DS, ES, SS) melalui nonsegment register Tidak dapat menyalin data dengan ukuran yang lebih besar Triyogatama Wahyu Widodo
13
Triyogatama Wahyu Widodo
Contoh Instruksi ADD Triyogatama Wahyu Widodo
14
Triyogatama Wahyu Widodo
Fakta Instruksi ADD Dua operan harus sama ukurannya, 8 bit semua atau 16 bit semua Menjumlahkan dengan hasil penjumlahan menimpa data pada operan tujuan Hanya dapat dilakukan pada nonsegment register Triyogatama Wahyu Widodo
15
Triyogatama Wahyu Widodo
Pengalamatan Register: MOV AX, BX Immediate: MOV AX, 1000H Direct: MOV AX, [0200] (DS:0200) Register indirect: MOV AX, [SI] (DS:SI, DS:DI, DS:BX) Based relative: MOV AX, [BX]+10 (DS:BX, SS:BP) Indexed relative: MOV AX, [SI]+1 (DS:SI, DS:DI) Based indexed relative: MOV AX, [BX][DI]+3 (DS:BX+SI/DI, SS:BP+SI/DI) Segment override: MOV AL, ES:[BX] Triyogatama Wahyu Widodo
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.