1、在運算子後面加上字母P:表示該指令執行完後,還進行一次堆疊彈出操作。如:FADD和FADDP等;
2、在運算子後面加上字母R:表示該操作是反模式,它僅限於減法、除法指令。如:FSUB和FSUBR等;
正模式——棧頂資料=棧頂資料op指令運算元,或OPN1=OPN1–OPN2
反模式——棧頂資料=指令運算元op棧頂資料,或OPN1=OPN2–OPN1
假設:棧頂資料為10,記憶體變數data的值為1,分別執行下列指令將有不同的結果。
FSUBdata;指令執行後,棧頂資料為9
FSUBRdata;指令執行後,棧頂資料為-9
FSUBST,ST(1);指令執行後,ST=ST-ST(1)
FSUBRST,ST(1);指令執行後,ST=ST(1)-ST
3、運算子的第2個字母是I:表示記憶體中資料是整數。它對加、減、乘除指令都有效。
例如:FADD data——浮點數加法;
FIADD data——整數加法,它表示記憶體單元data是一個整數,把該整數加到棧頂的浮點數上。
4、運算子的第2個字母是N:表示在指令執行之前檢查非遮蔽數值性錯誤。如:FSAVE和FNSAVE等,前者稱為等待形式(waitversion),後者稱為非等待形式(no-waitversion)。
在使用.8087偽指令情況下,彙編程式會在等待形式的指令前面加上指令WAIT,而在非等待形式的指令前面加上空操作指令NOP。
1、在運算子後面加上字母P:表示該指令執行完後,還進行一次堆疊彈出操作。如:FADD和FADDP等;
2、在運算子後面加上字母R:表示該操作是反模式,它僅限於減法、除法指令。如:FSUB和FSUBR等;
正模式——棧頂資料=棧頂資料op指令運算元,或OPN1=OPN1–OPN2
反模式——棧頂資料=指令運算元op棧頂資料,或OPN1=OPN2–OPN1
假設:棧頂資料為10,記憶體變數data的值為1,分別執行下列指令將有不同的結果。
FSUBdata;指令執行後,棧頂資料為9
FSUBRdata;指令執行後,棧頂資料為-9
FSUBST,ST(1);指令執行後,ST=ST-ST(1)
FSUBRST,ST(1);指令執行後,ST=ST(1)-ST
3、運算子的第2個字母是I:表示記憶體中資料是整數。它對加、減、乘除指令都有效。
例如:FADD data——浮點數加法;
FIADD data——整數加法,它表示記憶體單元data是一個整數,把該整數加到棧頂的浮點數上。
4、運算子的第2個字母是N:表示在指令執行之前檢查非遮蔽數值性錯誤。如:FSAVE和FNSAVE等,前者稱為等待形式(waitversion),後者稱為非等待形式(no-waitversion)。
在使用.8087偽指令情況下,彙編程式會在等待形式的指令前面加上指令WAIT,而在非等待形式的指令前面加上空操作指令NOP。