導航:首頁 > 操作系統 > 單片機偽指令

單片機偽指令

發布時間:2022-02-21 07:08:22

1. 51單片機中的偽指令的定義

偽指令單片機不會去執行,只是讓編譯器執行。如ORG 0010H,只是告訴編譯器,下面的指令應該放在0010H的地址單元。

2. 單片機中偽指令 求教

你提的問題是一個很多學生甚至教單片機的老師都不理解的一個問題。我們大學學單片機只是了解但是沒有真正的把硬體和軟體與實際聯繫到一起。不過為了深入了解我也細細的說一些單片機的工作機制,這樣學起來也比較簡單(呵呵,本人編程編的實在太累了,就當休息),在這里可能我講了一些要慢慢了解。
在了解之前要說幾個概念、單片機工程文件、燒錄文件、程序存儲區、運算單元、RAM
先從硬體開始說,因為工程文件、燒錄文件是後來發展形成的。這要從計算機歷史講起。最初的計算機是沒有程序存儲器的,採用布線接板進行控制,後來改用帶孔的紙板插入計算機光電管和燈泡之間來表示數據和程序,控製程序流程的走向。這是程序存儲器的最初雛形,傳動裝置將紙板傳入光電管和燈泡之間,計算機開始計算或控製程序走向。比如10cm的紙板有3個孔表示程序結束,10cm的紙板有2個孔表示數據相加,那麼傳動到哪裡就執行哪裡的程序。遇到10cm的紙板有3個孔計算機就停止。
最初是10進制。後來因為二進制對於計算機好識別才有了二進制。也增添了程序存儲器,程序存儲器就是用來控製程序走向和數據計算的依據單元。
了解硬體發展以後我們看一段程序,程序很簡單。計算4+5=9,呵呵幼兒班數學,可是單片機是如何算出來的呢,我們看個究竟。設RAM中R0的數據為4,R1里的數據為5,結果存到R2中,循環計算。 程序如下(一會通過加入其它偽指令來講述)
ORG 0000H
LJMP Start
ORG 0006H
Start: MOV R0,#04H
MOV R1,#05H
Main: MOV A,R0
ADD A,R1
MOV R2,A
LJMP Start
END
其中ORG為偽指令END也為偽指令。
有了這些程序單片機是如何工作的呢,我們能看懂程序但是單片機並不認識程序,它只能識別0和1組成的數據,為了不像最初的控制計算機流程一樣布線接板或者插紙板單片機中增加了很多東西如程序指針SP和程序存儲器。
我們編寫完程序後建立工程文件然後編譯成燒錄文件燒錄到單片機里(後面再講編譯)。
我們看看程序存儲區是什麼個樣子。
地址 數據
0x0000 02H
0x0001 00
0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78
0x0007 04
0x0008 79
0x0009 05
0x000A E8
0x000B 29
0x000C FA
0x000D 02
0x000E 00
0x000F 06
我們看到只是一些數據而已,單片機是如何執行的呢。下面我們分析一下。
單片機指令是由操作碼、操作數組成,操作碼是表明指針所指指令作用的標志數據,操作數則是要執行任務的數據依據,如LJMP Start 操作碼、操作數分別為02H和Start。在上電後SP指針的值指向0x0000位置。遇到的第一個指令是SJMP Start由於Start是人為為地址起的名字因此不會被存入單片機存儲器中,而是找到地址計算其跳轉地址(名稱相同就求出地址了),這個程序計算結果是0x0006,這樣LJMP Start 的指令位元組數為3個。
地址 數據
SP->0x0000 02H
0x0001 00
0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78
0x0007 04
0x0008 79
0x0009 05
0x000A E8
0x000B 29
0x000C FA
0x000D 02
0x000E 00
0x000F 06
我將程序存儲區數據和數據表聯系起。
地址 數據
0x0000 02H ORG 0000H
LJMP Start
0x0001 00
SP->0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78 ORG 0006H
Start: MOV R0,#04H
0x0007 04
0x0008 79 MOV R1,#05H
0x0009 05
0x000A E8 Main: MOV A,R0
0x000B 29 ADD A,R1
0x000C FA MOV R2,A
0x000D 02 LJMP Start
0x000E 00
0x000F 06
END
ORG表示下一行指令從哪一個地址開始寫,END表示程序結束,如果我們在加入一個偽指令EQU 編譯後會出現什麼結果。
First EQU R0
Second EQU R1
Result EQU R2
ORG 0000H
LJMP Start
ORG 0006H
Start: MOV First,#04H
MOV Second,#05H
Main: MOV A,First
ADD A,Second
MOV Result,A
LJMP Start
END
地址 數據
First EQU R0
Second EQU R1
Result EQU R2
0x0000 02H ORG 0000H LJMP Start
0x0001 00
SP->0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78 ORG 0006H
Start: MOV First,#04H
0x0007 04
0x0008 79 MOV Second,#05H
0x0009 05
0x000A E8 Main: MOV A,First
0x000B 29 ADD A,Second
0x000C FA MOV Result,A
0x000D 02 LJMP Start
0x000E 00
0x000F 06
END

