利用存儲器
發布時間:2016/7/12 20:57:33 訪問次數:427
當傳送的數據量比較大時,可以利用存儲器實現參數的傳遞。在這種方式中,事先要EP3C40F484I7建立一個參數表,用指針指示參數表所在的位置。當參數表建立在內部RAM時,用RO或R1作參數表的指針。當參數表建立在外部RAM時,用DPTR作參數表的指針。
將RO和R1指向的內部RAM中兩個3字節無符號整數相加,結果送到由R0指向的內部RAM中。入口時,R0和R1分別指向加數和被加數的低位節;出口時,RO指向結果的高位字節。低字節在高地址,高字節在低地址。
實現程序:
在調用子程序前,用PUsH指令將子程序中所需數據壓入堆棧,進入執行子程序時,再用PoP指令從堆棧中彈出數據。
把內部RAM中⒛H單元中的1字節十六進制數轉換為2位AsCII碼,存放在31H和32H兩個單元中。分析:十六進制數0~9的ASCII碼為30H~39H,即十六進制數(0~9)=AsCII碼-30H;十六進制數A~F的ASCⅡ碼為41H~46H,即十六進制數(A~F)=AsCII-37H。根據此對應 關系,編寫如下程序.
當傳送的數據量比較大時,可以利用存儲器實現參數的傳遞。在這種方式中,事先要EP3C40F484I7建立一個參數表,用指針指示參數表所在的位置。當參數表建立在內部RAM時,用RO或R1作參數表的指針。當參數表建立在外部RAM時,用DPTR作參數表的指針。
將RO和R1指向的內部RAM中兩個3字節無符號整數相加,結果送到由R0指向的內部RAM中。入口時,R0和R1分別指向加數和被加數的低位節;出口時,RO指向結果的高位字節。低字節在高地址,高字節在低地址。
實現程序:
在調用子程序前,用PUsH指令將子程序中所需數據壓入堆棧,進入執行子程序時,再用PoP指令從堆棧中彈出數據。
把內部RAM中⒛H單元中的1字節十六進制數轉換為2位AsCII碼,存放在31H和32H兩個單元中。分析:十六進制數0~9的ASCII碼為30H~39H,即十六進制數(0~9)=AsCII碼-30H;十六進制數A~F的ASCⅡ碼為41H~46H,即十六進制數(A~F)=AsCII-37H。根據此對應 關系,編寫如下程序.
上一篇:子程序調用有以下幾個優點
上一篇:高級語言是采用模塊化的程序設計