您的位置:網站首頁 > 電器維修資料網 > 正文 >
MCS-51單片機算術運算類指令
來源: 日期:2013-11-18 21:55:07 人氣:標簽:
此指令運行后的結果放在a中,下面我們舉例說明:
假設a的值為c3h,ro的值為aah,則運行
執行結果:a的值變為6dh,標志位cy被置為1,因為 高位有進位。也可以執行:
運行結果同上。大家注意立即數“aah”的前面有個“0”,這是因為51指令規定:立即數的高位不是數字的話,就必須在前面加一個“0”。
加法指令當中還有一條“加一指令”:
此指令將指定存儲單元的內容加一,計算結果仍存于原單元,并且不影響任命標志位。前面說過的尋址方式都適用于它。在循環程序中常常會用到這個加一指令。
此指令是從累加器a中減去進位標志cy和指定的存儲單元的值,結果存于a中,若a的第7位有借位,則cy置為l,若第3位向第4位借1,則輔助標志ac置為1,否則清0;若第6位和第7位中只有一位借位,則溢出標志位0v置為1,否則復位0。溢出標志ov常用于帶符號的整數減法,表示因溢出而產生的運算錯誤。(注意:每個字節是8位,左邊第一個是第0位,右邊第一個是第7位)設累加器a的值為c9h,r2的值為54h,cy為1,運行下面這條指令:
運行結果如下圖,這時a的值為74h,cy的值為0,ac的值為0,0v的值為l。如果讀者一時弄不清楚標志位的作用,可以先不去管它們,在程序里面盡量不使用就行了。
減法指令中也有一條“減一指令”,用法同加法的加一指令
③乘法指令
本指令是將累加器a和專用寄存器b中兩個8位無符號數相乘,得16位乘積,積的低8位放在a中,高8位放在b中,只要b的內容不為o,溢出標志0v就置為1,b的內容為0則0v清0。進位標志始終為0。
④除法指令
本指令將累加器a中8位無符號整數除以b寄存器中8位無符號整數,所除結果:整數商部分存于a中,整數余數部分存于b中,cy和0v清0。看下面的例子:
設a的值為64h(十進制是100),b的值為03h,執行:
結果:a的值為21h(十進制是33),b的值為oih,0v=0,cy=0
【看看這篇文章在百度的收錄情況】
相關文章
- 上一篇: MCS-51單片機傳送類指令
- 下一篇: 菜鳥學習硬件技術問答匯編