單片機論壇

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4004|回復: 28
收起左側

51單片機一起學匯編—BCD調整 數據處理

  [復制鏈接]
zhouchuantao 發表于 2019-3-9 21:55 | 顯示全部樓層 |閱讀模式
/***********BCD調整**************/

      ORG  0000H
      JMP START
START:
      MOV SP,#7FH     ;設置堆棧地址
      MOV 50H,#69H    ;十六機制立即數69H 載人地址為50H寄存器中
      MOV R3,50H      ;運行DEBUG時 在R2中查看數據
      MOV R0,#60H     ;十六機制立即數60H 載人R0寄存器中
      MOV A,50H       ;地址為50H寄存器中的數據 載人累加器ACC中
      ANL A,#0F0H     ;累加器ACC中的高四位數據和十六進制的立即數 F0H  邏輯 與 運算
      MOV @R0,A       ;累加器ACC中的數據 載入以R0中的數據為地址的寄存器中   注意間接尋址:@R0=50H,50H作為寄存器地址使用,而不是數據
      MOV 30H,@R0     ;@R0間接尋址的數據 載入30H寄存器中
      MOV R1,30H      ;運行DEBUG時 在R2中查看數據
      MOV A,50H       ;寄存器50H 中的數據 載入累加器ACC
      ANL A,#0FH      ;累加器ACC中的低四位數據和十六進制的立即數 0FH  邏輯 與 運算
      INC R0          ;寄存器R0中的數據加1
      MOV @R0,A       ;累加器ACC中的數據 載入以R0中的數據為地址的寄存器中
      MOV 31H,@R0     ;@R0間接尋址的數據 載入30H寄存器?
      MOV R2,31H      ;運行DEBUG時 在R2中查看數據
      JMP START       ;調回開始

回復

使用道具 舉報

 樓主| zhouchuantao 發表于 2019-3-10 12:04 | 顯示全部樓層
/*************************
題目要求
已知 X Y,計算Z值, 結果存 20H 單元中
  Z=X-Y(X≥0)
  Z=X+Y(X<0)

需要知識:存儲寄存器中的正數和負數

************************/  

            X DATA 30H                ;未知數X 用寄存器30H代替   DATA是個偽指令
            Y DATA 31H                ;未知數Y 用寄存器31H代替

            ORG 0000H                 ;程序開始地址
            JMP START                 ;跳轉主程序
START:
            MOV SP,#7FH               ;堆棧地址7FH
            MOV X,#-9                 ;以30H為地址的寄存器中 載入初值 負9
            MOV Y,#1                  ;以31H為地址的寄存器中 載入初值 1
            MOV A,X                   ;X 的初值 載入A中
            MOV B,Y                   ;Y 的初值 載入B中
            JB Acc.7,Positive         ;ACC.7位是1還是0,判斷X是正數還是負數, 如是正數跳轉加法運算,如是負數執行下一條道減法運算
            CLR C                     ;PSW.7位   CY位需要清零,不能影響到加減法結果
            SUBB A,B                  ;減運算,結果存ACC中
            SJMP Result               ;跳轉存結果
Positive:
            ADD A,B                   ;加運算,結果存ACC中

Result:            MOV 20H,A                 ;結果存在寄存器地址為20H中
            MOV R1,20H                ;調試中查看數值,驗證程序
            JMP $
END
回復

使用道具 舉報

小林大哥哥 發表于 2019-3-17 13:42 | 顯示全部樓層

/*************************
題目要求
已知 X Y,計算Z值, 結果存 20H 單元中
  Z=X-Y(X≥0)
  Z=X+Y(X<0)

需要知識:存儲寄存器中的正數和負數

************************/  

            X DATA 30H                ;未知數X 用寄存器30H代替   DATA是個偽指令
            Y DATA 31H                ;未知數Y 用寄存器31H代替

            ORG 0000H                 ;程序開始地址
            JMP START                 ;跳轉主程序
START:
            MOV SP,#7FH               ;堆棧地址7FH
            MOV X,#-9                 ;以30H為地址的寄存器中 載入初值 負9
            MOV Y,#1                  ;以31H為地址的寄存器中 載入初值 1
            MOV A,X                   ;X 的初值 載入A中
            MOV B,Y                   ;Y 的初值 載入B中
            JB Acc.7,Positive         ;ACC.7位是1還是0,判斷X是正數還是負數, 如是正數跳轉加法運算,如是負數執行下一條道減法運算
            CLR C                     ;PSW.7位   CY位需要清零,不能影響到加減法結果
            SUBB A,B                  ;減運算,結果存ACC中
            SJMP Result               ;跳轉存結果
