久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 39951|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

AT89S51單片機(jī)中SP的復(fù)位值07H是什么意思?初學(xué),不是太懂

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:139137 發(fā)表于 2016-9-11 22:37 來自手機(jī) | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
AT89S51單片機(jī)中SP的復(fù)位值07H是什么意思?初學(xué),不是太懂,見諒一下。

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2016-9-11 22:43 | 只看該作者
就是說單片機(jī)上電復(fù)位以后 sp這個寄存器的值就變成了07H
回復(fù)

使用道具 舉報(bào)

板凳
ID:139137 發(fā)表于 2016-9-11 23:09 來自手機(jī) | 只看該作者
admin 發(fā)表于 2016-9-11 22:43
就是說單片機(jī)上電復(fù)位以后 sp這個寄存器的值就變成了07H

值為07H是什么意思啊?這是一個地址么?還是什么?
回復(fù)

使用道具 舉報(bào)

地板
ID:111634 發(fā)表于 2016-9-12 06:33 | 只看該作者
本帖最后由 zl2168 于 2016-9-12 07:05 編輯

首先要搞懂sp


堆棧指針SPStack Pointer


堆棧是CPU用于暫時存放特殊數(shù)據(jù)的“倉庫”,如子程序斷口地址,中斷斷口地址和其他需要保存的數(shù)據(jù)。在80C51中,堆棧由內(nèi)RAM中若干連續(xù)存儲單元組成,存儲單元的個數(shù)稱為堆棧的深度(可理解為倉庫容量)。


堆棧指針SP專用于指出堆棧頂部數(shù)據(jù)的地址。無論存入還是取出數(shù)據(jù),SP始終指向堆棧最頂部有效數(shù)據(jù)的地址。


堆棧中數(shù)據(jù)存取按先進(jìn)后出、后進(jìn)先出的原則。相當(dāng)于沖鋒槍的子彈夾,子彈一粒粒壓進(jìn)去,射擊時,最后壓進(jìn)去的子彈先打出去(后進(jìn)先出),最先壓進(jìn)去的子彈最后打出去(先進(jìn)后出)。


堆棧操作分自動方式和指令方式。自動方式是在調(diào)用子程序或發(fā)生中斷時,CPU自動將斷口地址存入或者取出;指令方式是使用進(jìn)出棧指令進(jìn)行操作。

以上摘自張志良編著
80C51單片機(jī)實(shí)用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9

書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。


回復(fù)

使用道具 舉報(bào)

5#
ID:111634 發(fā)表于 2016-9-12 06:38 | 只看該作者
本帖最后由 zl2168 于 2016-9-12 07:06 編輯

⒋ 堆棧操作指令


PUSH      direct                 ;SP+1SP,(direct)→(SP


POP       direct                 ;SP)→(direct),SP-1SP


