chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個(gè)簡短的小故事帶你摸透單片機(jī)堆棧

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-10-30 20:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

因?yàn)?a target="_blank">單片機(jī)CPU、存儲(chǔ)器、IO 等等,使他(人性化一點(diǎn)以配合下文)看起來就像一個(gè)比較小的計(jì)算機(jī),所以,在理解單片機(jī)的時(shí)候如果能把你之前有的那些也許僅僅是直覺上的對(duì)計(jì)算機(jī)的理解融入進(jìn)來的話,可能會(huì)對(duì)你學(xué)習(xí)單片機(jī)的概念有極大的幫助,至少對(duì)于我是這樣的。

我想在關(guān)于單片機(jī)的眾多讓你頭暈?zāi)X脹、摸不著頭腦甚至想撞墻的概念里面,“堆?!笨赡苁瞧渲凶羁蓯旱囊粋€(gè),因?yàn)榧词箚螁问菑臐h語的角度來理解這個(gè)詞就已經(jīng)讓你很暈了,其實(shí)我最初也想不通這是哪位大俠的創(chuàng)意,不過不用擔(dān)心,這里我們完全不去討論關(guān)于這個(gè)詞的問題(這個(gè)詞用得其實(shí)很好“堆”和“棧”都有他們各自的意思,準(zhǔn)確的概括了這個(gè)區(qū)域的功能,有興趣可以 Baidu 一下),這里我會(huì)打一個(gè)比較有趣的比方,以此來繞過那些令你想撞墻的概念,并使你在直覺上對(duì)“堆?!边@個(gè)概念有一個(gè)深刻的理解。

你基本上應(yīng)該清楚,單片機(jī)里面是有存儲(chǔ)區(qū)和 CPU 的,如果你不清楚,那么我剛剛告訴你了,請(qǐng)記住?,F(xiàn)在,請(qǐng)你把單片中的 CPU 想成一個(gè)人(你完全可以把他想成是你宿舍的那個(gè)天天和你吵嘴的同學(xué),一會(huì)你就會(huì)發(fā)現(xiàn)這會(huì)非常有趣),在這里就叫他 C 哥吧,不過這個(gè)人不同于常人,有一些特點(diǎn),一會(huì)我們會(huì)慢慢說清楚,現(xiàn)在要告訴你的關(guān)于這個(gè)人的第一個(gè)特點(diǎn)是:他的記憶能力很差。下面,請(qǐng)你把存儲(chǔ)區(qū)想象成一個(gè)一個(gè)排好的小盒子,這些盒子的作用大致可以分成兩類:1、保存寫有你命令的紙條,比如你在某個(gè)盒子里面的紙條上寫著:去洗我的襪子??;2、保存你的一些東西,比如你那雙正在污染宿舍空氣的臭襪子。因?yàn)?C 哥是一個(gè)記憶力不怎么好的人,所以,這些盒子都有自己的編號(hào),以方便他查找。

那么,現(xiàn)在,我們可以來說明一下單片機(jī)是如何工作的了。首先,你要把所有的命令還有需要處理的東西放進(jìn)那些小盒子,比如剛才提到的你那雙待洗的襪子還有那張紙條,這時(shí)你應(yīng)該發(fā)現(xiàn) C 哥另一個(gè)特點(diǎn):笨——他只會(huì)做你明確告訴他的事情,也就是說,如果你沒有在紙條上寫“去洗我的襪子!”,那么 C 哥極有可能會(huì)無動(dòng)于衷地看著你的襪子直到他被熏暈倒,當(dāng)然,更可能的情況是他根本找不到你的襪子…好了,當(dāng)你把要做的事情和該怎么做寫到盒子里之后,下面的任務(wù)就交給 C 哥了。C 哥做事真的很講原則,他會(huì)按照你給定的順序或者——如果你沒有給定的話,根據(jù)盒子上面的編號(hào)按照從小到大的順序——一個(gè)一個(gè)地打開盒子,讀取里面的命令、處理相應(yīng)的事件,直到所有的事情都執(zhí)行完畢,他就會(huì)休息。請(qǐng)你牢記這個(gè)簡單而有趣的過程,因?yàn)槠鋵?shí)單片機(jī)就是這樣工作的,當(dāng)然,這里忽略了許多細(xì)節(jié),但是這對(duì)你從直覺上理解單片機(jī)的概念以及足夠了。