Positive:
            ADD A,B                   ;加運算,結果存ACC中

Result:            MOV 20H,A                 ;結果存在寄存器地址為20H中
            MOV R1,20H                ;調試中查看數值,驗證程序
            JMP $
END
回復

使用道具 舉報

無效樓層,該帖已經被刪除
songzhy 發表于 2019-4-1 07:16 | 顯示全部樓層
謝謝分享......
回復

使用道具 舉報

michael2018 發表于 2019-4-8 16:05 | 顯示全部樓層
樓主牛逼啦
回復

使用道具 舉報

solo2pm 發表于 2019-4-13 00:11 | 顯示全部樓層
新人  表示匯編還不太懂 看天書……
回復

使用道具 舉報

songzhy 發表于 2019-4-14 07:49 | 顯示全部樓層
新人  表示匯編還不太懂
回復

使用道具 舉報

silicon_hacker 發表于 2019-4-24 22:12 | 顯示全部樓層
51單片機學習匯編
回復

使用道具 舉報

qq12345qq6789qq 發表于 2019-4-25 16:01 | 顯示全部樓層

新人  表示匯編還不太懂
回復

使用道具 舉報

遷就 發表于 2019-4-26 17:35 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

jackliuwenli 發表于 2019-5-29 14:16 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

1316880381 發表于 2019-6-3 14:37 來自手機 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

vccccclala 發表于 2019-6-18 16:55 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

15#
無效樓層,該帖已經被刪除
175花見花開艱苦 發表于 2019-6-28 13:14 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

刷新時間 發表于 2019-7-5 10:46 | 顯示全部樓層
剛剛開始
回復

使用道具 舉報

tieq1952 發表于 2019-7-10 06:35 | 顯示全部樓層
謝謝分享!!!
回復

使用道具 舉報

鵬博士PBs 發表于 2019-7-10 09:22 | 顯示全部樓層
2進制轉10進制的BCD譯碼器
回復

使用道具 舉報

一直有你陪伴 發表于 2019-7-27 01:58 | 顯示全部樓層
樓主牛逼啦,匯編看不懂
回復

使用道具 舉報

LIUSIGN 發表于 2019-8-5 08:40 | 顯示全部樓層
樓主牛逼啦,匯編看不懂
回復

使用道具 舉報

草原瘋狗 發表于 2019-8-13 09:18
什么呀這是。。。。亂七八糟,不知所云

佳佳電氣 發表于 2019-9-14 18:57 來自手機 | 顯示全部樓層
新手表示看不懂,學習中
回復

使用道具 舉報

star130 發表于 2019-9-23 20:20 | 顯示全部樓層
看明白了,學習了,有幫助
回復

使用道具 舉報

五依黑 發表于 2019-10-4 17:32 | 顯示全部樓層
大神,想學單片機應該先從哪里開始?
回復

使用道具 舉報

五依黑 發表于 2019-10-4 17:33 | 顯示全部樓層
單片機如何入門?
回復

使用道具 舉報

27#
無效樓層,該帖已經被刪除
harry3 發表于 2019-10-24 23:41 | 顯示全部樓層
·麥克納姆輪全向輪戰車程序精髓分享
回復

使用道具 舉報

雙贏電子 發表于 2019-11-16 17:45 來自手機 | 顯示全部樓層
多謝分享,學習了,收藏
回復

使用道具 舉報

莫陌 發表于 2019-11-29 14:27 來自手機 | 顯示全部樓層
多謝分享
回復

使用道具 舉報

巫山煙雨 發表于 2019-12-12 17:25 | 顯示全部樓層
謝謝分享  
回復

使用道具 舉報

ttw1640664131 發表于 2019-12-24 23:25 | 顯示全部樓層
感謝樓主的分享
回復

使用道具 舉報

justToWing 發表于 2020-2-2 08:00 | 顯示全部樓層
謝謝樓主分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|單片機論壇 |51黑電子論壇技術交流 QQ 管理員QQ:125739409;技術交流QQ群636986012

Powered by 單片機教程網

快速回復 返回頂部 返回列表
全天计划时时彩