我們會發現編譯後的結果是一樣的,這些偽指令雖然作用不同但是有一個共同特點就是在程序存儲器中不產生可執行的操作碼和操作數,只是為了編程人方便或注釋或可以影響數據存儲位置的指令稱為偽指令。
First EQU R0
Second EQU R1
Result EQU R2
ORG 0000H
LJMP Start
ORG 0006H
Start: MOV First,#04H
MOV Second,#05H
Main: MOV A,First
ADD A,Second
MOV Result,A
LJMP Start
DW 30H,60H,90H
END
編譯結果如下,從10H開始。因此DW30H是0030
0x0000 02H
0x0001 00
SP->0x0002 06
0x0003 00
0x0004 00
0x0005 00
0x0006 78
0x0007 04
0x0008 79
0x0009 05
0x000A E8
0x000B 29
0x000C FA
0x000D 02
0x000E 00
0x000F 06
0x0010 00
0x0011 30
0x0012 00
0x0013 60
0x0014 00
0x0015 90
暈,網路知道復制超過太多位元組的數據復制不上

3. MCS51單片機的偽指令有哪些

匯編起始偽指令:ORG;結束偽指令:END;位元組數據定義偽指令:DB;字數據定義偽指令:DW;空間定義偽指令:DS;賦值偽指令:EQU;位地址符號定義偽指令:BIT ;片內RAM直接位元組地址定義偽指令:DATA;片外RAM直接位元組地址定義偽指令:XDATA;一共9個

4. 51單片機所有偽指令

知道2個
EQU 匯編中出現左邊的符合都用右邊的替換
data 定義變數名稱

5. 51單片機偽指令

data 偽指令給一個8位的內部ram單元起一個名字

equ偽指令給一個表達式的值或者一個字元串起一個名字

http://www.ic37.com/htm_bbs_dic/2007-10/33433_516322.htm

6. 偽指令在單片機中到底是起到一個什麼作用

因為數碼管在動態循環顯示字碼時會因為沒有讓所有數碼管熄滅導致送入字碼時串碼出現的陰影,就是說把你想要顯示那位的字碼串到其他位的數碼管上顯示了,由於速度快所以呈現陰影,所以我們都要在字碼送給數碼管顯示後延時一定時間,再給數碼管送入0x00(16進制),把所有的數碼管熄滅再重新送入其他字碼。

7. 51系列單片機常見的偽指令有哪些各有什麼作用

1、起始偽指令 ORG
2、定義位元組偽指令 DB
3、定義字偽指令 DW
4、賦值偽指令 EQU
5、數據地址賦值偽指令 DATA

在 董少明 主編的 《單片機原理與應用》這本教材上 第 63、64 頁有詳細的解釋。

8. 51單片機偽指令DB使用方法

可以的

DB的作用是把項或項表中的數存入由該指令地址起始單元中,「項或項表」中的數可以是一個八位二進制數或用逗號隔開的一串8位二進制數(二進制、十進制、十六進制或ASCII碼)
格式:【標號】 DB 項或項表
例如:TAB: DB 45H,73,00110011B,』A『

9. 單片機匯編語言中,指令和偽指令有何區別

[指令語句]
每一條指令語句在源程序匯編時都要產生可供計算機執行的指令代碼(即目標代碼),所以這種語句又叫可執行語句。每一條指令語句表示計算機具有的一個基本能力,如數據傳送,兩數相加或相減,移位等,而這種能力是在目標程序(指令代碼的有序集合)運行時完成的,是依賴於汁算機內的中央處理器(CPU)、存儲器、I/O介面等硬體設備來實現的。

[偽指令語句]
偽指令語句是用於指示匯編程序如何匯編源程序,所以這種語句又叫命令語句。例如源程序中的偽指令語句告訴匯編程序:該源程序如何分段,有哪些邏輯段在程序段中哪些是當前段,它們分別由哪個段寄存器指向;定義了哪些數據,存儲單元是如何分配的等等。偽指令語句除定義的具體數據要生成目標代碼外,其他均沒有對應的目標代碼。偽指令語句的這些命令功能是由匯編程序在匯編源程序時,通過執行一段程序來完成的,而不是在運行目標程序時實現的。

10. 單片機,偽指令DB

DB是定義一個常數,存儲在程序空間。

閱讀全文

與單片機偽指令相關的資料

熱點內容
源碼編輯器如何設置難度 瀏覽:351
給pdf加目錄 瀏覽:472
加密軟體怎麼改安全問題 瀏覽:548
cmd命令ip 瀏覽:946
python輸出單引號雙引號 瀏覽:272
腳本編程管理命令 瀏覽:379
小愛音箱pro怎麼自己裝app 瀏覽:118
建立ftp文件夾命令 瀏覽:570
sha1withrsa演算法 瀏覽:453
域名交易系統源碼php 瀏覽:171
求解微分方程數值解的命令有哪些 瀏覽:626
程序員轉時尚傳媒 瀏覽:82
古拳譜pdf 瀏覽:42
一元二次方程無實數根的演算法 瀏覽:352
程序員測試輕松嗎 瀏覽:172
英雄聯盟神魔怎麼綁定伺服器 瀏覽:984
音樂app怎麼換音質 瀏覽:976
python進階客戶流失 瀏覽:282
華為榮耀10伺服器地址 瀏覽:1000
javastring相等判斷 瀏覽:413