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