Sedikit tambahan bagi para programmer bahasa tingkat tinggi. Umumnya, tipe data sehari-hari adalah integer. Nah, tipe data tersebut biasanya mengikuti bit prosesornya. Jika kamu memakai Turbo C, maka kamu akan menemukan bahwa ukuran integer adalah 2 byte atau 16-bit. Ini karena Turbo C adalah program DOS 16-bit. Pada compiler 32-bit, misalnya Visual Basic, tipe data integer memiliki ukuran 32-bit atau 4 byte. Ini adalah tipe data paling optimal untuk prosesor 32-bit!! Nilai yang bisa ditampung untuk integer di prosesor 32-bit mulai dari -2.147.483.648 sampai 2.147.483.647. Dan bisa ditebak dengan mudah, tipe data yang paling optimal untuk prosesor 64-bit adalah tipe data long. Tipe data long memiliki ukuran 8-byte (atau 64-bit) dengan nilai mulai dari -9.223.372.036.854.775.808 sampai 9.223.372.036.854.775.807!!!! Compiler untuk prosesor 64-bit biasanya menyediakan tipe data integer 64-bit. Pada .NET Framework 2, misalnya, terdapat tipe data Int64! Daftar instruksi milik prosesor dengan arsitektur AMD64 dapat dibedakan menjadi empat kategori, yaitu: General-Purpose Instructions - Perintah umum yang sering kamu gunakan sehari-hari, seperti yang kamu pelajari di buku-buku assembler. 128-bit Media Instructions - Perintah SIMD (Single Instruction Multiple Data) yang beroperasi memakai register XMM 128-bit. Dikenal juga sebagai SSE, SSE2, SSE3, dan SSE4A. Umumnya dipakai untuk aplikasi yang membutuhkan kinerja tinggi dan beroperasi pada rangkaian data, seperti aplikasi scientific. 64-bit Media Instructions - Perintah multimedia, MMX dan AMD 3DNow! yang beroperasi memakai register MMX 64-bit. Disertakan sebagai kompatibilitas, programmer untuk program baru sebaiknya beralih ke instruksi 128-bit! AMD tidak merekomendasikan memakai AMD 3DNow! lagi. x87 Floating-Point Instructions - Digunakan untuk operasi bilangan pecahan (memiliki angka dibelakang koma)..sorry aku lupa bagaimana harus menyebut bilangan real dalam istilah matematika.. Lagi-lagi ini hanya untuk kompatibilitas dengan program yang masih memakai instruksi FPU x87. Kenapa harus memiliki instruksi khusus untuk pemograman media seperti pengolahan gambar (Photoshop) dan rendering 3D (3DsMax dan Maya)? Kenapa tidak memakai instruksi 'biasa' yang kita pelajari di buku-buku assembler, seperti MOV biasa? Well, pemograman media biasanya memproses data dalam jumlah besar! Mereka juga umumnya melakukan urutan operasi yang sama berulang kali pada data-data yang ada. Data terkecil biasanya direpresentasi dalam bentuk 8-bit (untuk piksel, misalnya), 16-bit (untuk audio) atau 32-bit (koordinat dalam bentuk bilangan real). Dengan instruksi khusus bagi media, kita dapat meningkatkan kinerja prosesor untuk program multimedia tersebut!!! Ok, lalu apa itu floating-point instructions? Pernahkah kamu mencoba menghitung: 1.25455 x 5343.3424 dengan bilangan binary dalam assembler? Atau coba hitung: COS(345.344) atau SIN(5.4342) dengan menggunakan assembler? Kecuali kamu adalah ahli matematika dan jenius pekerja keras, kamu akan kewalahan seperti aku. Floating-point instructions diciptakan untuk operasi bilangan floating-point (memiliki angka dibelakang koma) seperti itu!! Ok, kembali ke modus kerja prosesor berbasis AMD64... Tunggu, apa itu modus kerja? Well, saat komputer pertama kali dinyalakan, prosesor bekerja pada modus real mode. Nah, setelah kode program BIOS selesai dikerjakan oleh prosesor, kini giliran OS! Umumnya, dan pastinya, semua OS zaman sekarang akan melakukan peralihan modus kerja prosesor... Aku tidak menemukan OS baru zaman sekarang yang masih memakai real mode!! Bahkan Linux dalam shell berbasis command (mirip tampilan DOS) bekerja dalam protected mode. Begitu juga dengan OS yang akan aku buat nanti, SOS, walaupun tampilannya mirip DOS, ia juga bekerja dalam protected mode (say bye2 to virus and malware). Sistem operasi tentunya hanya boleh memilih satu saja modus kerja prosesor: bila ia bekerja di protected mode, maka ia tidak bekerja di real mode lagi! Tapi kadang-kadang prosesor juga bisa melakukan perubahan modus untuk sementara. Misalnya, sistem operasi 64-bit saat mengerjakan program 32-bit akan memasuki modus Compatibility Mode, setelah selesai, ia akan kembali ke 64-bit Mode lagi. Untuk melakukan perpindahan modus kerja prosesor, ada sebuah control register yang perlu diisi oleh kode program sistem operasi. Lalu apa pilihan modus kerja yang disediakan oleh prosesor berbasis AMD64? Yaitu sebagai berikut: Long Mode, terdiri dari: 64-bit Mode Untuk memakai modus ini, kita harus punya sistem operasi 64-bit! Sistem operasi 64-bit tersebut memungkinkan program 32-bit saat ini masih dijalankan melalui Compatibility Mode (baca item di bawah!). Dalam modus ini, RIP (Instruction Pointer) berukuran 64-bit. Juga ada tambahan General Purpose Register sebanyak 8 buah (R8-R15) dan ukurannya kini 64-bit. Compatibility Mode Modus ini dipakai oleh sistem operasi 64-bit untuk dapat menjalankan kode 32-bit tanpa kompilasi ulang. Bagi pengguna, ini tidak berbeda dari Legacy Mode. Tapi bagi OS, ini adalah bagian dari modus 64-bit karena pengalamatan, interrupt dan struktur data lain berada dalam 64-bit. Legacy Mode, ini adalah modus yang dipakai jika sistem operasi-mu masih 32-bit, terdiri dari: Protected Mode Sistem operasi Windows 98SE, Windows XP 32-bit, Linux 32-bit dan lainnya berjalan pada modus ini. Memori yang dapat diakses oleh program maksimal hanya 4 GB. Virtual 8086 Mode Ini adalah modus yang dipakai oleh sistem operasi 32-bit untuk menjalankan program 16-bit real mode! Misalnya, pada sistem operasi Windows 98SE, aku bisa memilih Command Prompt untuk memasuki Virtual 8086 Mode. Real Mode Murni dalam 16-bit, merupakan modus terendah yang didukung! Ini untuk mempertahankan agar prosesor tetap dapat menjalankan program DOS dan sejenisnya yang kira-kira generasi tahun 1980-an!! Memori maksimal yang dapat diakses oleh program maksimal hanya 1 MB. Wew, setelah melihat di atas, kalian pasti kagum dengan prosesor di IBM-PC Compatible atau istilah gaulnya, komputer pribadi! Mereka sampai sekarang tetap mempertahankan agar dapat menjalankan program tahun 1980-an yang saat itu mungkin memori ukuran 1 MB sudah cukup besar. Ini mungkin adalah kelebihan prosesor PC, atau mungkin juga kekurangan prosesor PC.