⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basop.c

📁 嵌入式linux系统的网络编程(C++) 在ARM上实现视频会议 此程序获得全国研究生电子大赛一等奖 压缩包内为全部源码
💻 C
📖 第 1 页 / 共 5 页
字号:
 |   Complexity weight : 1                                                   | |                                                                           | |   Inputs :                                                                | |                                                                           | |    L_var3   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |    var1                                                                   | |             16 bit short signed integer (Word16) whose value falls in the | |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   | |                                                                           | |    var2                                                                   | |             16 bit short signed integer (Word16) whose value falls in the | |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   | |                                                                           | |   Outputs :                                                               | |                                                                           | |    none                                                                   | |                                                                           | |   Return Value :                                                          | |                                                                           | |    L_var_out                                                              | |             32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              | |                                                                           | |   Caution :                                                               | |                                                                           | |    In some cases the Carry flag has to be cleared or set before using op- | |    rators which take into account its value.                              | |___________________________________________________________________________|*/Word32 L_macNs(Word32 L_var3, Word16 var1, Word16 var2){    Word32 L_var_out;    L_var_out = L_mult(var1, var2);    L_var_out = L_add_c(L_var3, L_var_out);    return(L_var_out);}/*___________________________________________________________________________ |                                                                           | |   Function Name : L_msuNs                                                 | |                                                                           | |   Purpose :                                                               | |                                                                           | |   Multiply var1 by var2 and shift the result left by 1. Subtract the 32   | |   bit result from L_var3 without saturation, return a 32 bit result. Ge-  | |   nerate carry and overflow values :                                      | |        L_msuNs(L_var3,var1,var2) = L_sub_c(L_var3,(L_mult(var1,var2)).    | |                                                                           | |   Complexity weight : 1                                                   | |                                                                           | |   Inputs :                                                                | |                                                                           | |    L_var3   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |    var1                                                                   | |             16 bit short signed integer (Word16) whose value falls in the | |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   | |                                                                           | |    var2                                                                   | |             16 bit short signed integer (Word16) whose value falls in the | |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   | |                                                                           | |   Outputs :                                                               | |                                                                           | |    none                                                                   | |                                                                           | |   Return Value :                                                          | |                                                                           | |    L_var_out                                                              | |             32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              | |                                                                           | |   Caution :                                                               | |                                                                           | |    In some cases the Carry flag has to be cleared or set before using op- | |    rators which take into account its value.                              | |___________________________________________________________________________|*/Word32 L_msuNs(Word32 L_var3, Word16 var1, Word16 var2){    Word32 L_var_out;    L_var_out = L_mult(var1,var2);    L_var_out = L_sub_c(L_var3,L_var_out);    return(L_var_out);}/*___________________________________________________________________________ |                                                                           | |   Function Name : L_add                                                   | |                                                                           | |   Purpose :                                                               | |                                                                           | |   32 bits addition of the two 32 bits variables (L_var1+L_var2) with      | |   overflow control and saturation; the result is set at +214783647 when   | |   overflow occurs or at -214783648 when underflow occurs.                 | |                                                                           | |   Complexity weight : 2                                                   | |                                                                           | |   Inputs :                                                                | |                                                                           | |    L_var1   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |    L_var2   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |   Outputs :                                                               | |                                                                           | |    none                                                                   | |                                                                           | |   Return Value :                                                          | |                                                                           | |    L_var_out                                                              | |             32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              | |___________________________________________________________________________|*/Word32 L_add(Word32 L_var1, Word32 L_var2){    Word32 L_var_out;    L_var_out = L_var1 + L_var2;    if (((L_var1 ^ L_var2) & MIN_32) == 0L) {        if ((L_var_out ^ L_var1) & MIN_32) {            L_var_out = (L_var1 < 0L) ? MIN_32 : MAX_32;            Overflow = 1;        }    }    return(L_var_out);}/*___________________________________________________________________________ |                                                                           | |   Function Name : L_sub                                                   | |                                                                           | |   Purpose :                                                               | |                                                                           | |   32 bits subtraction of the two 32 bits variables (L_var1-L_var2) with   | |   overflow control and saturation; the result is set at +214783647 when   | |   overflow occurs or at -214783648 when underflow occurs.                 | |                                                                           | |   Complexity weight : 2                                                   | |                                                                           | |   Inputs :                                                                | |                                                                           | |    L_var1   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |    L_var2   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |   Outputs :                                                               | |                                                                           | |    none                                                                   | |                                                                           | |   Return Value :                                                          | |                                                                           | |    L_var_out                                                              | |             32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              | |___________________________________________________________________________|*/Word32 L_sub(Word32 L_var1, Word32 L_var2){    Word32 L_var_out;    L_var_out = L_var1 - L_var2;    if (((L_var1 ^ L_var2) & MIN_32) != 0L) {        if ((L_var_out ^ L_var1) & MIN_32) {            L_var_out = (L_var1 < 0L) ? MIN_32 : MAX_32;            Overflow = 1;        }    }    return(L_var_out);}/*___________________________________________________________________________ |                                                                           | |   Function Name : L_add_c                                                 | |                                                                           | |   Purpose :                                                               | |                                                                           | |   Performs 32 bits addition of the two 32 bits variables (L_var1+L_var2+C)| |   with carry. No saturation. Generate carry and Overflow values. The car- | |   ry and overflow values are binary variables which can be tested and as- | |   signed values.                                                          | |                                                                           | |   Complexity weight : 2                                                   | |                                                                           | |   Inputs :                                                                | |                                                                           | |    L_var1   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |    L_var2   32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 | |                                                                           | |   Outputs :                                                               | |                                                                           | |    none                                                                   | |                                                                           | |   Return Value :                                                          | |                                                                           | |    L_var_out                                                              | |             32 bit long signed integer (Word32) whose value falls in the  | |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              | |                                                                           | |   Caution :                                                               | |                                                                           | |    In some cases the Carry flag has to be cleared or set before using op- | |    rators which take into account its value.                              | |___________________________________________________________________________|*/Word32 L_add_c(Word32 L_var1, Word32 L_var2){    Word32 L_var_out;    Word32 L_test;    Flag carry_int = 0;    L_var_out = L_var1 + L_var2 + (Word32)Carry;    L_test = L_var1 + L_var2;    if ((L_var1 > 0L) && (L_var2 > 0L) && (L_test < 0L)) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -