Social Icons

twitterfacebookgoogle plusrss feedemail

12/25/2009

微處理機(8051)上機考古題 data move-1-8

8.Shuffle the data from external data RAM 1000H-13FFH and 1400H to 17FFH to 2000H-27FFH. That is, move (1000)H to (2000H), (1400H) to (2001H), (1001H) to (2002H), (1401H) to (2003H), etc.(09.12.25.AM11.45最後更新程式碼)
本文章題目版權歸屬於朱老師,另外本文所提供答案並不保證其正確性



程式碼如下:
source_1 equ 1000H
source_2 equ 1400H
dest equ 2000H

source_1_dph equ 30H
source_1_dpl equ 31H 
source_2_dph equ 32H
source_2_dpl equ 33H
dest_dph equ 34H
dest_dpl equ 35H

mov source_1_dph,#10H
mov source_1_dpl,#00H 
mov source_2_dph,#14H
mov source_2_dpl,#00H
mov dest_dph,#20H
mov dest_dpl,#00H

L1:
mov dph,source_1_dph
mov dpl,source_1_dpl
movx a,@dptr
inc dptr
mov source_1_dph,dph
mov source_1_dpl,dpl
mov r0,#2
jmp l2

L3:
mov dph,source_2_dph
mov dpl,source_2_dpl
movx a,@dptr
inc dptr
mov source_2_dph,dph
mov source_2_dpl,dpl

L2:
mov dph,dest_dph
mov dpl,dest_dpl
movx @dptr,a
inc dptr
mov dest_dph,dph
mov dest_dpl,dpl
djnz r0 ,L3
mov r1,dph
cjne r1,#28,L1
nop
end

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

為了讓以後看得懂這段程式碼,所以我使用equ的方式來寫,這樣雖然現在寫起來很多,但是以後要看還蠻方便的。


另外這段程式碼跟老師上課寫得不太一樣,因為我把它簡化了一點,不過結果跑出來是一樣的。

如果發現文章有錯誤,歡迎留言告知~謝謝指教!

沒有留言:

張貼留言

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

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