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