32位通用暫存器
32位:eax ebx ecx edx esp ebp esi edi 每個暫存器的最大寬度是32位
16位:ax bx cx dx sp bp si di
8位 :al bl cl dl ah bh ch dh
想暫存器存乙個數字可以用mov指令
mov eax,1 就是把1存到eax暫存器中
程式記憶體
乙個32位的程式最大儲存空間是4g
就是從0~0xffff的取值範圍
每個值都是乙個記憶體位址都對應一塊記憶體
沒快記憶體就是8位
mov ecx,dword ptr ds:[0xc1faf8]
把記憶體0xc1faf8上的資料複製到ecx暫存器上
mov dword ptr ds:[0xc1faf8],ecx
把ecx上的資料複製到0xc1faf8
彙編位址編號的物種形式
第一種:
mov dword ptr ds:[0xc1faf8],124323
第二種:【reg】
ecx=c1faf8
mov dword ptr ds:[ecx],1234233
第三種:【reg+立即數】
ecx=c1faf4
c1faf8=1233213
mov eax,dword ptr ds:[ecx+4]
第四種:[reg+reg*]
讀取值mov eax,c1faf4
mov ecx,2
mov edx,dword ptr ds:[eax+ecx*4]
寫入值mov eax,c1faf4
mov ecx,2
mov dword ptr ds:[eax+ecx*4],12345678
第五種:【reg+reg*+立即數】
讀取值mov eax,c1faf4
mov ecx,2
mov edx,dword ptr ds:[eax+ecx*4+4]
寫入值mov eax,c1faf4
mov ecx,2
mov dword ptr ds:[eax+ecx*4+4],12345678
64位和32位的暫存器和彙編的比較
區別有 順帶提乙個小問題,64位的彙編 在ret之前可能會加一句rep,這裡的rep沒有實際意義,只是出於amd處理器的原因,避免jmp所到達的地方直接就是ret,這樣會使得處理器執行更快一些。但是現在的棧幀經常是固定大小的,在函式呼叫的最開始就被設定,在整個呼叫期間,棧頂指標保持不變,這樣就可以通...
64位暫存器與彙編
64位暫存器分配的不同 順帶提乙個小問題,64位的彙編 在ret之前可能會加一句rep,這裡的rep沒有實際意義,只是出於amd處理器的原因,避免jmp所到達的地方直接就是ret,這樣會使得處理器執行更快一些。但是現在的棧幀經常是固定大小的,在函式呼叫的最開始就被設定,在整個呼叫期間,棧頂指標保持不...
彙編常見暫存器以及標誌位
簡寫 英文全稱 中文作用 axaccumulator 累加器存放運算元,與外部裝置 bxbase 通用暫存器 基址暫存器 計算儲存器位址時用 cxcount 通用暫存器 儲存計數值 移位指令,迴圈指令,串處理指令中用作隱含的計數器 dxdata 通用暫存器 雙字長運算時存放高位字或存放i o埠位址 ...