Social Icons

twitterfacebookgoogle plusrss feedemail

12/03/2009

微處理機-Data Movement Practices-(1)

1. Move data from on-chip SRAM 40H-5FH to on-chip SRAM 48H-67H.
程式碼如下

   source_add equ 5fH
   dest_add equ 67H
   number_of_bytes equ 20H

    mov r0,#source_add
    mov r1,#dest_add
    mov r2,#number_of_bytes
L1: mov A,@r0
    mov @r1,A
    dec r0
    dec r1
    djnz r2, L1

    end
如果要複製上方程式碼,請點擊程式碼上方的    圖示會跳出一個視窗,複製即可

為了方便說明,首先先存放值在記憶體內











因為這 40H-5FH48H-67H兩段之間有交集的部分
所以我們不能把40H直接先移到48H 因為這麼一來48H原本的值就會被覆蓋
為了避免這種情形
所以我們可以從5FH的地方開始著手



 當程式碼執行到 mov @r1,A 時(還未執行此行)
5F所存放的值會先存到A暫存器中(如左圖)



























當程式執行完 mov @r1,A
會發現原本67的值會變成5F原本所存放得值



接著程式在讀取下面幾行之後
會跳回L1重新再來一次
不過這時候
則是66H原本的值會變成5EH 原本所存放得值




程式會一直執行
到後來結果會變成這樣




如果發現文章中有錯誤,歡迎留言告知

沒有留言:

張貼留言

俗話說
凡走過必留下痕跡,凡住過必留下鄰居
凡爬過必留下樓梯,凡來過必留下IP
看過文章之後歡迎留下您寶貴的意見喔!

 
 
无觅相关文章插件,迅速提升网站流量