幫忙看微控制器彙編子程式,幫忙看一個微控制器彙編子程式

時間 2021-08-30 09:55:54

1樓:浴血前鋒

我也只能無奈地搖搖頭

丫問題呢?靠!浪費我時間

建議你別學這個了,回頭去學語文吧

2樓:匿名使用者

執行前r1中儲存的是一個變數的地址,是一個三位元組變數,用ab相乘後的16位結果加這個24位輸,然後儲存到這個24位的變數中。

3樓:

mul ab指令將積的低位存放在a中,然後執行上面的程式,就是將r1中的以及r1後面的2個地址中的值與存放於a中的值分別相加後存放於r1中,注意此處是帶進位的加法,很簡單的,好好看看書吧。

微控制器組合語言,求大神幫忙看下程式什麼意思

4樓:匿名使用者

程式很簡單,就是讓p1口全高電平一小段時間(執行delay延時子程式所需時間)後,再讓p1口全低電平持續20倍的時間,不斷重複上述過程。

org 0000h

start: mov p1,#0ffh ;讓p1口全高電平

acall delay ;一小段時間(呼叫一次delay延時子程式)

mov r2,#14h ;20倍

mov p1,#00h ;再讓p1口全低電平

lop: acall delay ;持續20倍的時間(直到r2為零即執行20次delay延時子程式)

djnz r2,lop

sjmp start ;不斷重複上述過程

sta delay: mov tmod,#01h ;設定定時器0模式為1模式即16位定時器

mov tl0,#0b0h ;定時器0裝入初值15536(即3cb0h)

mov th0,#3ch

setb tr0 ;啟動定時器0

loop: jbc tf0,next ;等待定時器0計滿溢位(即計數65536-15536=50000次)則清溢位標誌並重灌初值15536後返回

sjmp loop

retnext: mov tl0,#0b0h;重灌初值15536後

mov th0,#3ch

ret ;返回end

5樓:匿名使用者

org 0000h 程式從0000開始存放start: mov p1,#0ffh 向p1埠輸出ffacall delay 呼叫延遲函式,這個延遲函式動過定時器實現的mov r2,#14h 將14傳給r2暫存器mov p1,#00h 向p1埠輸出00lop: acall delay 延遲一段時間djnz r2,lop 判斷r2暫存器是不是不等於0,是的話跳轉到lop上

sjmp start 否則直接跳轉到start處sta delay: mov tmod,#01h 延遲函式的實現,配置定時器暫存器

mov tl0,#0b0h 配置定時時長mov th0,#3ch

setb tr0 開啟定時器

loop: jbc tf0,next 判斷定時器是否溢位sjmp loop 不斷判斷

retnext: mov tl0,#0b0h 重新設定定時器mov th0,#3ch

ret函式返回end

6樓:

p1=ff 1倍的時間

p1=00 20倍的時間 、、14h=20

微控制器組合語言中,呼叫子程式求a的平方,那子程式怎麼表示

7樓:讗逓量蟼

;…… mov a, #10 ;預置數 lcall pf ;呼叫子程式;……;……pf: mov b, a mul ab retend微控制器組合語言中,呼叫子程式求a的平方,那專子程式怎屬麼表示

8樓:

有什麼問題呢? 你要在數碼管上顯示的是正弦波的有效值吧? 按照有效值的定專

微控制器彙編時,子程式的ljmp問題

9樓:匿名使用者

在微控制器彙編程式中,如果ljmp到子程

序(如果不是呼叫且用ret返回的話就不能專叫子程式了,)那麼屬必須再用ljmp跳回來才行,如果是lcall呼叫,但ljmp跳回,那麼將破還堆疊結構,程式就會出現混亂了。有如下關係:

lcall

.......

ret這必須成對出現。

10樓:匿名使用者

樓上說的沒錯 你進入函式時斷點的地址入棧了 但是沒有ret 你的地址沒有出棧 你的堆疊就整體錯位瞭如果你上面的程式 在ljmp loop 前面 加入兩個pop指令那就沒問題了

微控制器組合語言程式設計,全國微控制器組合語言程式設計師

org 0000h main mov dptr,3000h clr r0 clr r1 clr r2 mov r3,100 loop mov a,dptr clr c cjne a,0h,loop1 inc r0 djnz r3,loop loop1 rl a jc fushu inc r1 djn...

微控制器大神請進,51微控制器彙編程式,程式可發至

生活如歌 1 p1口做輸出口,編寫程式,使p1口接的8個發光二極體l1 l8按16進位制加一方式點亮發光二極體。程式如下 org 0540h ha1s mov a,00h a初值為0 ha1s1 jb p3.3,ha1s1 如果p3.3為1則等待 有脈衝變0一次 mov r2,20h r2賦值為20...

微控制器彙編程式出錯

圖太不清晰了 問題可能在p0口的上拉電阻上 過小了 執行時暫停下,看p0口的邏輯電平。再一個就是檢查 網路標號了 低階錯誤 ls,對此程式而言,好像延時沒有必要!程式,我看沒問題,就看你電路的連線了。我proteus剛關掉,我就不試了,關注該問題進展。怎麼沒見你寫對數碼管的選址指令啊?數碼管顯示一位...