機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
第十一課 單片機(jī)指令(四)
第十一課 單片機(jī)指令(四)
 更新時間:2008-7-27 16:12:51  點(diǎn)擊數(shù):2
【字體: 字體顏色
1、不帶進(jìn)位位的加法指令
   ADD A,#DATA ;例:ADD A,#10H
   ADD A,direct ;例:ADD A,10H
   ADD A,Rn ;例:ADD A,R7
   ADD A,@Ri ;例:ADD A,@R0
  用途:將A中的值與其后面的值相加,最終結(jié)果否是回到A中。
  例:MOV A,#30H
    ADD A,#10H
  則執(zhí)行完本條指令后,A中的值為40H。
  下面的題目自行練習(xí)
   MOV 34H,#10H
   MOV R0,#13H
   MOV A,34H
   ADD A,R0
   MOV R1,#34H
   ADD A,@R1
   2、進(jìn)位位的加法指令
   ADDC A,Rn
   ADDC A,direct
   ADDC A,@Ri
   ADDC A,#data
  用途:將A中的值和其后面的值相加,并且加上進(jìn)位位C中的值。
  說明:由于51單片機(jī)是一種8位機(jī),所以只能做8位的數(shù)學(xué)運(yùn)算,但8位運(yùn)算的范圍只有0-255,這在實(shí)際工作中是不夠的,因此就要進(jìn)行擴(kuò)展,一般是將2個8位的數(shù)學(xué)運(yùn)算合起來,成為一個16位的運(yùn)算,這樣,可以表達(dá)的數(shù)的范圍就可以達(dá)到0-65535。如何合并呢?其實(shí)很簡單,讓我們看一個10進(jìn)制數(shù)的例子:
  66+78。
  這兩個數(shù)相加,我們根本不在意這的過程,但事實(shí)上我們是這樣做的:先做6+8(低位),然后再做6+7,這是高位。做了兩次加法,只是我們做的時候并沒有刻意分成兩次加法來做罷了,或者說我們并沒有意識到我們做了兩次加法。之所以要分成兩次來做,是因?yàn)檫@兩個數(shù)超過了一位數(shù)所能表達(dá)的范置(0-9)。
  在做低位時產(chǎn)生了進(jìn)位,我們做的時候是在適當(dāng)?shù)奈恢命c(diǎn)一下,然后在做高位加法是將這一點(diǎn)加進(jìn)去。那么計(jì)算機(jī)中做16位加法時同樣如此,先做低8位的,如果兩數(shù)相加產(chǎn)生了進(jìn)位,也要“點(diǎn)一下”做個標(biāo)記,這個標(biāo)記就是進(jìn)位位C,在PSW中。在進(jìn)行高位加法是將這個C加進(jìn)去。例:1067H+10A0H,先做67H+A0H=107H,而107H顯然超過了0FFH,因此最終保存在A中的是7,而1則到了PSW中的CY位了,換言之,CY就相當(dāng)于是100H。然后再做10H+10H+CY,結(jié)果是21H,所以最終的結(jié)果是2107H。
  3、帶借位的減法指令
  SUBB A,Rn
  SUBB A,direct
  SUBB A,@Ri
  SUBB A,#data
  設(shè)(每個H,(R2)=55H,CY=1,執(zhí)行指令SUBB A,R2之后,A中的值為73H。
  說明:沒有不帶借位的減法指令,如果需要做不帶位的減法指令(在做第一次相減時),只要將CY清零即可。
  4、乘法指令
  MUL AB
  此指令的功能是將A和B中的兩個8位無符號數(shù)相乘,兩數(shù)相乘結(jié)果一般比較大,因此最終結(jié)果用1個16位數(shù)來表達(dá),其中高8位放在B中,低8位放在A中。在乘積大于FFFFFH(65535)時,0V置1(溢出),否則OV為0,而CY總是0。
  例:(A)=4EH,(B)=5DH,執(zhí)行指令
  MUL AB后,乘積是1C56H,所以在B中放的是1CH,而A中放的則是56H。
  5、除法指令
  DIV AB
  此指令的功能是將A中的8位無符號數(shù)除了B中的8位無符號數(shù)(A/B)。除法一般會出現(xiàn)小數(shù),但計(jì)算機(jī)中可沒法直接表達(dá)小數(shù),它用的是我們小學(xué)生還沒接觸到小數(shù)時用的商和余數(shù)的概念,如13/5,其商是2,余數(shù)是3。除了以后,商放在A中,余數(shù)放在B中。CY和OV都是0。如果在做除法前B中的值是00H,也就是除數(shù)為0,那么0V=1。
  6、加1指令
  INC A
  INC Rn
  INC direct
  INC @Ri
  INC DPTR
  用途很簡單,就是將后面目標(biāo)中的值加1。例:(A)=12H,(R0)=33H,(21H)=32H,(34H)=22H,DPTR=1234H。執(zhí)行下面的指令:
  INC A (A)=13H
  INC R2 (R0)=34H
  INC 21H (21H)=33H
  INC @R0 (34H)=23H
  INC DPTR ( DPTR)=1235H
  后結(jié)果如上所示。
  說明:從結(jié)果上看INC A和ADD A,#1差不多,但I(xiàn)NC A是單字節(jié),單周期指令,而ADD #1則是雙字節(jié),雙周期指令,而且INC A不會影響PSW位,如(A)=0FFH,INC A后(A)=00H,而CY依然保持不變。如果是ADD A ,#1,則(A)=00H,而CY一定是1。因此加1指令并不適合做加法,事實(shí)上它主要是用來做計(jì)數(shù)、地址增加等用途。另外,加法類指令都是以A為核心的��其中一個數(shù)必須放在A中,而運(yùn)算結(jié)果也必須放在A中,而加1類指令的對象則廣泛得多,可以是寄存器、內(nèi)存地址、間址尋址的地址等等。
  7、減1指令
  DEC A
  DEC RN
  DEC direct
  DEC @Ri
  與加1指令類似,就不多說了。
  綜合練習(xí):
  MOV A,#12H
  MOV R0,#24H
  MOV 21H,#56H
  ADD A,#12H
  MOV DPTR,#4316H
  ADD A,DPH
  ADD A,R0
  CLR C
  SUBB A,DPL
  SUBB A,#25H
  INC A
  SETB C
  ADDC A,21H
  INC R0
  SUBB A,R0
  MOV 24H,#16H
  CLR C
  ADD A,@R0
  先寫出每步運(yùn)行結(jié)果,然后將以上題目建入,并在軟件仿真中運(yùn)行,觀察寄存器及有關(guān)單元的內(nèi)容的變化,是否與自已的預(yù)想結(jié)果相同。
  • 上一篇: 第十二課 單片機(jī)指令(五)
  • 下一篇: 第十課 單片機(jī)指令(三)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1