欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2911|回復: 8
收起左側

關于51單片機匯編代碼實例中經常出現JMP標號,CALL子程序

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

LABLE1:
這種方式書寫, 編譯的時候,會自動根據  LABLE1: 所在位置,用地址替代。

也會根據地址選擇使用 AJMP  還是  LJMP
回復

使用道具 舉報

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

使用道具 舉報

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

AJMP、ACALL可以節約1個字節,當年Intel設計指令集的時候就想到了單片機編程就是螺螄殼里面做道場。
回復

使用道具 舉報

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

STC對標準51進行了重大的改進,但也不得不遵守標準51的規矩,指令系統不能變!。
例如:STC新增了一個DPTR,但使用這個新增的DPTR,卻只能用一個開關去切換,用起來不太爽呀。
如果當初省出這16種指令的空間,部分用于新增DPTR操作多好呢。
真希望宏晶,對51的指令系統作為改進,形成一個類似51,又優于51的,更靈活的新的8位機系列。
回復

使用道具 舉報

ID:77589 發表于 2022-11-21 15:19 | 顯示全部樓層
可以盡量用短跳轉和調用,如果超出地址范圍了,編譯器會報錯,你再換個更長一點的就好了。
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表