標(biāo)題:
51單片機(jī)前幾個(gè)字節(jié)為什么需要空著
[打印本頁(yè)]
作者:
bill_liu
時(shí)間:
2018-4-28 09:19
標(biāo)題:
51單片機(jī)前幾個(gè)字節(jié)為什么需要空著
單片機(jī)編程時(shí),為什么前4個(gè)字節(jié)需要空著,是必須這么做嗎?
作者:
456123..
時(shí)間:
2018-4-28 11:23
不是 應(yīng)該只是好看的吧
作者:
yzwzfyz
時(shí)間:
2018-4-28 22:20
樓主。這是哪一個(gè)條款規(guī)定的。
作者:
zhuyongquan123
時(shí)間:
2018-4-28 22:41
因?yàn)楹?jiǎn)潔一些吧,不是必須的反正
作者:
莫哭哭
時(shí)間:
2018-4-29 00:59
應(yīng)該是復(fù)制粘貼的結(jié)果 沒(méi)有這個(gè)規(guī)定
作者:
angmall
時(shí)間:
2018-4-29 07:09
51單片機(jī)硬件設(shè)計(jì)的中斷服務(wù)程序入口地址是固定的
INT0:0003H
T0: 000BH
INT1:0013H
T1: 001BH
串口0023H
這個(gè)是固定的地址,不能變的,所以中斷服務(wù)程序只能從這里進(jìn)入,而由于地址很接近,放不了大程序,所以通常會(huì)在這里安置一條跳轉(zhuǎn)指令,跳到另外的地點(diǎn)。
中斷響應(yīng)后會(huì)立刻由硬件將當(dāng)前地址(PC)入棧,然后把新地址放在PC中。
這個(gè)是INTEL設(shè)計(jì)51單片機(jī)時(shí)硬件設(shè)定的,不能改的。而響應(yīng)哪個(gè)中斷,由硬件自動(dòng)修改PC為相應(yīng)的中斷服務(wù)程序入口地址。
作者:
angmall
時(shí)間:
2018-4-29 07:10
不放到開(kāi)頭,那你想要放到哪里? 單片機(jī)生產(chǎn)出來(lái),代碼空間可以小至只1K空間甚至更少,無(wú)論如何少,開(kāi)頭的一點(diǎn)空間一定是存在的,所以硬件設(shè)計(jì)師就把中斷表放到開(kāi)頭了 中斷發(fā)生時(shí),當(dāng)前指令地址被壓棧保護(hù),而后直接轉(zhuǎn)到了中斷向量對(duì)應(yīng)的地址,而這個(gè)地址上第一個(gè)指令基本上是一個(gè)goto,它跳轉(zhuǎn)到真正的中斷處理程序中
作者:
angmall
時(shí)間:
2018-4-29 07:11
理論上講放在哪里都一樣,不過(guò),你不想想,如果入口放在中央,你編寫(xiě)的匯編指令的下一條就是中斷入口,為了避開(kāi)他們,那你程序就得更復(fù)雜的跳來(lái)跳去,累不累,另外放在中間在修改時(shí)也不好找,幾k的空間好找么。說(shuō)白了就是集中放在一個(gè)好找好識(shí)別的地方。返回通過(guò)堆棧。
作者:
angmall
時(shí)間:
2018-4-29 10:05
如果你沒(méi)有使用中斷的話,從開(kāi)頭執(zhí)行,完全沒(méi)有問(wèn)題。
作者:
dqc466257261
時(shí)間:
2018-4-29 13:12
不是必須的
作者:
chacha123
時(shí)間:
2018-4-30 00:41
前幾個(gè)有中斷的入口
作者:
ljh007
時(shí)間:
2018-4-30 09:45
不是必須,這個(gè)空不空都可以
作者:
45210
時(shí)間:
2018-4-30 11:06
只是顯得整齊一點(diǎn)
作者:
xiweibiao7
時(shí)間:
2018-4-30 16:43
不是必須的啊
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1