日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
A51 3.5.4 程序地址
A51 3.5.4 程序地址
 更新時(shí)間:2008-8-17 19:39:31  點(diǎn)擊數(shù):6
【字體: 字體顏色
 程序地址是CODE或ECODE存儲(chǔ)器類型的絕對(duì)或者可以重定位的表達(dá)式。典型的程序地址被用于跳轉(zhuǎn)和調(diào)用指令中。對(duì)于間接跳轉(zhuǎn)或調(diào)用,我們需要裝載一個(gè)寄存器或跳轉(zhuǎn)表中的程序地址。下面的跳轉(zhuǎn)和調(diào)用指令都是可能的:

SJMP
JZ
JNZ …

相對(duì)跳轉(zhuǎn),包括條件跳轉(zhuǎn)(CJNE,DJNZ,JB,JBC,JC,……)和非條件SJMP指令?蓪ぶ返钠屏繛殡x開(kāi)緊跟在相對(duì)跳轉(zhuǎn)指令后面的指令的首字節(jié)-128到+127字節(jié)。當(dāng)我們?cè)诖a中使用相對(duì)跳轉(zhuǎn)指令時(shí),我們必須用一個(gè)表達(dá)式來(lái)估計(jì)跳轉(zhuǎn)目標(biāo)的代碼地址。匯編器完成所有的偏移運(yùn)算。如果目標(biāo)地址超出范圍,匯編器會(huì)產(chǎn)生一條出錯(cuò)信息。
   
ACALL
AJMP


塊內(nèi)跳轉(zhuǎn)和調(diào)用只能訪問(wèn)程序空間的2K字節(jié)塊內(nèi)的地址。當(dāng)跳轉(zhuǎn)或調(diào)用指令被執(zhí)行時(shí),程序計(jì)數(shù)器的低11位被替換。對(duì)于Dallas 390連續(xù)型模式,塊的大小為512KB或19位。如果ACALL或AJMP是塊中的最后一條指令,程序計(jì)數(shù)器的高端位改變,跳轉(zhuǎn)將被限制在ACALL或AJMP指令后面的程序塊內(nèi)。

LCALL
LJMP
長(zhǎng)跳轉(zhuǎn)和調(diào)用允許訪問(wèn)程序空間的64K字節(jié)段中任意地址。當(dāng)跳轉(zhuǎn)或調(diào)用指令被執(zhí)行時(shí),程序計(jì)數(shù)器的低16位被替換。對(duì)于Dallas 390連續(xù)型模式,塊的大小為16MB或24位。對(duì)于菲利浦80C51MX和英特爾/愛(ài)特梅爾WM 251:如果LCALL或LJMP是64K字節(jié)段中的最后一條指令,程序計(jì)數(shù)器的高端位改變,跳轉(zhuǎn)指令將被限制在LCALL或LJMP指令后面的程序段內(nèi)。
   
ECALL
EJMP
擴(kuò)展的跳轉(zhuǎn)和調(diào)用允許在英特爾/愛(ài)特梅爾WM 251或菲利浦80C51MX擴(kuò)展的程序空間內(nèi)訪問(wèn)。
   
CALL
JMP
通用跳轉(zhuǎn)和調(diào)用是兩條不代表具體操作碼的指令助記符。JMP可以被匯編為SJMP,AJMP,LJMP,EJMP。CALL可以被匯編為ACALL,LCALL或ECALL。通用助記符通常被估計(jì)為一條指令,沒(méi)有必要是最短的指令,只要達(dá)到指定的程序地址操作數(shù)就可以。

適用于所有8051版本的例子

EXTRN    CODE    (my_function)
  CSEG AT 3  
  JMP ext_int ; 一個(gè)中斷向量
       
?PR?myintr SEGMENT CODE ; 為程序代碼定義一個(gè)段
  RSEG ?PR?myintr  
ext_int: JB FLAG, flag_OK  
  INC my_var  
flag_OK: CPL FLAG  
  RETI    
      ; http://gonghighloam.21ic.org 羅畝的筆記
?PR?myprog SEGMENT CODE INBLOCK ; 2K塊內(nèi)的一個(gè)段
  RSEG ?PR?myprog  
func1: CALL sub_func ; 將產(chǎn)生ACALL
loop: CALL my_function ; 外部函數(shù) -> LCALL
  MOV A,my_var  
  JNZ loop  
  RET    
      http://gonghighloam.21ic.org   羅畝的筆記
sub_func: CLR FLAG  
  MOV R0, #20  
loop1: CALL my_function  
  DJNZ R0, loop1  
  RET    

在菲利浦80C51MX和英特爾/愛(ài)特梅爾WM 251中使用EJMP,ECALL的例子

  • 上一篇: keilc51用戶上電初始化程序解讀(轉(zhuǎn))
  • 下一篇: [轉(zhuǎn)載]嵌入式實(shí)時(shí)操作系統(tǒng)的現(xiàn)狀和未來(lái)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1