单片机 用汇编语言,如何把ROM中0200H~0207H单元的数传送至片外RAM0000H~0007H单元中?

[复制链接]
查看11 | 回复4 | 2011-3-17 13:58:46 | 显示全部楼层 |阅读模式
一楼扯淡,对ROM的读取居然不用MOVC而用MOV。我来给个注释,楼主可以无视我。MOV R0,#0 ;R0作为片外存储器的地址,起始为0MOV DPTR,#200H ;所要读取的ROM的地址,用DPTR取表LOOP: MOV A,R0 ;将R0作为步进的地址量,因为两个地址一个是从0开始,一个是从200H开始,所以DPTR里的200H不变,而更改A和R0,就可以套用下面的两句来循环了MOVC A,@A+DPTR ;将ROM中的值取至累加器A中,常见的固定格式MOVX @R0,A ;将读取的值依次送到0000~0007H处INC R0;R0从0000~0007H递增CJNE R0,#08,LOOP;判断是否达到000
回复

使用道具 举报

千问 | 2011-3-17 13:58:46 | 显示全部楼层
对楼上的程序,稍做补充,以保证目标地址是片外RAM0000H~0007H单元。
CLR A
MOVR0, A
MOVDPTR, #200H
;查表起始地址LOOP:
MOV A,R0
MOVCA,@A+D
回复

使用道具 举报

千问 | 2011-3-17 13:58:46 | 显示全部楼层
CLR A MOV P2,A MOV R0,#0 MOV DPTR,#200H ;查表起始地址LOOP: MOV A,R0 MOVC A,@A+DPTR ; MOVX @R0,A INC R0 CJNE R0,#08,LOOPLP_END:
回复

使用道具 举报

千问 | 2011-3-17 13:58:46 | 显示全部楼层
MOV R7,08H
MOV DPTR,0200H
MOV R0,00HLOOP:MOV R0,@DPTR
INC R0
INC DPTR
DJNZ R7,LOOP主程序就这些。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行