SIMD——MMX指令的溢出处理
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                SIMD——MMX指令的溢出处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                - MMX中的Saturation 和 WrapAround規定- 1定義
- 2MMX處理方式
- 3示例
 
MMX中的Saturation 和 WrapAround規定
本文主要為Intel 64 and IA-32 Architectures Software Developer’s Manual中9.3節關于MMX對整數飽和運算(Saturation)以及截至運算( WrapAround)的理解
1定義
- Saturation(飽和運算):當運算結果大于上限或小于下限時,結果保存為其上限或下限值
- WrapAround:當運算結果溢出時,結果忽略進位或溢出位的數值
2MMX處理方式
針對溢出情況MMX指令提供三種處理方式:
- 溢出時截斷運算(Wraparound arithmetic):忽略結果的進位或溢出位,只保留最低的有意義位。
- 有符號飽和運算(Signed saturation arithmetic):溢出時根據情況保留正溢出值或負溢出值,如下表
- 無符號飽和運算(Unsigned Saturation arithmetic):溢出時根據情況保留正溢出值或負溢出值,如下表
| 數據類型 | 負溢出值 | 正溢出值|
| ——– |: ——–:| :–: |
| Signed byte(有符號字節整數)| -128| 127 |
| Signed word(有符號字整數)| -32768| 232767 |
| Unsigned byte(無符號字節整數)| 0 | 255|
|Unsigned word(無符號字整數)|0|65535|
注:MMX指令不能使用EFLAGS或產生異常來檢測是否溢出。
3示例
總結
以上是生活随笔為你收集整理的SIMD——MMX指令的溢出处理的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: MMX指令集系列之二----移位运算和乘
- 下一篇: SIMD——MMX指令集介绍
