寄存器 注:名字以字母‘E’開頭的寄存器表示32位,如EAX 32位,AX 16位,AL是低8位,AH是8-15位
32位CPU的8個(gè)通用寄存器:EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI 數(shù)據(jù)寄存器EAX, EBX, ECX, EDX EAX:累加寄存器,是很多加法乘法指令的缺省寄存器 EBX:基址寄存器,在內(nèi)存尋址時(shí)存放基地址 ECX:計(jì)數(shù)寄存器,是重復(fù)(REP)前綴指令和LOOP指令的內(nèi)定計(jì)數(shù)器 EDX:數(shù)據(jù)寄存器,總是被用來(lái)放整數(shù)除法產(chǎn)生的余數(shù)
段寄存器 DS: 段寄存器,指向當(dāng)前運(yùn)行著的程序的數(shù)據(jù)段。 ES: 額外的段寄存器 SS: 棧段寄存器,指向棧段
索引寄存器ESI, EDI ESI:源索引寄存器 EDI:目的索引寄存器 在很多字符串操作指令中,DS:ESI指向源串,而ES:EDI指向目標(biāo)串
指針寄存器 ip:指令指針寄存器,存儲(chǔ)的是CPU下次要執(zhí)行的指令的地址,CS:IP用來(lái)指示當(dāng)前運(yùn)行的指令地址,不能直接訪問(wèn)CS,也不能直接訪問(wèn)IP BP:基址指針寄存器,也叫棧基址寄存器,存儲(chǔ)的是棧的棧底指針,經(jīng)常被用作高級(jí)語(yǔ)言函數(shù)調(diào)用的“框架指針”(frame pointer)。 一個(gè)標(biāo)準(zhǔn)的函數(shù)起始代碼如下: push ebp;保存當(dāng)前ebp mov ebp, esp;EBP設(shè)為當(dāng)前堆棧指針 sub esp, xxx;預(yù)留xxx字節(jié)給函數(shù)臨時(shí)變量 這樣一來(lái),EBP構(gòu)成了該函數(shù)的一個(gè)框架,在EBP上放分別是原來(lái)的EBP,返回地址和參數(shù)。EBP下方則是臨時(shí)變量,函數(shù)返回時(shí)作mov esp,ebp/pop ebp/ret即可 SP:ESP寄存器存儲(chǔ)的棧的棧頂指針,始終指向棧頂。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注