Jumat, 14 Juli 2017

Bahasa Rakitan

STACK

STACK adalah suatu area di memori yang menyimpan data sementara. Stack digunakan dengan instruksi CALL untuk menyimpan  alamat  yang  dikembalikan  pada  prosedur,instruksi   RET   mengambil  nilai ini dari stack dan mengembalikannya ke offset. Stack menggunakan algoritma
LIFO (Last In First Out) artinya jika kita push nilai satu per satu kedalam stack : 1,2,3,4,5nilai pertama yang dapat kita pop adalah 5, lalu 4,3,2, dan terakhir 1.


Apa Itu Stack?
Bila kita terjemahkan secara bebas, stack artinya adalah 'tumpukan'. Stack adalah bagian memory yang digunakan untuk menyimpan nilai dari suatu register untuk sementara.
Operasi- operasi pada assembler yang langsung menggunakan stack misalnya pada perintah PUSH, POP, PUSF dan POPF. Pada program COM yang hanya terdiri atas satu segment, dimanakah letak dari memory yang digunakan untuk stack ?. Seperti pasangan CS:IP yang menunjukkan lokasi dari perintah selanjutnya yang akan dieksekusi, pada stack digunakan pasangan SS:SP untuk menunjukkan lokasi dari stack.

Membuat  sistem operasi sendiri

Biasanya, saat komputer dihidupkan akan mencoba me-load 512-byte sector pertama (Cylinder 0, Head 0, Sector 1) dari disk drive, misal A: ke lokasi memori 0000h:7C00h dan memberikan kontrolnya. Jika gagal BIOS mencoba menggunakan MBR dari hard drive primer. Dalam bagian ini akan mencoba mengcover booting dari sebuah floppy drive, dengan prinsip yang sama 
Dapat juga dilakukan di harddisk. Menggunakan floppy memiliki beberapa keuntungan:
- OS kita tetap utuh(windows, dos, linux, unix, be-os...)
- Mudah dan aman memodifikasi boot record pada floppy
disk. msg DB 'Helo ini boot program saya yang pertama ' DB new_lne, 'Tekan sembarang tombol utk reboot',0 .