組合語言 微控制器基礎

2021-10-09 20:43:49 字數 1572 閱讀 2127

以老師上課講的例題為例,進行程式分析。

#前兩步為跳過中斷區,一般程式都直接加上

org 0000h

ljmp main

org 1000h #定義源位址為1000h

main: mov a,#30h #將 立即數30h 賦給 累加器a

movc a,@a+pc #將(累加器a + 下一條命令後程式計數器的值)對應位址的內容賦給a,

#即a =(源位址1000h +

30h +

(mov所佔位元組1

+ movc所佔位元組2

) )=

1033h

org 1030h #定義源位址為1030h

db 01h,

02h,

03h,

04h #分別將以下4個位元組數放在源位址中,即分別對應1030h,

1031h,

1032h,

1033h

end

test.asm

#前兩步為從微控制器的源位址0000h開始,跳過中斷區,為程式必有的部分

org 0000h

ajmp main

#定義main的起始位址為0100h

org 0100h

main: mov a,#01h #將 立即數01h 賦給 累加器a

mov 20h, #02h #將 立即數02h 賦給 20h位址的內容

mov a,

20h #將20h對應位址裡的內容 賦給 累加器a

end

movx.asm

#前兩步為從微控制器的源位址0000h開始,跳過中斷區,為程式必有的部分

org 0000h

ljmp main

#定義main的起始位址為1000h

org 1000h

main: mov a,#30h #將 立即數30h 賦給 累加器a

mov r0,#40h #將 立即數40h 賦給 r0

mov @r0,a #(在片內ram中)將 累加器a的值 賦給 r0中的位址對應的數

#(在未定義的片外ram中:位址為ff00h)

movx @r0,a #將 累加器a的值 賦給 r0中的位址對應的數

mov p2,#11h #定義片外暫存器的位址為11h

#(在定義後的片外ram中:位址為1100h)

movx @r0,a #將 累加器a的值 賦給 r0中的位址對應的數

#下兩步為選擇dptr並賦值

mov 0a2h, #01h #選擇dptr1

mov dptr, #1818h #給 dptr1 賦值 1818h

movx @dptr, a #將 累加器a的值(

30h) 賦給 dptr對應的位址的內容

end

微控制器彙編程式設計300例 微控制器基礎組合語言程式設計例項

微控制器組合語言程式設計 1 編寫程式,用位處理指令實現 p1.4 p1.0 p1.1 p1.2 p1.3 的邏輯功能。mov c,p1.1 anl c,p1.2 orl c,p1.0 orl c,p1.3 mov p1.3,c 2 編寫程式,若累加器a的內容分別滿足下列條件,則程式轉到lable儲...

tiri微控制器 51微控制器 微控制器組合語言學習

mcs 51微控制器的特殊功能暫存器 符號位址 功能介紹 bf0h b暫存器 acce0h 累加器psw d0h程式狀態字 th2 cdh定時器 計數器2 高8位 tl2 cch定時器 計數器2 低8位 rcap2h cbh外部輸入 p1.1 計數器 自動再裝入模式時初值暫存器高八位 rcap2l ...

C語言和組合語言開發微控制器

組合語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是占用資源少 程式執行效率高。但是不同的 cpu,其組合語言可能有所差異,所以不易移植。c 語言是一種結構化的高階語言。其優點是可讀性好,移植容易,是普遍使用的一種計算機 語言。缺點是占用資源較多,執行效率沒有彙...