


Apakah perbezaan antara x64 dan x86 dalam linux
Perbezaan: 1. Peruntukan daftar yang berbeza, x64 mempunyai 16 daftar, x86 hanya mempunyai 8 daftar 2. Arahan pemasangan yang berbeza; tidak mempunyai penuding bingkai tindanan, manakala x86 menggunakan ebp sebagai penunjuk bingkai tindanan 6. Kelajuan pengkomputeran x64 lebih tinggi daripada x86.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
Perbezaan antara Linux x86 (32-bit) dan x64 (64-bit)
0x01: Perbezaan dalam peruntukan daftar
(1) Terdapat 16 daftar dalam 64-bit dan hanya 8 dalam 32-bit. Tetapi 8 bit pertama 32-bit mempunyai nama yang berbeza, iaitu e_, manakala lapan pertama daripada 64-bit menggunakan r dan bukannya e, iaitu r_. Penamaan daftar bermula dengan e masih boleh digunakan secara langsung pada 32 bit bawah daftar yang sepadan, manakala nama daftar yang selebihnya adalah dari r8 - r15, dan bit bawah ditetapkan oleh d, w, dan b masing-masing
(; 2) 32 bit Gunakan bingkai tindanan sebagai lokasi penyimpanan parameter yang diluluskan, dan gunakan daftar 64-bit, menggunakan rdi, rsi, rdx, rcx, r8, r9 sebagai parameter 1-6 masing-masing, dan rax sebagai nilai pulangan ;
(3) 64-bit tidak mempunyai penuding bingkai tindanan, 32-bit menggunakan ebp sebagai penunjuk bingkai tindanan, 64-bit membatalkan tetapan ini dan rbp digunakan sebagai daftar umum; ) 64-bit menyokong beberapa bentuk pengalamatan berkaitan PC, 32-bit hanya menggunakan kaedah pengalamatan ini apabila menggunakan jmp;
mov, push dan pop lanjutkan siri movq mov dan pushq dan popq untuk mengendalikan perkataan quad.
(2) Kod pemasangan 64-bit boleh menambah wakil sebelum ret, di sini rep tidak mempunyai makna praktikal, hanya kerana pemproses AMD, untuk mengelakkan tempat di mana jmp sampai adalah terus ret, yang akan menjadikan pemproses berjalan lebih cepat
0x03: Perbezaan dalam panggilan fungsi
(1) x_64 parameter dihantar melalui daftar (lihat di atas); yang tidak boleh meletakkan semua pembolehubah tempatan dalam daftar akan memperuntukkan ruang pada tindanan; (3) Fungsi boleh memperoleh sehingga 128 bait ruang tindanan. Dengan cara ini, fungsi boleh menyimpan maklumat pada tindanan tanpa mengubah penuding tindanan (iaitu, ruang 128-bait di bawah rsp boleh digunakan terlebih dahulu. Ruang ini dipanggil zon merah. Dalam x86-64, ia tersedia pada setiap masa ); (4) Tiada lagi penunjuk bingkai tindanan, dan kedudukan tindanan kini berkaitan dengan penuding tindanan. Kebanyakan fungsi memperuntukkan semua ruang tindanan yang diperlukan pada permulaan panggilan, dan kemudian memastikan penuding tindanan tidak berubah (5) Sesetengah daftar direka bentuk untuk menjadi daftar storan penerima, dan ini mesti ditukar apabila nilainya diperlukan; untuk ditukar Simpan sekarang dan pulihkan kemudian.
0x04: Perbezaan dalam pemindahan parameter
(1) 6 daftar digunakan untuk memindahkan parameter (lihat
(2) Daftar selebihnya diluluskan seperti sebelumnya (tetapi ia berkaitan dengan rsp, ebp tidak lagi digunakan sebagai penuding bingkai tindanan, dan parameter ke-7 bermula dari rsp, parameter ke-8 bermula dari rsp 8, dan seterusnya) ;
(3) Apabila dipanggil, rsp bergerak ke bawah 8 bit (disimpan dalam alamat pemulangan tidak mempunyai kesan Parameter ke-7 dan seterusnya adalah yang ke-7 bermula dari rsp 8, rsp 16 Mula). dengan yang ke-8, dan seterusnya; 0x05: Perbezaan dalam bingkai tindanan
Bingkai tindanan tidak lagi diperlukan dalam banyak kes, seperti kerana Tiada fungsi lain dipanggil, dan daftar sudah cukup untuk menyimpan parameter, maka hanya alamat pemulangan yang perlu disimpan.
Situasi di mana bingkai tindanan diperlukan: (1) Terdapat terlalu banyak pembolehubah tempatan dan daftar tidak mencukupi (2) Beberapa pembolehubah tempatan ialah tatasusunan atau struktur; ) Fungsi menggunakan Ambil operator alamat untuk mengira alamat pembolehubah setempat (4) Fungsi mesti menggunakan tindanan untuk memindahkan beberapa parameter ke fungsi lain (5) Fungsi perlu menyimpan keadaan; daripada beberapa daftar yang disimpan oleh penerima ( untuk memudahkan pemulihan); daripada tindanan kekal tidak berubah, supaya ia boleh Ia digabungkan dengan ofset untuk beroperasi pada nilai yang sepadan, jadi EBP tidak lagi diperlukan sebagai penuding bingkai tindanan. Walaupun banyak kali kita berfikir bahawa tidak ada "bingkai tindanan", setiap panggilan fungsi mesti mempunyai alamat pemulangan yang ditolak ke tindanan Kita juga boleh menganggap alamat ini sebagai "bingkai tindanan" kerana ia juga menyimpan keadaan pemanggil. 0x06: Kelajuan operasi yang berbeza Cadangan berkaitan: "Tutorial Video Linux"
Lebar data CPU 64-bit ialah 64 bit, dan set arahan 64-bit boleh menjalankan 64-bit arahan data, iaitu Pemproses boleh mengekstrak data 64-bit pada satu masa, iaitu dua kali lebih tinggi daripada 32-bit Secara teori, prestasi akan digandakan dengan sewajarnya.
Atas ialah kandungan terperinci Apakah perbezaan antara x64 dan x86 dalam linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Linux sesuai untuk pelayan, persekitaran pembangunan, dan sistem tertanam. 1. Sebagai sistem pengendalian pelayan, Linux stabil dan cekap, dan sering digunakan untuk menggunakan aplikasi konkurasi tinggi. 2. Sebagai persekitaran pembangunan, Linux menyediakan alat arahan dan sistem pengurusan pakej yang cekap untuk meningkatkan kecekapan pembangunan. 3. Dalam sistem tertanam, Linux ringan dan disesuaikan, sesuai untuk persekitaran dengan sumber yang terhad.

