实现片外数据存储器数据传送(2000H)-->(2100H)MOVDPTR,#2000HMOVXA,@DPTRMOVDPTR,#2100HMOVX@DPTR,A2
查表法求Y=X2
设X(0≤X≤15)在片内RAM的20H单元中,要求查表求Y,存入片内RAM21H单元
1)ORG1000HSQU:MOVDPTR,#3000H;确定表首地址(基地址)MOVA,20H;取X(变量:偏移量)MOVCA,@A+DPTR;查表求Y=X2MOV21H,A;保存Y(结果)RET;子程序结束…;其它程序段ORG3000H;常数表格首地址TAB:DB00,01,04,09,…,225;平方表END2)ORG1000H;程序起始地址SQU:MOVA,20H;取XADDA,#3;修正偏移量MOVCA,@A+PC;查表求Y=X2(PC=1005H)MOV21H,A;存结果RET;子程序结束TAB:DB00,01,04…;平方表DB09,…,2253
分析下面程序MOVR0,#0C8H;(R0)=200CLRP1
7为低电平LOOP:CPLP1
7变反(1µs)NOP;(1µs)NOP;(1µs)DJNZR0,LOOP;(R0)≠0则转(2µs)4
设计一个延时10ms的延时子程序,已知单片机使用的晶振为6MHZ
机器周期数ORG0020H1MOVR0,#0AH;外循环10次1DL2:MOVR1,#MT;内循环MT次1DL1:NOP1NOP;空操作指令2DJNZR1,DL12DJNZR0,DL2RET内循环DL1到指令DJNZR1,DL1的计算:(1+1+2)ⅹ2μsⅹMT=1000μsMT=125=7DH总的延时时间:{1+[1+(1+1+2)ⅹ125+2]ⅹ10}ⅹ2μs=10
062ms5
试计算延时程序的执行时间DELAY:MOVR6,#64H(=100)1I1:MO