找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2321|回復(fù): 8
收起左側(cè)

關(guān)于51單片機(jī)匯編代碼實(shí)例中經(jīng)常出現(xiàn)JMP標(biāo)號,CALL子程序

[復(fù)制鏈接]
ID:748096 發(fā)表于 2022-11-15 14:12 來自手機(jī) | 顯示全部樓層 |閱讀模式
而教程中一般沒有介紹怎么使用,比如LJMP,SJMP,AJMP,ACALL,LCALL。是不是編譯系統(tǒng)自動(dòng)識別代碼自動(dòng)修改成合適地址的
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2022-11-15 17:04 | 顯示全部樓層
當(dāng)然是編譯的時(shí)候確定地址,然后給機(jī)器碼賦予正確的值。
回復(fù)

使用道具 舉報(bào)

ID:884147 發(fā)表于 2022-11-15 17:47 | 顯示全部樓層
盡量不用A打頭的AJMP,ACALL,甚至完全忘掉!它們是不能跨頁的。
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2022-11-15 18:55 | 顯示全部樓層
一般 編程時(shí),用  
JMP  LABLE1

LABLE1:
這種方式書寫, 編譯的時(shí)候,會(huì)自動(dòng)根據(jù)  LABLE1: 所在位置,用地址替代。

也會(huì)根據(jù)地址選擇使用 AJMP  還是  LJMP
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2022-11-16 11:35 | 顯示全部樓層
你猜的很對!
如果編譯器這一點(diǎn)都做不到,它還譯個(gè)鳥啊。
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2022-11-16 13:24 | 顯示全部樓層
mtdzok 發(fā)表于 2022-11-15 17:47
盡量不用A打頭的AJMP,ACALL,甚至完全忘掉!它們是不能跨頁的。

AJMP、ACALL可以節(jié)約1個(gè)字節(jié),當(dāng)年Intel設(shè)計(jì)指令集的時(shí)候就想到了單片機(jī)編程就是螺螄殼里面做道場。
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2022-11-16 15:04 | 顯示全部樓層
JMP 和CALL 都是強(qiáng)制轉(zhuǎn)向特定的地址,不同的是CALL多了個(gè)當(dāng)前地址壓棧。
標(biāo)準(zhǔn)51,是8位系統(tǒng),理論上指令最多有256種,我數(shù)了一下,實(shí)際公布的是255種。
其中JMP 和CALL就占18種,理論上兩種就可以了,省出16種可以做其它功能。
多做16種,好處只是短轉(zhuǎn)(加A的)比長轉(zhuǎn)(加L)指令省一個(gè)字節(jié),而執(zhí)行時(shí)間是不變的。
個(gè)人認(rèn)為,這是CPU架構(gòu)時(shí),CPU指令系統(tǒng)的嚴(yán)重浪費(fèi)。

STC對標(biāo)準(zhǔn)51進(jìn)行了重大的改進(jìn),但也不得不遵守標(biāo)準(zhǔn)51的規(guī)矩,指令系統(tǒng)不能變!。
例如:STC新增了一個(gè)DPTR,但使用這個(gè)新增的DPTR,卻只能用一個(gè)開關(guān)去切換,用起來不太爽呀。
如果當(dāng)初省出這16種指令的空間,部分用于新增DPTR操作多好呢。
真希望宏晶,對51的指令系統(tǒng)作為改進(jìn),形成一個(gè)類似51,又優(yōu)于51的,更靈活的新的8位機(jī)系列。
回復(fù)

使用道具 舉報(bào)

ID:77589 發(fā)表于 2022-11-21 15:19 | 顯示全部樓層
可以盡量用短跳轉(zhuǎn)和調(diào)用,如果超出地址范圍了,編譯器會(huì)報(bào)錯(cuò),你再換個(gè)更長一點(diǎn)的就好了。
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2022-11-21 16:57 | 顯示全部樓層
直接用JMP和CALL就可以了,不要加什么的,完全沒有必要
那是以前的東西了
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表