彙編32位暫存器和地址編號的五種書寫形式

2022-08-05 15:03:17 字數 1136 閱讀 3846

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