汇编中的通用寄存器、标志寄存器、段寄存器
通用寄存器:
? ?寄存器和變量差不多,目的都是用于保存一些即將操作的數據
EAX(accumulator) 寄存器:擴展累加寄存器(一般在乘/除中會被主動調用),也可以用于其他用途
ECX(Count) 寄存器:循環計數器,多數情況下可以作為其他用途
EDX(Data) 寄存器:數據寄存器,常用來存放八字長數據的高32位,可以作為其他用途
EBX(Base) 寄存器:基址寄存器,常用來存放存儲器地址,可作為其他用途
ESP(stack pointer) 寄存器:指向堆棧(最上面棧幀的棧頂),絕大多數情況不可作為他用
EBP(base pointer) 寄存器:指向最上面一個棧幀的棧頂的底部,一般情況不作為他用。
ESI(source index) ?寄存器:擴展源指針(由高速內存數據傳送指令使用),可以作為他用
EDI(destination ?index) ?寄存器:擴展目的指針(由高速內存數據傳送指令使用),可以作為他用
EIP 寄存器:指令指針(下一條要執行的指令地址),幾乎不可以挪作他用
?標志寄存器
? ? ? ?CF (Carry Flag) ? 進位標志,當最高位發生進位或借位時為1,可用于檢測無符號數二進制加減法運算時是否發生溢出(溢出時 CF=1)
? ? ? ?OF (Overflow Flag) ? 溢出標志 ? ?記錄運算結果是否超出機器能表示的范圍,如果超出則置為1.可用于檢測帶符號數運算時是否發生溢出(溢出時OF=1)
? ? ? ?ZF ?(Zero Flag) ?零標志 ? ? ? ?記錄運算結果是否為0,如果為0則置為1,如果不為0,則置為0
? ? ? ?SF ?(Sign Flag) ? 符號標志 ? ?記錄運算結果的符號,結果為負則置為1,否則置為0
? ? ? ?PF ? ?奇偶標志 ? ?不常用
? ? ? ?AF ? ?輔助進位標志 不常用
段寄存器
? ? ? ? (Segment 段)
? ? ? ? CS(Code ?Segment) ? 代碼段寄存器 ? 代碼段寄存器,指定當前代碼段,代碼段中存放當前正在運行的程序段。
? ? ? ? DS(Data ? Segment) ? 數據段寄存器 ? 數據段寄存器,指定當前運行程序所使用的數據段。
? ? ? ? SS(Stack ?Segment) ? 堆棧段寄存器 ? 數據段寄存器,指定當前運行程序所使用的數據段。
? ? ? ? ES(extra ? Segment) ?附加段寄存器 ? 數據段寄存器,指定當前運行程序所使用的數據段。
? ? ? ? DS ? ? ? ? 無明確說明
? ? ? ? GS? ??? ???無明確說明
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的汇编中的通用寄存器、标志寄存器、段寄存器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类中的多种构造函数
- 下一篇: VS2017 快捷键