1樓:匿名使用者
1、mov r0,#block ;被加數低位元組地址mov r1,#block+1; 加數地址clr c ;進位清零mov a,@r0 ;取被加數addc a,@r1 ;相加inc r0 ;指標+1inc r1 ;
mov a,@r0 ;
addc a,@r1 ;
mov @r1,a ;存入jmp $
end每次只能給你一道題,你別那麼貪
2樓:做而論道
正確程式如下:
1、有兩個16位無符號數,放在block開始的四個單元內,編寫程式,求他們的和,並放在接下去的三個單元內。
mov a, block
add a, block + 2
mov block + 4, a
mov a, block + 1
addc a, block + 3
mov block + 5, a
clr a
addc a, #0
mov block + 6, a
end2、微控制器片內ram中,自block單元開始有一組無符號數,資料長度放在block-1單元,
編寫程式,把其中大於100的數送到片外stock開始的單元中去。
mov dptr, #stock
mov r0, #block
mov r2, block - 1
lp:mov a, @r0
clr c
subb a, #101
jc next
mov a, @r0
movx @dptr, a
inc dptr
next:
inc r0
djnz r2, lpend
3樓:匿名使用者
;啟動入口********************====org 0000h ;復位啟動
ajmp start ;
;主程式********************====start: mov a,#block ;資料開始地址mov r0,a
add a,#4 ;存放結果單元低位元組
mov r1,a
;mov a,@r0 ;第一個數低位元組
inc r0
mov b,@r0 ;第一個數高位元組
inc r0 ;指向第二個數低位元組
;add a,@r0 ;加第二個數低位元組
mov @r1,a ;存結果單元第一位元組
inc r0 ;指向第二個數高位元組
inc r1 ;指向結果單元第二位元組
mov a,b ;第一個數高位元組
addc a,@r0 ;加第二個數高位元組
mov @r1,a ;存結果單元第二位元組
inc r1 ;指向結果單元第三位元組
addc a,#0 ;存結果單元第三位元組
mov @r1,a ;存入指定單元
end ;結束
;啟動入口********************====org 0000h ;復位啟動
ajmp start ;
;主控程式********************====start: mov r0,#block ;資料開始地址dec r0 ;block-1
mov b,@r0 ;得到資料個數
;mov r0,#block ;資料開始地址mov r1,#stock ;用來存放結果的地址;loop: mov a,@r0 ;取得一個資料clr c ;準備比較
subb a,#101 ;比較
jc nos ;不大於100
;movx @r1,a ;存結果
inc r1 ;指向下一單元
;nos: inc r0 ;指向下一個資料djnz b,loop ;搜尋完所有資料
end ;結束
微控制器查表程式設計的思路,微控制器查表程式編寫 急!
a 秒十位指標 mov dptr,tab 資料表頭地址送dptrmovc a,a dptr 讀取資料表中相應的資料 秒十位 clr p1.0 p1.0 清零 秒十位標誌位 mov p0,a 顯示妙計數的十位 秒十位由p0口輸出 lcall delay 調延時子程式 setb p1.0 p1.0 置1...
有關51實驗版微控制器的問題,關於51微控制器的問題
初步瀏覽了一下,動態顯示的話delay時間太長就會閃爍。你好 初步看一眼,數碼管閃爍的原因無非是時間間隔太長,先建議你縮短延時時間,再事實。希望我的回答能幫助到你。像是串列埠驅動的數碼管,靜態顯示。這樣的電路,不宜頻繁的顯示,一秒鐘,顯示一次就可以了。把顯示部分,移到定時中斷裡面,即可 main v...
微控制器組合語言的程式設計問題
首先教你如何理解jnb和jb,jnb就是jump not bit,這樣不好理解,解釋一下就明白了 jump表示跳轉,not表示0,bit表示該位。它實際是條件判斷語句,意思是 如果該為為0則跳轉,否則繼續下一條。例 jnb p1.1,mark 如果p1.1位為零則跳轉到mark標誌指向的指令,否則繼...