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

📄 forth_8cpp-source.html

📁 这个是关于G.726算法的源程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00478"></a>00478     <a class="code" href="group__forth__imp.html#ga67">LIT</a>(<a class="code" href="group__forth__imp.html#gga104a160">XT_PAREN_BRANCH</a>), (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga12">XT_BACKWARD_BRANCH_COMMA</a>,   <span class="comment">// ['] (branch) &lt;BRANCH,</span><a name="l00479"></a>00479     <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a><a name="l00480"></a>00480     };<a name="l00481"></a>00481 <a name="l00482"></a>00482 <a name="l00490"></a><a class="code" href="group__forth__imp.html#ga18">00490</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga18">XT_UM_SLASH_MOD</a>[] =<a name="l00491"></a>00491     {<a name="l00492"></a>00492     <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a120">XT_0_EQUALS</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(4),                     <span class="comment">// DUP 0= IF</span><a name="l00493"></a>00493     <a class="code" href="group__forth__imp.html#ga67">LIT</a>(DivideByZero), <a class="code" href="group__forth__imp.html#gga104a221">XT_THROW</a>,                            <span class="comment">// -10 THROW THEN</span><a name="l00494"></a>00494     XT_UDM_SLASH_MOD, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(4),                        <span class="comment">// UDM/MOD IF</span><a name="l00495"></a>00495     <a class="code" href="group__forth__imp.html#ga67">LIT</a>(ResultOutOfRange), XT_THROW,                        <span class="comment">// -11 THROW THEN</span><a name="l00496"></a>00496     <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a><a name="l00497"></a>00497     };<a name="l00498"></a>00498 <a name="l00499"></a>00499 <a name="l00506"></a><a class="code" href="group__forth__imp.html#ga19">00506</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga19">XT_CHECK_NEG</a>[] =<a name="l00507"></a>00507     {<a name="l00508"></a>00508     <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a199">XT_0_GREATER</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(4),                    <span class="comment">// DUP 0&gt; IF </span><a name="l00509"></a>00509     <a class="code" href="group__forth__imp.html#ga67">LIT</a>(ResultOutOfRange), <a class="code" href="group__forth__imp.html#gga104a221">XT_THROW</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a>                <span class="comment">// -11 THROW THEN</span><a name="l00510"></a>00510     };<a name="l00511"></a>00511 <a name="l00512"></a>00512 <a name="l00519"></a><a class="code" href="group__forth__imp.html#ga20">00519</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga20">XT_CHECK_POS</a>[] = <span class="comment">// ( n -- n )</span><a name="l00520"></a>00520     {<a name="l00521"></a>00521     <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a119">XT_0_LESS</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(4),                       <span class="comment">// DUP 0&lt; IF </span><a name="l00522"></a>00522     <a class="code" href="group__forth__imp.html#ga67">LIT</a>(ResultOutOfRange), <a class="code" href="group__forth__imp.html#gga104a221">XT_THROW</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a>                <span class="comment">// -11 THROW THEN</span><a name="l00523"></a>00523     };<a name="l00524"></a>00524 <a name="l00525"></a>00525 <a name="l00539"></a><a class="code" href="group__forth__imp.html#ga21">00539</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga21">XT_SM_SLASH_REM</a>[] =<a name="l00540"></a>00540     {<a name="l00541"></a>00541     <a class="code" href="group__forth__imp.html#gga104a181">XT_OVER</a>, <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a128">XT_2DUP</a>, <a class="code" href="group__forth__imp.html#gga104a195">XT_XOR</a>, XT_TO_R,             <span class="comment">// OVER &gt;R 2DUP XOR &gt;R</span><a name="l00542"></a>00542     <a class="code" href="group__forth__imp.html#gga104a140">XT_ABS</a>, XT_TO_R, <a class="code" href="group__forth__imp.html#gga104a217">XT_DABS</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>,                    <span class="comment">// ABS &gt;R DABS R&gt;</span><a name="l00543"></a>00543     (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga18">XT_UM_SLASH_MOD</a>,                                  <span class="comment">// UM/MOD</span><a name="l00544"></a>00544     XT_R_FROM, <a class="code" href="group__forth__imp.html#gga104a119">XT_0_LESS</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(5),                    <span class="comment">// R&gt; 0&lt; IF</span><a name="l00545"></a>00545     <a class="code" href="group__forth__imp.html#gga104a179">XT_NEGATE</a>, (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga19">XT_CHECK_NEG</a>, <a class="code" href="group__forth__imp.html#ga65">XT_BRANCH</a>(2),            <span class="comment">// NEGATE CHECK-NEG ELSE </span><a name="l00546"></a>00546     (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga20">XT_CHECK_POS</a>,                                     <span class="comment">// CHECK-POS THEN</span><a name="l00547"></a>00547     <a class="code" href="group__forth__imp.html#gga104a190">XT_SWAP</a>, XT_R_FROM, XT_0_LESS, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(2),           <span class="comment">// SWAP R&gt; 0&lt; IF</span><a name="l00548"></a>00548     XT_NEGATE, XT_SWAP, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a>                             <span class="comment">// NEGATE THEN SWAP</span><a name="l00549"></a>00549     };<a name="l00550"></a>00550 <a name="l00551"></a>00551 <a name="l00566"></a><a class="code" href="group__forth__imp.html#ga22">00566</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga22">XT_FM_SLASH_MOD</a>[] =<a name="l00567"></a>00567     {<a name="l00568"></a>00568     <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a128">XT_2DUP</a>, <a class="code" href="group__forth__imp.html#gga104a195">XT_XOR</a>, XT_TO_R,              <span class="comment">// DUP &gt;R 2DUP XOR &gt;R</span><a name="l00569"></a>00569     <a class="code" href="group__forth__imp.html#gga104a140">XT_ABS</a>, XT_TO_R, <a class="code" href="group__forth__imp.html#gga104a217">XT_DABS</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>,                    <span class="comment">// ABS &gt;R DABS R&gt;</span><a name="l00570"></a>00570     (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga18">XT_UM_SLASH_MOD</a>,                                  <span class="comment">// UM/MOD</span><a name="l00571"></a>00571     XT_R_FROM, <a class="code" href="group__forth__imp.html#gga104a119">XT_0_LESS</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(15),                   <span class="comment">// R&gt; 0&lt; IF</span><a name="l00572"></a>00572     <a class="code" href="group__forth__imp.html#gga104a179">XT_NEGATE</a>, (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga19">XT_CHECK_NEG</a>, <a class="code" href="group__forth__imp.html#gga104a181">XT_OVER</a>, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(11), <span class="comment">// NEGATE CHECK-NEG OVER IF</span><a name="l00573"></a>00573     <a class="code" href="group__forth__imp.html#gga104a122">XT_1_MINUS</a>, (<a class="code" href="group__forth.html#ga0">CELL</a>)XT_CHECK_NEG, <a class="code" href="group__forth__imp.html#gga104a183">XT_R_FETCH</a>, XT_ABS,     <span class="comment">// 1- CHECK-NEG R@ ABS</span><a name="l00574"></a>00574     <a class="code" href="group__forth__imp.html#gga104a184">XT_ROT</a>, <a class="code" href="group__forth__imp.html#gga104a118">XT_MINUS</a>, <a class="code" href="group__forth__imp.html#gga104a190">XT_SWAP</a>, <a class="code" href="group__forth__imp.html#ga65">XT_BRANCH</a>(2),                <span class="comment">// ROT - SWAP THEN ELSE</span><a name="l00575"></a>00575     (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga20">XT_CHECK_POS</a>,                                     <span class="comment">// CHECK-POS THEN</span><a name="l00576"></a>00576     XT_SWAP, XT_R_FROM, XT_0_LESS, <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(2),           <span class="comment">// SWAP R&gt; 0&lt; IF</span><a name="l00577"></a>00577     XT_NEGATE, XT_SWAP, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a>                             <span class="comment">// NEGATE THEN SWAP</span><a name="l00578"></a>00578     };<a name="l00579"></a>00579 <a name="l00580"></a>00580 <a name="l00587"></a><a class="code" href="group__forth__imp.html#ga68">00587</a> <span class="preprocessor">#define XT_M_SLASH_MOD (((-1)/2) ? (CELL)XT_FM_SLASH_MOD : (CELL)XT_SM_SLASH_REM)</span><a name="l00588"></a>00588 <span class="preprocessor"></span><a name="l00589"></a>00589 <a name="l00595"></a><a class="code" href="group__forth__imp.html#ga23">00595</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga23">XT_SLASH_MOD</a>[] =<a name="l00596"></a>00596     {<a name="l00597"></a>00597     <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a186">XT_S_TO_D</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <a class="code" href="group__forth__imp.html#ga68">XT_M_SLASH_MOD</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a>  <span class="comment">// &gt;R S&gt;D R&gt; M/MOD</span><a name="l00598"></a>00598     };<a name="l00599"></a>00599 <a name="l00600"></a>00600 <a name="l00607"></a><a class="code" href="group__forth__imp.html#ga24">00607</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga24">XT_M_STAR</a>[] =<a name="l00608"></a>00608     {<a name="l00609"></a>00609     <a class="code" href="group__forth__imp.html#gga104a128">XT_2DUP</a>, <a class="code" href="group__forth__imp.html#gga104a195">XT_XOR</a>, <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a140">XT_ABS</a>, <a class="code" href="group__forth__imp.html#gga104a190">XT_SWAP</a>, XT_ABS,      <span class="comment">// 2DUP XOR &gt;R ABS SWAP ABS</span><a name="l00610"></a>00610     <a class="code" href="group__forth__imp.html#gga104a193">XT_UM_STAR</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <a class="code" href="group__forth__imp.html#gga104a119">XT_0_LESS</a>,                       <span class="comment">// UM* R&gt; 0&lt;</span><a name="l00611"></a>00611     <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(2), <a class="code" href="group__forth__imp.html#gga104a218">XT_DNEGATE</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a>                      <span class="comment">// IF DNEGATE THEN</span><a name="l00612"></a>00612     };<a name="l00613"></a>00613 <a name="l00614"></a>00614 <a name="l00620"></a><a class="code" href="group__forth__imp.html#ga25">00620</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga25">XT_STAR_SLASH_MOD</a>[] =<a name="l00621"></a>00621     {<a name="l00622"></a>00622     <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga24">XT_M_STAR</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <a class="code" href="group__forth__imp.html#ga68">XT_M_SLASH_MOD</a>,    <span class="comment">// &gt;R M* R&gt; M/MOD</span><a name="l00623"></a>00623     <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a><a name="l00624"></a>00624     };<a name="l00625"></a>00625 <a name="l00626"></a>00626 <a name="l00632"></a><a class="code" href="group__forth__imp.html#ga26">00632</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga26">XT_NUMBER_SIGN_S</a>[] =<a name="l00633"></a>00633     {<a name="l00634"></a>00634     <a class="code" href="group__forth__imp.html#gga104a111">XT_NUMBER_SIGN</a>, <a class="code" href="group__forth__imp.html#gga104a128">XT_2DUP</a>, <a class="code" href="group__forth__imp.html#gga104a180">XT_OR</a>, <a class="code" href="group__forth__imp.html#gga104a120">XT_0_EQUALS</a>,            <span class="comment">// BEGIN # 2DUP OR 0=</span><a name="l00635"></a>00635     <a class="code" href="group__forth__imp.html#ga66">XT_0BRANCH</a>(-5), <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a>                                 <span class="comment">// UNTIL</span><a name="l00636"></a>00636     };<a name="l00637"></a>00637 <a name="l00638"></a>00638 <a name="l00646"></a><a class="code" href="group__forth__imp.html#ga27">00646</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga27">XT_D_DOT</a>[] =<a name="l00647"></a>00647     {<a name="l00648"></a>00648     <a class="code" href="group__forth__imp.html#gga104a132">XT_LESS_NUMBER_SIGN</a>, <a class="code" href="group__forth__imp.html#ga67">LIT</a>(<span class="charliteral">' '</span>),                          <span class="comment">// &lt;# BL</span><a name="l00649"></a>00649     <a class="code" href="group__forth__imp.html#gga104a166">XT_HOLD</a>, <a class="code" href="group__forth__imp.html#gga104a159">XT_DUP</a>, <a class="code" href="group__forth__imp.html#gga104a137">XT_TO_R</a>, <a class="code" href="group__forth__imp.html#gga104a217">XT_DABS</a>,                      <span class="comment">// HOLD DUP &gt;R DABS </span><a name="l00650"></a>00650     (<a class="code" href="group__forth.html#ga0">CELL</a>)<a class="code" href="group__forth__imp.html#ga26">XT_NUMBER_SIGN_S</a>, <a class="code" href="group__forth__imp.html#gga104a182">XT_R_FROM</a>, <a class="code" href="group__forth__imp.html#gga104a187">XT_SIGN</a>,             <span class="comment">// #S R&gt; SIGN </span><a name="l00651"></a>00651     <a class="code" href="group__forth__imp.html#gga104a112">XT_NUMBER_SIGN_GREATER</a>, <a class="code" href="group__forth__imp.html#gga104a191">XT_TYPE</a>, <a class="code" href="group__forth__imp.html#gga104a163">XT_EXIT</a>                <span class="comment">// #&gt; TYPE </span><a name="l00652"></a>00652     };<a name="l00653"></a>00653 <a name="l00654"></a>00654 <a name="l00660"></a><a class="code" href="group__forth__imp.html#ga28">00660</a> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__forth.html#ga0">CELL</a> <a class="code" href="group__forth__imp.html#ga28">XT_DOT</a>[] =<a name="l00661"></a>00661     {

⌨️ 快捷键说明

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