FPU数据寄存器
FPU有8個獨立的、可尋址的80位數(shù)據(jù)寄存器R0-R7,如下圖所示,這些寄存器合稱為寄存器棧。FPU 狀態(tài)字中名為 TOP 的一個 3 位字段給出了當(dāng)前處于棧頂?shù)募拇嫫骶幪枴@?#xff0c;在下圖中,TOP 等于二進(jìn)制數(shù) 011,這表示現(xiàn)在棧頂為 R3。在編寫浮點指令時,這個位置也稱為 ST(0)(或簡寫為 ST)。最后一個寄存器為 ST(7)。
入棧操作
也稱為加載,將 TOP 減 1,并把操作數(shù)復(fù)制到標(biāo)識為 ST(0) 的寄存器中。如果在入棧之前,TOP 等于 0,那么 TOP 就回繞到寄存器 R7。
出棧操作
也稱為保存,把 ST(0) 的數(shù)據(jù)復(fù)制到操作數(shù),再將TOP加1。如果在出棧之前,TOP 等于 7,則 TOP 就回繞到寄存器 R0。
如果加載到堆棧的數(shù)值覆蓋了寄存器棧內(nèi)原有的數(shù)據(jù),就會產(chǎn)生一個浮點異常
下圖展示了數(shù)據(jù) 1.0 和 2.0 入棧后的堆棧情況。
注意:
- ST(0)總表示棧頂
總結(jié)
- 上一篇: 往日不再营币怎么获得
- 下一篇: 常用汇编浮点操作指令