下面,就要開始說明堆棧這個(gè)概念了,思來想去,還是覺得如果直接把“堆?!边@個(gè)詞用到文中來,實(shí)在不符合本文的風(fēng)格,考慮到其實(shí)“堆棧”也是存貯區(qū)(這一點(diǎn)你要記住,堆棧并不是一個(gè)像專用寄存器那樣專門的一個(gè)區(qū)域,它是由你在通用 RAM 區(qū)指定的。),按照本文的說法也就是一些盒子,所以,現(xiàn)在我們把“堆?!备拿小坝洃浐凶印?,你可以感覺到,“堆?!钡淖饔煤陀洃浻袠O大的關(guān)系,不過你也不用在這里糾結(jié)這個(gè)名字的由來,下面我會(huì)說的。

現(xiàn)在,請(qǐng)注意,我要開始解釋“記憶盒子”了,也就是“堆棧”。大致上說,“記憶盒子”的作用是當(dāng) C 哥執(zhí)行某任務(wù)到一半的時(shí)候突然有了更緊急的是事情要執(zhí)行的時(shí)候用來保存當(dāng)前任務(wù)的(包括盒子的編號(hào)和盒子里面的東西)。這么說你肯定暈了,其實(shí),通俗一點(diǎn),就是當(dāng) C 哥洗襪子洗到一半的時(shí)候突然接到你的命令要去打開另一個(gè)盒子(那個(gè)盒子里的紙條上可能寫著“給我換尿布”)并執(zhí)行里面的命令,因?yàn)?C 哥記憶力很差,以至于他做完那件緊急的事情后記不起要回到哪個(gè)盒子來繼續(xù)執(zhí)行“洗襪子”這個(gè)命令,這時(shí)候,他要把現(xiàn)在手頭的東西保存到“記憶盒子”里,要保存的東西有:1、放著紙條和襪子的盒子的編號(hào)(注意這里其實(shí)是兩項(xiàng)內(nèi)容);2、那雙襪子。這樣,當(dāng)他執(zhí)行完緊急任務(wù)后會(huì)去記憶盒子里,從里面找到兩張紙條,和一雙襪子(這個(gè)時(shí)候 C 哥還是沒有想起來他要洗襪子,他必須要到那張寫著洗襪子命令的紙條),他按照兩張紙條的信息知道自己要去哪個(gè)盒子去洗襪子,并在那里繼續(xù)完成洗襪子的任務(wù)。你可能會(huì)發(fā)現(xiàn),在這一段的解釋里面有一個(gè)重要的漏洞,那就是在 C 哥執(zhí)行完緊急任務(wù)后他是如何知道儲(chǔ)存著原來的任務(wù)信息的盒子的編號(hào)是存儲(chǔ)在哪個(gè)“記憶盒子”里呢?別著急,下面我會(huì)解釋的。

從本質(zhì)來說,“記憶盒子”與普通的盒子是沒有區(qū)別的,他們都是單片機(jī)里面的存儲(chǔ)單元,證明這一點(diǎn)的最好證據(jù)就是堆棧是需要你來指定的,也就是說,你要預(yù)先把一些盒子指定為“記憶盒子”。下面,說明一下是如何指定“記憶盒子”的。其實(shí)這個(gè)過程很簡單,在單片機(jī)的專用寄存器里面有一個(gè) SP 指針(81H),這個(gè)指針里面記錄著堆棧的開始處的地址。用符合本文的話來解釋就是,C 哥的衣服上有一個(gè)口袋(也就是 SP 指針),這個(gè)口袋里面的“神奇紙條”上記錄著第一個(gè)“記憶盒子”的編號(hào),而指定“記憶盒子”的過程就是你在這張“神奇紙條”上寫上一個(gè)盒子的編號(hào)(作為第一個(gè)“記憶盒子”的編號(hào)),這個(gè)紙條會(huì)自動(dòng)地將紙條上的編號(hào)加 1 或者減 1,所以,某個(gè)目前并不確定的區(qū)域內(nèi)盒子具備了成為“記憶盒子”的可能,注意,堆棧的大小是不能規(guī)定的,這就是為什么用“生長”這個(gè)詞來形容堆棧。

