32位 64彙編區別

2021-09-10 14:30:33 字數 722 閱讀 2163

64位(新增)彙編指令的不同

mov指令和push pop擴充套件了movq系列的mov和pushq以及popq用來操作quad word。

注意:movabsq不是32位的擴充套件,是純新增的指令。用來將乙個64位的字面值直接存到乙個64位暫存器中。因為movq只能將32位的值存入,所以新增了這樣一條指令。

順帶提乙個小問題,64位的彙編**在ret之前可能會加一句rep,這裡的rep沒有實際意義,只是出於amd處理器的原因,避免jmp所到達的地方直接就是ret,這樣會使得處理器執行更快一些。

但是現在的棧幀經常是固定大小的,在函式呼叫的最開始就被設定,在整個呼叫期間,棧頂指標保持不變,這樣就可以通過對其再加上偏移量來對相應的值進行操作,於是ebp就不再需要作為棧幀指標了。

雖然很多時候我們認為沒有「棧幀」,但是每次函式呼叫都一定有乙個返回位址被壓棧,我們可以也認為這乙個位址就是乙個「棧幀」,因為它也儲存了呼叫者的狀態。

32位 和 64位系統區別

1.32位系統cpu一次可處理32位資料,即一次處理4個位元組。64位系統cpu一次可處理64位資料,即一次處理8個位元組。通俗一點說 32位,就相當於你擁有32個工人,每次能完成32個工人的工作量 64位,就相當於你擁有64個工人,每次能完成64個工人的工作量 總結 由32位系統過渡到64位系統,...

32位和64位的區別

一 支援的記憶體不同 32位的作業系統,最多支援4g的記憶體,實際記憶體為3.25g 64位系統支援4g 8g 16g 32g 64g 128g 256g記憶體,理論上可以無限支援,只要你主機板上有足夠的記憶體條。二 支援的處理器不同 64位的作業系統支援基於64位的處理器,而32位的系統卻不能完全...

32位和64位程式的區別

由於作業系統記憶體分配的不同,導致軟體開發過程中,需要編譯不同版本的軟體,此處以vs為例。1 編譯程式根據需要選擇不同的編譯環境 x86和win32位32位程式,x64為64位程式,可以選擇不同的編輯條件形成不同位的軟體。2 中的基本的資料型別,會根據作業系統的位數分配記憶體大小 如int型在32位...