|
單片機(jī)的指令系統(tǒng)和匯編語言程序介紹:
前面已經(jīng)講述了單片機(jī)的幾個(gè)主要組成部分,這些部分構(gòu)成了單片機(jī)的硬件。所謂硬件(Hardware),就是看得到,摸得到的實(shí)體。但是,光有這樣的硬件,還只是有了實(shí) 現(xiàn)計(jì)算和控制功能的可能性。單片機(jī)要真正地能進(jìn)行計(jì)算和控制,還必須有軟件(Software)的配合。軟件主要指的是各種程序。只有將各種正確的程序“灌入”(存入)單片機(jī),它才能有效地工作。單片機(jī)所以能自動(dòng)地進(jìn)行運(yùn)算和控制,正是由于人把實(shí)現(xiàn)計(jì)算和控制的步驟一 步步地用命令的形式,即一條條指令(Instruction)預(yù)先存入到存貯器中,單片機(jī)在CPU的控制下,將指令一條條地取出來,并加以翻譯和執(zhí)行。就以兩個(gè)數(shù)相加這一簡單的運(yùn)算來說,當(dāng)需要運(yùn)算的數(shù)已存入存貯器后,還需要進(jìn)行以下幾步:
第四 步:把相加完的結(jié)果,送至存貯器中指定的單元。
數(shù)據(jù)、地址、指令:之所以將這三者放在一起,是因?yàn)檫@三者的本質(zhì)都是一 樣的──數(shù)字,或者說都是一串‘0’和‘1’組成的序列。換言 之,地址、指令也都是數(shù)據(jù)。指令:由單片機(jī)芯片的設(shè)計(jì)者規(guī)定的一種數(shù)字,它與我們常用的指令助記符有著嚴(yán)格的一一對應(yīng)關(guān)系,不可以由單片機(jī)的開發(fā)者更改。地址:是尋找單片機(jī)內(nèi)部、外部的存儲(chǔ)單元、輸入輸出口的依據(jù),內(nèi)部單元的地址值已由芯片設(shè)計(jì)者規(guī)定好,不可更改,外部的單元可以由單片機(jī)開發(fā)者自行決定, 但有一些地址單元是一定要有的(詳見程序的執(zhí)行過程)。數(shù)據(jù):這是由微處理機(jī)處理的對象,在各種不同的應(yīng)用電路中各不相同,一般而言,被處理的數(shù)據(jù)可能有這么幾種情況:
1·地址(如MOV DPTR,#1000H),即地址1000H(相當(dāng)于門牌號(hào))送入DPTR。
2·方式字或控制字(如MOV TMOD,#03H),3即是控制字。
3·常數(shù)(如MOV TH0,#10H)10H即定時(shí)常數(shù)(16進(jìn)制)。
4·實(shí)際輸出值 (如P1口接彩燈,要燈全亮,則執(zhí)行指令:MOV P1,#0FFH,要燈全暗,則執(zhí)行指令:MOV P1,#00H)這里0FFH和00H都是實(shí)際輸出值。又如用于LED的字形碼,也是實(shí)際輸出的值。
理解了地址、指令的本質(zhì),就不難理解程序運(yùn)行過程中為什么會(huì)跑飛,會(huì)把 數(shù)據(jù)當(dāng)成指令來執(zhí)行了。
文章選自http://www.cogoask.com/
工程師問題大全www.cogoask.com
單片機(jī):http://www.cogoask.com/tags/%E5%8D%95%E7%89%87%E6%9C%BA/
ARM:http://www.cogoask.com/tags/arm/
PCD:http://www.cogoask.com/tags/pcb/
ALTIUM: http://www.cogoask.com/tags/altium/
FPGA: http://www.cogoask.com/tags/fpga/
|
|