7 循环指_举例.ppt
《7 循环指_举例.ppt》由会员分享,可在线阅读,更多相关《7 循环指_举例.ppt(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、控制转移指令控制转移指令循环转移指令举例循环转移指令举例编编程程:把把外外部部RAM中中的的2000H2050H单单元元内内容容送送至至外外部部RAM的的30H80H单元单元MOVMOVDPTR,#2000HDPTR,#2000HMOVR0,#30HMOVR0,#30HMOVR2,#51HMOVR2,#51HMOVRAM:MOVRAM:MOVXMOVX A,DPTRA,DPTRMOVMOVP2,#00HP2,#00HMOVXMOVX R0,AR0,AINCINCR0R0INCINCDPTRDPTRDJNZR2,MOVRAMDJNZR2,MOVRAM控制转移指令控制转移指令块操作块操作块操作步骤
2、:块操作步骤:1.确定块的寻址寄存器确定块的寻址寄存器2.确定循环变量和循环次数确定循环变量和循环次数3.确定块的访问方式(确定块的访问方式(MOV、MOVX、MOVC)4.对寻址寄存器和循环变量初始化对寻址寄存器和循环变量初始化5.编写循环框架、递增(递减)寻址寄存器值编写循环框架、递增(递减)寻址寄存器值6.确定循环体内的操作确定循环体内的操作控制转移指令控制转移指令块操作步骤块操作步骤1.确定块的寻址寄存器确定块的寻址寄存器片内片内RAMRAM:R0R0R0R0、R1R1R1R1片外片外RAMRAM:DPTRDPTRDPTRDPTRR0R0R0R0、R1(R1(R1(R1(与与与与P2P
3、2P2P2配合使用配合使用配合使用配合使用)ROMROM:DPTRDPTRDPTRDPTR注:先确定访问片内先确定访问片内先确定访问片内先确定访问片内RAMRAMRAMRAM的寻址寄存器,后确定访问外的寻址寄存器,后确定访问外的寻址寄存器,后确定访问外的寻址寄存器,后确定访问外部部部部RAMRAMRAMRAM和和和和ROMROMROMROM的寻址寄存器的寻址寄存器的寻址寄存器的寻址寄存器控制转移指令控制转移指令块操作步骤块操作步骤2.确定循环变量和循环次数确定循环变量和循环次数循环变量循环变量:R2R2循环次数循环次数:尾地址尾地址-首地址首地址+1+1控制转移指令控制转移指令块操作步骤块操作
4、步骤3.确定块的访问方式(确定块的访问方式(MOV、MOVX、MOVC)内部内部RAMRAM:MOVMOV外部外部RAMRAM:MOVXMOVXROM:ROM:MOVCMOVC注:值送入注:值送入A A累加器中累加器中控制转移指令控制转移指令块操作步骤块操作步骤4.对寻址寄存器和循环变量初始化对寻址寄存器和循环变量初始化寻址寄存器寻址寄存器 =开始地址开始地址循环变量循环变量 =循环次数循环次数控制转移指令控制转移指令块操作步骤块操作步骤5.编写循环框架、递增(递减)寻址寄存器值编写循环框架、递增(递减)寻址寄存器值LOOP:LOOP:递增寻址寄存器值递增寻址寄存器值DJNZ DJNZ R2,
5、LOOPR2,LOOP控制转移指令控制转移指令块操作举例块操作举例举例:把内部举例:把内部RAM的的20H0FFH清空(置成清空(置成0)1.片内RAM块,寻址寄存器为R0R0R0R02.循环变量为R2R2R2R2,循环次数=0FFH-20H+1=0E0H0E0H0E0H0E0H3.片内RAM块,用MOVMOVMOVMOV指令,用A A A A累加器读写值4.赋初值 MOV MOV MOV MOV R0,#20HR0,#20HR0,#20HR0,#20H MOVMOVMOVMOVR2,#0E0HR2,#0E0HR2,#0E0HR2,#0E0H5.循环体框架LOOP:LOOP:LOOP:LOOP
6、:INCINCINCINCR0R0R0R0DJNZDJNZDJNZDJNZR2,LOOPR2,LOOPR2,LOOPR2,LOOP6.循环操作CLRCLRCLRCLRA A A AMOVMOVMOVMOVR0,AR0,AR0,AR0,AMOV MOV MOV MOV R0,#20HR0,#20HR0,#20HR0,#20H MOVMOVMOVMOVR2,#0E0HR2,#0E0HR2,#0E0HR2,#0E0HLOOP:LOOP:LOOP:LOOP:CLRCLRCLRCLRA A A AMOVMOVMOVMOVR0,AR0,AR0,AR0,A INCINCINCINCR0R0R0R0DJNZD
7、JNZDJNZDJNZR2,LOOPR2,LOOPR2,LOOPR2,LOOP控制转移指令控制转移指令块操作举例块操作举例编编程程:把把内内部部RAM的的20H开开始始的的40个个单单元元送送到到外外部部RAM的的30H开始的单元开始的单元1.内部RAM用R0R0R0R0,外部RAM可用R0、R1或DPTR,R0已用,故选用R1R1R1R1访问外部RAM2.循环变量R2R2R2R2,循环次数=404040403.读内部RAM:MOVMOVMOVMOV A,R0 A,R0 A,R0 A,R0 写外部RAM:MOVX R1,AMOVX R1,AMOVX R1,AMOVX R1,A4.初值:R0=2
8、0H20H20H20H,R1=30H30H30H30H,R2=404040405.循环体框架LOOP:LOOP:LOOP:LOOP:INCINCINCINCR0R0R0R0INCINCINCINCR1R1R1R1DJNZDJNZDJNZDJNZR2,LOOPR2,LOOPR2,LOOPR2,LOOPMOVMOVR0,#20HR0,#20HMOVMOVR1,#30HR1,#30HMOVMOVP2,#00HP2,#00HMOVMOVR2,#40R2,#40LOOP:LOOP:MOVMOVA,R0A,R0MOVXMOVXR1,AR1,AINCINCR0R0INCINCR1R1DJNZDJNZR2,L
9、OOPR2,LOOP控制转移指令控制转移指令块操作举例块操作举例编编程程:把把内内部部RAM的的30H7FH单单元元分分别别和和外外部部RAM的的50H9FH单元相加送入外部单元相加送入外部RAM的的1030H107FH单元单元MOVMOVR0,#30HR0,#30HMOVMOVR1,#50HR1,#50HMOVMOVDPTR,#1030HDPTR,#1030HMOVMOVR2,#50HR2,#50HLOOP:LOOP:INCINCR0R0INCINCR1R1INCINCDPTRDPTRDJNZDJNZR2,LOOPR2,LOOPMOVMOVMOVMOVA,R0A,R0A,R0A,R0MOVM
10、OVMOVMOVB,AB,AB,AB,AMOVMOVMOVMOVP2,#00HP2,#00HP2,#00HP2,#00HMOVXMOVXMOVXMOVXA,R1A,R1A,R1A,R1ADDADDADDADDA,BA,BA,BA,BMOVXMOVXMOVXMOVXDPTR,ADPTR,ADPTR,ADPTR,AMOVMOVMOVMOVP2,#00HP2,#00HP2,#00HP2,#00HMOVXMOVXMOVXMOVXA,R1A,R1A,R1A,R1ADDADDADDADDA,R0A,R0A,R0A,R0MOVXMOVXMOVXMOVXDPTR,ADPTR,ADPTR,ADPTR,A控制转移
11、指令控制转移指令块操作举例块操作举例编编程程:把把外外部部RAM中中从从8000H开开使使的的100个个字字节节送送至至外外部部RAM的的8100H开始的单元中去。开始的单元中去。MOVDPTR,#8000HMOVDPTR2,#8100HMOV R2,#100LOOP:MOVXA,DPTRMOVXDPTR2,AINCDPTRINCDPTR2DJNZ R2,LOOPMOVR7,#81H;MOVDPTR2,#8100HMOVR6,#00HMOVDPH,R7;MOVX DPTR2,AMOVDPL,R6MOVXDPTR,AINCDPTR2INCDPTRMOVDPH,R7;MOVX DPTR2,AMOV
12、DPL,R6MOVXDPTR,AINCDPTR;INCDPTR2MOVR7,DPHMOVR6,DPLINCDPTR PUSH DPH PUSH DPH PUSH DPL PUSH DPL POP DPL POP DPL POP DPH POP DPH控制转移指令控制转移指令块操作举例块操作举例MOVMOVDPTR,#8000HDPTR,#8000HMOVMOVR7,#81HR7,#81H MOVMOVR6,#00HR6,#00HMOVMOVR2,#100R2,#100LOOP:LOOP:MOVXMOVXA,DPTRA,DPTRPUSHPUSHDPHDPHPUSHPUSHDPLDPLMOVMOV
13、DPH,R7DPH,R7MOVMOVDPL,R6DPL,R6MOVXMOVXDPTR,ADPTR,AINCINCDPTRDPTRMOVMOVR7,DPHR7,DPHMOVMOVR6,DPLR6,DPLPOPPOPDPLDPLPOPPOPDPHDPHINCINCDPTRDPTRDJNZDJNZR2,LOOPR2,LOOP编编编编程程程程:把把把把外外外外部部部部RAMRAM中中中中从从从从8000H8000H开开开开使使使使的的的的100100个个个个字字字字节节节节送送送送至至至至外外外外部部部部RAMRAM的的的的8100H8100H开始的单元中去。开始的单元中去。开始的单元中去。开始的单元
14、中去。MOVMOVDPTR,#8000HDPTR,#8000HMOVMOVR0,#00HR0,#00HMOVMOVR2,#100R2,#100LOOP:LOOP:MOVXMOVXA,DPTRA,DPTRMOVMOVP2,#81HP2,#81H MOVXMOVXR0,AR0,AINCINCDPTRDPTRINCINCR0R0DJNZDJNZR2,LOOPR2,LOOP控制转移指令控制转移指令比较转移指令比较转移指令CJNE A,Direct,Label1;1)若)若A(direct)则跳至则跳至Label1处,否则顺序执行处,否则顺序执行2)若)若A(direct)时时Cy置置0CJNEA,#d
15、ata,Label2CJNERn,#data,Label3CJNERi,#data,Label4控制转移指令控制转移指令比较转移指令举例比较转移指令举例编编程程:把把30H单单元元减减去去31H单单元元的的绝绝对对值值送送入入32H单元中。单元中。MOVMOVA,30HA,30HCJNECJNE A,31H,NOTSAMEA,31H,NOTSAMESAME:SAME:MOVMOVA,#00HA,#00HSJMPSJMP STORESTORENOTSAME:NOTSAME:JCJCSMALLSMALLLARGE:LARGE:SUBBSUBB A,31HA,31HSJMPSJMP STORESTO
16、RESMALL:SMALL:CLRCLR C CXCHXCH A,31HA,31HSUBBSUBB A,31HA,31HSTORE:STORE:MOV32H,AMOV32H,A控制转移指令控制转移指令比较转移指令举例比较转移指令举例2编编程程:把把内内部部RAM的的20H50H清清空空(置置成成0),用用CJNE实现实现MOVMOVMOVMOVR0,#20HR0,#20HR0,#20HR0,#20HLOOP:LOOP:LOOP:LOOP:CLRCLRCLRCLRA A A AMOVMOVMOVMOVR0,AR0,AR0,AR0,AINCINCINCINCR0R0R0R0CJNECJNECJNE
17、CJNER0,R0,R0,R0,#50H#50H#50H#50H,LOOP,LOOP,LOOP,LOOPCJNECJNECJNECJNER0,R0,R0,R0,#51H#51H#51H#51H,LOOP,LOOP,LOOP,LOOP控制转移指令控制转移指令比较转移指令举例比较转移指令举例3编编程程:把把在在ROM中中300H3FFH单单元元中中最最大大的的数数找找出出来来存存放放在内部在内部RAM的的30H单元单元,遇零则停止。遇零则停止。MOVMOVDPTR,#300HDPTR,#300HMOVMOV R2,#0R2,#0MOVMOV B,#0B,#0LOOP:LOOP:CLRCLR A A
18、MOVCA,A+DPTRMOVCA,A+DPTRJZJZZEROZEROCJNECJNE A,B,NOTSAMEA,B,NOTSAMESJMPSJMP NEXTLOOPNEXTLOOPNOTSAME:NOTSAME:JCJCNEXTLOOPNEXTLOOP;AB;AB;ABNEXTLOOP:NEXTLOOP:INCINCDPTRDPTRDJNZDJNZ R2,LOOPR2,LOOPZERO:ZERO:MOVMOV 30H,B30H,B子程序调用指令ACALLLCALL子程序返回指令RETRETI空指令NOP子程序调用指令子程序调用指令LCALLORGORG0000H0000HSJMPSJMPM
19、AINMAINORGORG0030H0030HMAIN:MAIN:0030H0030HMOVMOVR0,#12HR0,#12H0032H0032HLCALLLCALL SIMPLESIMPLE0035H0035H MOVMOVR0,#34HR0,#34H0037H0037H SJMPSJMP$SIMPLE:SIMPLE:0039H0039H PUSHPUSH00H00H003BH003BHMOVMOVR0,#56HR0,#56H003DH003DH POPPOP00H00H003FH003FH RETRETENDEND.00H00H66H55H00H00H00H00H.07H08H09H0AH
20、0BH0CH0DH0EH00H00H.00H00H66H55H00H00H35H00H.07H08H09H0AH0BH0CH0DH0EH00H00H.00H00H66H55H12H00H35H00H.07H08H09H0AH0BH0CH0DH0EH00H00H.00H00H66H55H12H00H35H00H.07H08H09H0AH0BH0CH0DH0EH00H00H.00H00H66H55H12H00H35H00H.07H08H09H0AH0BH0CH0DH0EH00H00H为为了了便便于于编编程程和和对对汇汇编编语语言言程程序序进进行行汇汇编编,各各种种汇汇编编程程序序都都提提供供一一些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环指_举例 循环 举例
限制150内