現(xiàn)在,關(guān)于堆棧的概念基本上都介紹完了,但是,我知道,你可能還是很暈,甚至比看之前還暈,那是因?yàn)閯偛艛⑹龅倪@個(gè)過程是分開的,而且邏輯上并不是順序的,下面,順序的說一下,相信你馬上就明白了。

主角仍然是傻傻笨笨但任勞任怨的 C 哥,他一個(gè)一個(gè)的打開盒子按照里面的紙條上的說明執(zhí)行你規(guī)定的任務(wù)。而你,為了防止他在執(zhí)行復(fù)雜任務(wù)時(shí)犯傻,把一個(gè)盒子指定為“記憶盒子”,并把這個(gè)“記憶盒子”的位置寫在了一張 “神奇紙條”上放在了 C 哥的口袋里?,F(xiàn)在,C 哥正在洗你的襪子,這個(gè)時(shí)候,他突然接到你的命令要去給你換尿布,而 C 哥知道自己很笨,所以他自動(dòng)地掏出了口袋里的紙條,找到了第一個(gè)“記憶盒子”,然后拿出一張空白紙條,把裝著“給我洗襪子”那張紙條的盒子的編號(hào)寫在了上面并放進(jìn)“記憶盒子”。然后,他把“神奇紙條”放回了口袋里。當(dāng)這個(gè)任務(wù)完成后“神奇紙條”會(huì)自動(dòng)將寫在它上面的編號(hào)加 1,也就是將一個(gè)新的、空的“記憶盒子”的編號(hào)寫在上面。之后,他會(huì)按照剛才的過程把裝著襪子的那個(gè)盒子的編號(hào)以及襪子本身分別放進(jìn)不同的記憶盒子(現(xiàn)在已經(jīng)有三個(gè)盒子成為“記憶盒子”,堆棧已經(jīng)長大了,紅色下劃線的字體就是這三個(gè)盒子里的內(nèi)容,注意是有先后順序的)。再然后,他就去給你換尿布了…

現(xiàn)在,尿布換完了,不過,果不其然,C 哥完全忘記了他要給你洗襪子這件事情了,不過,他記得一件事,那就是看口袋里的紙條。于是,他摸出了口袋里的紙條,上面當(dāng)然是一個(gè)“記憶盒子”的編號(hào),他按照編號(hào)找到了第一個(gè)“記憶盒子”(按照上一段的順序應(yīng)該是第三個(gè)“記憶盒子”),里面應(yīng)該是一雙你的襪子,于是他拿到了你的襪子。但是,他還是不知道該干什么,于是他再次摸出了“神奇紙條”,這時(shí),紙條上的編號(hào)已經(jīng)自動(dòng)減 1 了,于是,他找到了新的“記憶盒子”,里面的紙條上記錄著襪子本來放置的盒子的編號(hào),于是,他把襪子放到了那個(gè)盒子里。恩,你可以想到,現(xiàn)在 C 哥還是不知道要對(duì)襪子做些什么,他耐心的又一次摸出了那張“神奇紙條”,這次按照上面的編號(hào),他找到了一張紙條,上面寫著的仍然是一個(gè)盒子的編號(hào)。C 哥按照編號(hào)找到了那個(gè)盒子,發(fā)現(xiàn)那個(gè)盒子里的紙條上寫著“給我洗襪子!”…至此,C 哥又回到了原來的任務(wù)——洗襪子。

