org 0000h ;表示下壹條指令的地址是0000h
ljmp 0030h ;跳轉到30h處的指令
org 0030h
cword:mov a,#0c5h ;cword:人為定義的標號,mov a,#0c5h :把0c5h放入a寄存器裏
mov dptr,#0030h ;把30h放入dptr寄存器中
movx @dptr,a ;@表示存儲器地址,地址數為@後的寄存器中的內容(30h),即把a中的內容放如地址數為30h的存儲區
mov r0,#20h
mov @r0,a
mov r0,a
push acc ;把a寄存器壓入堆棧
anl a,#1fh ;a和1fh做“和”運算
movc a,@a+dptr
inc dptr ;dptr做+1處理
movx @dptr,a
mov b,a
pop acc ;彈出a
cword1:sjmp cword1 ;跳到sword1處,即做自循環
end ;結束
註:
mov:訪問片內RAM
movx:訪問片外RAM
movc:訪問ROM
RAM:數據存儲區
ROM: 程序存儲區
mov a,#0c5h 與 mov a,0c5h 是不同的,前者是將0c5h放入a;後者是將RAM地址數為0c5h處的數據放入a。
mov r0,a 與 mov @r0,a 是不同的,前者將a的內容放入r0寄存器;後者將a的內容放入數據存儲區某處,其地址為r0的內容。
這段指令把數據挪來挪去,貌似沒具體的意圖,結果不重要
希望對妳有幫助,不明白的我們可以再討論