色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 用軟件實現(xiàn)DAA的方法

          用軟件實現(xiàn)DAA的方法

          作者: 時間:2013-09-09 來源:網(wǎng)絡 收藏
          一律對產(chǎn)生借位的BCD碼加$A調整。但AVR單片機沒有加字節(jié)型立即數(shù)指令,改為減6調整,要注意加原和減補對進位的影響是相反的。為保證多字節(jié)壓縮BCD碼運算的正確性,若調整后清除了借位C,必須將其恢復。例如$22-$54=$CE,因C、H皆置位,用減去$66來調整$CE-$66=$68,調整后清除了借位C,故子程序中還要加SEC 指令來恢復借位C。

            注:MCS-51單片機減法子程序很容易按此移植(半進位為AC)。

            1.3 實現(xiàn)右移功能子程序R的設計方法

            見"3 定點數(shù)制轉換子程序"中對BCD碼右移調整的說明。

            2 定點運算子程序

            (1)多字節(jié)壓縮BCD碼加法子程序ADBCD

            加法在寄存器內直接完成,以R20為DAA工作單元。BCD碼相加后,將和送到R20,調用ADAA子程序,實現(xiàn)對和的調整(返回主程序后再回送調整結果)。

            (2)多字節(jié)壓縮BCD碼減法子程序SUBCD

            減法在寄存器內直接完成,以R20為DAA工作單元。BCD碼相減后,將差送至R20,調用SDAA子程序,實現(xiàn)對差的調整(返回主程序后再回送調整結果)。

            (3)乘法子程序MUL16

            操作:(R13,R12)×(R15,R14)→ R17,R16,R15,R14

            采用字乘字無符號數(shù)運算。采取逐次右移部分積和乘數(shù),當乘數(shù)移出位等于1時將被乘數(shù)加入部分積的方法完成計算??梢暈?6位整數(shù)×16位整數(shù)→32位整數(shù),也可視為16位整數(shù)×16位小數(shù)→16位整數(shù),或視為16位小數(shù)×16位小數(shù)→32位小數(shù)??杉由仙崛胩幚?。

            (4)除法子程序DIV16

            操作:(R17,R16,R15,R14)÷(R13,R2)→R15,R14

            采用雙字除以字無符號數(shù)運算。采取逐次左移被除數(shù)與除數(shù)相減、試商、記商的方法完成計算??梢暈殡p字型整數(shù)÷字型整數(shù)→字型整數(shù),也可視為小數(shù)÷小數(shù)→ 小數(shù)。要求 (R17,R16)(R13,R12)??杉由仙崛胩幚恚⒁饪赡墚a(chǎn)生舍入溢出(例如$7FFFC000÷$8000=$FFFF.8,舍入取整即產(chǎn)生溢出)。

            (5)開平方子程序SQR

            操作:(R17,R16,R15,R14)→R14,R13,R12

            可視為雙字型整數(shù)X(≤4294967295)開平方,因有舍入處理,方根最大可達$10000(如X=$FFFF0000開平方即屬此),故用3字節(jié)存儲平方根。也可視為定點小數(shù)開平方,將X自最高位起每2位進行分割,采用摸擬手算的方法(X每左移2位試出1位根)開平方。

            3 定點數(shù)制轉換子程序



          關鍵詞: 軟件 DAA

          評論


          相關推薦

          技術專區(qū)

          關閉