現(xiàn)在,我希望你已經(jīng)明白了,堆棧其實(shí)就是你指定的一個(gè)些存儲(chǔ)單元,這些存儲(chǔ)單元被指定只用來保存一些特殊信息,比如地址(保護(hù)斷點(diǎn))或者一些數(shù)據(jù)(保護(hù)現(xiàn)場(chǎng)),如果你一定要說這個(gè)存儲(chǔ)區(qū)有什么特別的話,那就是:1、這些存儲(chǔ)單元內(nèi)的內(nèi)容都是 CPU 在執(zhí)行某任務(wù)中途被打斷時(shí)的一些相關(guān)參數(shù);2、這些存儲(chǔ)單元的地址被記在了一個(gè)叫堆棧指針的地方,也就是 C 哥口袋里的那張紙條上!

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6074

    文章

    45457

    瀏覽量

    667117
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)里的程序運(yùn)行方式

    :它是單片機(jī)內(nèi)部的核心部件,決定了單片機(jī)的主要功能特性,由運(yùn)算器和控制器兩大部分組成。 存儲(chǔ)器:8051單片機(jī)在系統(tǒng)結(jié)構(gòu)上采用了哈佛型,將程序和數(shù)據(jù)分別存放在兩個(gè)存儲(chǔ)器內(nèi),
    發(fā)表于 01-16 06:57

    單片機(jī)堆棧解析

    什么是單片機(jī)堆棧? 在片內(nèi)RAM中,常常要指定個(gè)專門的區(qū)域來存放某些特別的數(shù)據(jù),它遵循順序存取和后進(jìn)先出(LIFO/FILO)的原則,這個(gè)RAM區(qū)叫
    發(fā)表于 12-09 06:52

    單片機(jī)程序的執(zhí)行

    上是不是只要Flash就可以了呢(直接相當(dāng)于PC上的DDRRAM)?這樣成本也會(huì)比個(gè)RAM,個(gè)Flash低,更節(jié)省成本,對(duì)于生產(chǎn)商更劃算)。 對(duì)于
    發(fā)表于 12-04 06:20

    文解析單片機(jī)晶振腳的原理

    晶振是重要元器件之,對(duì)于晶振,小編于往期晶振相關(guān)文章中有過諸多闡述。本文中,小編將對(duì)單片機(jī)晶振腳的原理加以解析,以幫助大家更好理解晶振。晶振電路需要2個(gè)10-30pF級(jí)別的電容作為起振用途
    的頭像 發(fā)表于 11-21 15:37 ?3466次閱讀
    <b class='flag-5'>一</b>文解析<b class='flag-5'>單片機(jī)</b>晶振腳的原理

    堆棧指針SP介紹

    ,60H 試分析為什么? 百度解釋: 單片機(jī)復(fù)位后SP的值般要用條指令賦值為60H,這只是個(gè)別人寫程序的愛好與習(xí)慣罷了,沒有任何規(guī)定必須是賦值60H,更沒有任何原因必須選60H。 就單片機(jī)
    發(fā)表于 11-17 06:07

    單片機(jī)和嵌入式,到底是什么關(guān)系?

    很多人初次接觸嵌入式開發(fā)時(shí),都會(huì)聽到句話:“嵌入式其實(shí)就是單片機(jī)?!笨僧?dāng)你真正開始學(xué)習(xí)時(shí),會(huì)發(fā)現(xiàn)嵌入式和單片機(jī)雖然經(jīng)常“捆綁”在起提,但它們好像又不是
    的頭像 發(fā)表于 11-14 10:28 ?1056次閱讀
    <b class='flag-5'>單片機(jī)</b>和嵌入式,到底是什么關(guān)系?

    單片機(jī)個(gè)承載科技與工程思維的核心平臺(tái)

    ,還是工業(yè)自動(dòng)化、嵌入式系統(tǒng),單片機(jī)都扮演著不可或缺的角色。它不僅僅是個(gè)芯片,而是承載著技術(shù)與工程思維的核心平臺(tái),其重要性不言而喻。 、單片機(jī)
    的頭像 發(fā)表于 09-29 01:07 ?496次閱讀

    開發(fā)單片機(jī)需要學(xué)習(xí)什么?軟件編程的 4 個(gè)關(guān)鍵層次

    ? ? ? ? ? ? ? ? ? ? 開發(fā)單片機(jī)需要學(xué)習(xí)什么?軟件編程的 4 個(gè)關(guān)鍵層次 單片機(jī)的 “智能” 全靠軟件實(shí)現(xiàn),編程技能需從基礎(chǔ)語法逐步進(jìn)階到復(fù)雜邏輯,每個(gè)層次對(duì)應(yīng)不同的開發(fā)需求
    的頭像 發(fā)表于 08-25 11:32 ?734次閱讀

    什么單片機(jī)比較耐用

    凱星科技有限公司在多年的單片機(jī)應(yīng)用開發(fā)中,對(duì)各類單片機(jī)的耐用性有著深入了解,通過為拓邦、朗科、安徽龍多等客戶提供方案,積累了豐富的選型與優(yōu)化經(jīng)驗(yàn)。 影響單片機(jī)耐用性的核心因素 單片機(jī)
    的頭像 發(fā)表于 07-31 13:48 ?678次閱讀

    怎么測(cè)單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測(cè)量系統(tǒng)頻率對(duì)單片機(jī)應(yīng)用開發(fā)、程序調(diào)試和性能優(yōu)化具有重要意義。測(cè)量
    的頭像 發(fā)表于 07-25 11:39 ?617次閱讀

    單片機(jī)怎么驅(qū)動(dòng)電機(jī)?

    在各類自動(dòng)化設(shè)備和智能裝置中,電機(jī)是重要的執(zhí)行部件,而單片機(jī)作為控制核心,需要通過特定的方式驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)。單片機(jī)驅(qū)動(dòng)電機(jī)并非直接連接即可,而是要根據(jù)電機(jī)類型和功率,搭配合適的驅(qū)動(dòng)電路,才能實(shí)現(xiàn)穩(wěn)定
    的頭像 發(fā)表于 07-25 09:31 ?576次閱讀

    單片機(jī)怎么燒程序

    單片機(jī)燒程序是將編寫好的程序代碼寫入單片機(jī)內(nèi)部存儲(chǔ)單元,讓單片機(jī)按照預(yù)設(shè)邏輯工作的過程,是單片機(jī)應(yīng)用開發(fā)中不可或缺的環(huán)節(jié)。無論是簡單的燈光控制程序,還是復(fù)雜的工業(yè)控制算法,都需要通過燒
    的頭像 發(fā)表于 07-23 11:47 ?844次閱讀

    單片機(jī)與存儲(chǔ)器的那些事

    單片機(jī)與存儲(chǔ)器的關(guān)系像什么?單片機(jī)里的存儲(chǔ)都是樣的嗎?為什么有的單片機(jī)既有EEPROM又有Flash?
    的頭像 發(fā)表于 04-10 10:06 ?1513次閱讀
    扒<b class='flag-5'>一</b>扒<b class='flag-5'>單片機(jī)</b>與存儲(chǔ)器的那些事

    單片機(jī)科普總結(jié),建議收藏!

    來說,單片機(jī)可能是個(gè)既熟悉又陌生的概念。熟悉,是因?yàn)槲覀冊(cè)谌粘I钪薪?jīng)常接觸到單片機(jī)控制的設(shè)備,比如微波爐、空調(diào)、智能手表;陌生,則是因?yàn)?b class='flag-5'>單片機(jī)
    的頭像 發(fā)表于 04-07 11:58 ?5153次閱讀
    <b class='flag-5'>單片機(jī)</b>科普總結(jié),建議收藏!

    晶振受到電磁干擾對(duì)單片機(jī)的影響

    單片機(jī)可以正常運(yùn)行的個(gè)因素就是晶振的穩(wěn)定性。在工作過程中,晶振可能會(huì)受到電磁干擾的影響,導(dǎo)致單片機(jī)發(fā)生故障,甚至出現(xiàn)死機(jī)的情況。
    的頭像 發(fā)表于 03-20 18:01 ?1103次閱讀