Menggunakan Docker di Linux dapat meningkatkan kecekapan pembangunan dan penempatan. 1. Pasang Docker: Gunakan skrip untuk memasang Docker di Ubuntu. 2. Sahkan pemasangan: Jalankan Sudodockerrunhello-World. 3. Penggunaan Asas: Buat kontena Nginx Dockerrun-Namemy-Nginx-P8080: 80-Dnginx. 4. Penggunaan Lanjutan: Buat imej tersuai, bina dan lari menggunakan Dockerfile. 5. Pengoptimuman dan amalan terbaik: Ikuti amalan terbaik untuk menulis dockerfiles menggunakan pelbagai peringkat membina dan dockercompose.

Langkah-langkah untuk memulakan Apache adalah seperti berikut: Pasang Apache (perintah: sudo apt-get pemasangan apache2 atau muat turun dari laman web rasmi) Mula Apache (linux: Sudo Systemctl Mula Apache2; Windows: Klik kanan "Apache2.4" Perkhidmatan dan pilih "Mula") Boot secara automatik (Pilihan, Linux: Sudo Systemctl

Apabila port Apache 80 diduduki, penyelesaiannya adalah seperti berikut: Cari proses yang menduduki pelabuhan dan tutupnya. Semak tetapan firewall untuk memastikan Apache tidak disekat. Jika kaedah di atas tidak berfungsi, sila buat semula Apache untuk menggunakan port yang berbeza. Mulakan semula perkhidmatan Apache.

Langkah -langkah untuk memulakan pendengar oracle adalah seperti berikut: Periksa status pendengar (menggunakan arahan status lsnrctl) untuk Windows, mulakan perkhidmatan "TNS pendengar" dalam Pengurus Perkhidmatan Oracle untuk Linux dan Unix, gunakan arahan mula lsnrctl untuk memulakan pendengar untuk menjalankan arahan status lsnrctl untuk mengesahkan bahawa pendengar itu dimulakan

Artikel ini menerangkan bagaimana untuk memantau prestasi SSL pelayan Nginx secara berkesan pada sistem Debian. Kami akan menggunakan NginXExporter untuk mengeksport data status nginx ke Prometheus dan kemudian memaparkannya secara visual melalui Grafana. Langkah 1: Mengkonfigurasi Nginx Pertama, kita perlu mengaktifkan modul Stub_status dalam fail konfigurasi Nginx untuk mendapatkan maklumat status nginx. Tambahkan coretan berikut dalam fail konfigurasi nginx anda (biasanya terletak di /etc/nginx/nginx.conf atau termasuk fail): lokasi/nginx_status {stub_status

Artikel ini memperkenalkan dua kaedah mengkonfigurasi tong kitar semula dalam sistem Debian: antara muka grafik dan baris arahan. Kaedah 1: Gunakan antara muka grafik Nautilus untuk membuka Pengurus Fail: Cari dan mulakan Pengurus Fail Nautilus (biasanya dipanggil "Fail") dalam menu desktop atau aplikasi. Cari tong kitar semula: Cari folder bin kitar semula di bar navigasi kiri. Jika tidak dijumpai, cuba klik "Lokasi Lain" atau "Komputer" untuk mencari. Konfigurasikan Properties Bin Recycle: Klik kanan "Bin Kitar Semula" dan pilih "Properties". Dalam tetingkap Properties, anda boleh menyesuaikan tetapan berikut: Saiz maksimum: Hadkan ruang cakera yang terdapat dalam tong kitar semula. Masa pengekalan: Tetapkan pemeliharaan sebelum fail dipadamkan secara automatik di tong kitar semula

Untuk memulakan semula pelayan Apache, ikuti langkah -langkah ini: Linux/MacOS: Run Sudo SystemCtl Restart Apache2. Windows: Jalankan Net Stop Apache2.4 dan kemudian Net Start Apache2.4. Jalankan Netstat -A | Cari 80 untuk memeriksa status pelayan.