說明:⑴ PUSH為入棧指令,是將其指定的直接尋址單元中的數(shù)據(jù)壓入堆棧。由于80C51是向上生長型堆棧,所以進(jìn)棧時堆棧指針要先加1,然后再將數(shù)據(jù)壓入堆棧。例如,設(shè)堆棧原始狀態(tài)如3-2a所示,(30H=2BH。執(zhí)行指令:PUSH  30H。具體操作是:①先將堆棧指針SP的內(nèi)容(0FH)加1,指向堆棧頂上的一個空單元,此時SP=10H,如3-2b所示;②然后將指令指定的直接尋址單元30H中的數(shù)據(jù)(2BH)送到該空單元中。執(zhí)行指令結(jié)果:(10H=2BHSP=10H,如3-2c所示。














POP為出棧指令,是將當(dāng)前堆棧指針SP所指示單元中的數(shù)據(jù)彈出到指定的內(nèi)RAM單元,然后將SP1SP始終指向棧頂?shù)刂贰@纾O(shè)堆棧原始狀態(tài)如3-3a所示,SP=0FH,(0FH=4CH,執(zhí)行指令:POP  40H。具體操作是:①先將SP所指單元0FH(棧頂?shù)刂罚┲械臄?shù)據(jù)(4CH)彈出,送到指定的內(nèi)RAM單元40H,(40H=4CH3-3b所示;②然后SP-1→SPSP=0EHSP仍指向棧頂?shù)刂罚?font face="Times New Roman">0FH中數(shù)據(jù)不變,仍等于4CH,但已作廢,3-3c所示。

























由于堆棧操作時只能以直接尋址方式來取得操作數(shù),故不能用累加器A和工作寄存器Rn作為操作對象。若要把A的內(nèi)容推入堆棧,應(yīng)用指令“PUSH  ACC”,這里ACC表示A的直接地址E0H。若要把R0的內(nèi)容推入堆棧,應(yīng)用指令“PUSH  00H”,這里00H表示R0的直接地址(設(shè)當(dāng)前工作寄存器區(qū)為0區(qū))。


3-8】已知SP=60H,求執(zhí)行下列程序指令后的結(jié)果。


MOV      DPTR,#1234H        ;DPTR=1234HDPH=12HDPL=34H


PUSH      DPH                ;SP+1SPSP=61H,(DPH)→(SP),(SP=61H=12H


PUSH      DPL                 ;SP+1SPSP=62H,(DPL)→(SP),(SP=62H=34H


MOV      DPTR,#5678H        ;DPTR=5678H


POP       DPH                ;DPH=62H=34HSP-1SPSP=61H


POP       DPL                 ;DPL=61H=12HSP-1SPSP=60H


執(zhí)行結(jié)果:SP=60H,不變;DPTR=3412H。由于堆棧先進(jìn)后出、后進(jìn)先出的操作原則,出棧時,先出的DPH裝入了后進(jìn)的原DPL的內(nèi)容(34H);而后出的DPL裝入了先進(jìn)的原DPH的內(nèi)容(12H)。
以上摘自張志良編著
80C51單片機(jī)實(shí)用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9

書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。


回復(fù)

使用道具 舉報(bào)

6#
ID:111634 發(fā)表于 2016-9-12 06:54 | 只看該作者
本帖最后由 zl2168 于 2016-9-12 07:07 編輯

堆棧指針SP設(shè)置在內(nèi)RAM(內(nèi)RAM地址為00H~7FH)什么區(qū)域呢?

復(fù)位后 SP值為07H,表明堆棧底部在07H。對于匯編程序,要考慮堆棧的重新設(shè)置。若SP=07H,就會占用原屬于工作寄存器區(qū)的08H1FH單元和20H以上的位尋址區(qū),妨礙工作寄存器和位尋址區(qū)的特殊功能。因此,在匯編程序初始化中,必須改變SP值,一般可置SP值為50H60H,堆棧深度相應(yīng)為48字節(jié)和32字節(jié)。對于C51程序,編譯器會自動安排堆棧,即不需要考慮堆棧如何設(shè)置。





以上摘自張志良編著
80C51單片機(jī)實(shí)用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9

書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。





回復(fù)

使用道具 舉報(bào)

7#
ID:139137 發(fā)表于 2016-9-12 09:03 來自手機(jī) | 只看該作者
zl2168 發(fā)表于 2016-9-12 06:54
堆棧指針SP設(shè)置在內(nèi)RAM(內(nèi)RAM地址為00H~7FH)什么區(qū)域呢?

復(fù)位后 SP值為07H,表明堆棧底部在07H。對于 ...

感謝感謝,雖然還有一些不懂得地方,但是大體知道怎么回事了,謝謝大神
回復(fù)

使用道具 舉報(bào)

8#
ID:139160 發(fā)表于 2016-9-12 10:47 | 只看該作者
同求~~~~~
回復(fù)

使用道具 舉報(bào)

9#
ID:7485 發(fā)表于 2016-9-12 11:27 | 只看該作者
本帖最后由 ahshmj 于 2016-9-12 11:28 編輯

sp是堆棧寄存器。默認(rèn)的堆棧棧底地址是片內(nèi)RAM的07H單元。

由于堆棧操作時(硬件自動)先將地址加1然后存儲,所以實(shí)際默認(rèn)的是從08H開始寫入,往上逐字節(jié)寫入。

由于單片機(jī)的結(jié)構(gòu)決定,00H~2FH功能較多,有其他更重要的事情分派,所以一般可以放到5FH以上的地址上。

又由于出棧也是間接尋址方式,所以,像at80c52系列的單片機(jī),片內(nèi)有256字節(jié)的RAM,堆棧棧底也可以放到7FH以上只要棧頂不超過0FFH即可。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久热伊人 | 亚洲天堂av在线 | 精品亚洲国产成av人片传媒 | 中文字幕蜜臀av | 成人 在线 | 国产高清在线观看 | 日韩电影免费在线观看中文字幕 | 亚洲精品 在线播放 | 久久精品成人 | 麻豆亚洲 | 黄色精品 | 亚洲综合色视频在线观看 | 欧美高清视频一区 | 青草久久免费视频 | 日日夜夜视频 | 久久成人精品视频 | 亚洲成av人片在线观看 | 天天天天天天天干 | 亚洲国产网站 | 国产成人综合在线 | 韩日av片| 成人免费一级 | 久久国产区 | 欧美电影一区 | 精品国产一区二区三区性色av | 999精品网| 成人三级视频 | 国产91在线播放 | 欧美激情精品久久久久久 | 国产精品国产三级国产aⅴ原创 | 欧美日韩亚洲在线 | 欧美极品少妇xxxxⅹ免费视频 | 国产精品免费av | 国产偷录视频叫床高潮对白 | 国产精品中文字幕在线播放 | 国产综合在线视频 | 成人日韩 | 天天干com | 久久综合久久综合久久 | 91成人在线视频 | 韩日一区二区三区 |