❶ 0鍒99鍙澧炲噺璁℃暟鍣ㄧ殑鍗曠墖鏈虹郴緇熴傛眰奼囩紪璇璦紼嬪簭銆傚湪綰跨瓑銆傜壒鎬ャ
Count EQU30H
KEY1 BITP3.6
KEY2 BITP3.7
ORG0
START: MOVCount,#00H
NEXT: MOVA,Count
MOVB,#10
DIVAB
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP2,#02H
MOVP0,A
LCALLDELAY
MOVA,B
MOVCA,@A+DPTR
MOVP2,#01H
MOVP0,A
LCALLDELAY
WT: JBKEY1,WT1
LCALLDELY10MS
JBKEY1,WT1
JNBKEY1,$
INCCount
MOVA,Count
CJNEA,#100,NEXT
MOVCount,#0
LJMPNEXT
WT1:
JBKEY2,WT2
LCALLDELY10MS
JBKEY2,WT2
JNBKEY2,$
MOVA,Count
JZWT11
DECCount
LJMPNEXT
WT11:
MOVCount,#99
WT2:
LJMPNEXT
DELAY:
MOVR3,#6
DELAY1:
MOVR4,#250
DJNZR4,$
DJNZR3,DELAY1
RET
DELY10MS: MOVR6,#20
D1: MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
TABLE: DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
❷ 51單片機匯編程序,將存放在內部RAM起始地址為30H和40H的兩個3位元組無符號數相加...
;啟動入口
ORG 0000H ;復殲手位啟謹橘動
LJMP START ;
ORG 0100H ;
;
;主控程氏晌嫌序
START: MOV A,30H
ADD A,40H
MOV 70H,A
MOV A,31H
ADDC A,41H
MOV 71H,A
MOV A,32H
ADDC A,42H
MOV 72H,A
ADDC A,#0
MOV 73H,A
JMP $
END ;
❸ 如何編寫單片機中4位元組十六進制數的加法程序
加法很簡單的,根據你小學時候的加法原理就可以很容易算了,也就是低位相加,高位和高位廳碰相加,再加上低位的進位就OK了
例如:ff ff ff ff+ff ff ff ff=
最低位元組相加=1FE 其中1就是進位扮雹談了,結果就是低位=FE第一個位元組相加=1FE再就上進位1=1FF第二個位元組=FF再把進位加到第三個位元組........
最終的結果就是肆模=1 FF FF FF FE
所以4 位元組相加要5 個位元組來保存結果
❹ 單片機 八位二進制數相加的程序 匯編語言
嘿嘿 八位二進制數相加的程序 應該設計成一個子程序ADD8:
程序入口迅姿蘆為2個: 累加器A(存放被加數)
寄存器R5(存放加數)
程序出口1個: ( R3)(R4)=加法的和(高8 位)、(低8 位)畝帶
樓上的老兄設計的八位二進冊唯制數相加的程序,是存在錯誤的,沒有考慮進位(即2個數相加超過256的情況)
ADD8: ADD A,R5
MOV R4,A
ADDC A,#0
MOV R3,A
RET
呵呵 滿意 就選滿意回答
❺ 奼傚崟鐗囨満緙栧啓鍙屽瓧鑺傛棤絎﹀彿鏁板姞娉曞瓙紼嬪簭銆傛潵涓楂樻墜鍚э紒
鍢垮樋
1 璁捐′竴涓鍙屽瓧鑺傛棤絎﹀彿鏁板姞娉曞瓙紼嬪簭錛岄栧厛瑕佽捐′竴涓瀛愮▼搴忓叆鍙o細
鍗 錛圧2)(R3)=瑁呭弻瀛楄妭鏃犵﹀彿鏁扮殑琚鍔犳暟
錛圧4)(R5)=瑁呭弻瀛楄妭鏃犵﹀彿鏁扮殑鍔犳暟
2 璁捐′竴涓鍙屽瓧鑺傛棤絎﹀彿鏁板姞娉曞瓙紼嬪簭鍑哄彛錛
( 32H )( 31H )( 30H)=瑁呭拰
3 鍒╃敤鍔犳硶鎸囦護 奼傚弻瀛楄妭鏃犵﹀彿鏁扮殑鍜屻
4 璧蜂竴涓瀛愮▼搴忓悕錛
ADD16錛 MOV A,R3 ;鍙栦綆瀛楄妭琚鍔犳暟
ADD A,R5 錛涗笌浣庡瓧鑺傚姞鏁扮浉鍔
MOV 30H,A 錛涗綆瀛楄妭鍜岄30H 鍗曞厓
MOV A,R2 錛涘彇楂樺瓧鑺傝鍔犳暟
ADDC A,R4 錛涗笌楂樺瓧鑺傚姞鏁扮浉鍔
MOV 31H,A 錛涢珮瀛楄妭鍜岄31H鍗曞厓
CLR A 錛涙竻闆
ADDC A,#0 錛涘姞涓婅繘浣
MOV 32H,A 錛涙湁榪涗綅鍒欓32H鍗曞厓淇濆瓨
RET 錛涘瓙紼嬪簭榪斿洖
婊℃剰 灝辯粰淇哄姞鍒嗗柦