循环结构的程序举例 例3-3有一组数据,存放在3OH为首地址的内存单元,数据长度为32 个。试将每一个数分别取出加1,再存人以4OH为首地址的内存单元 ORG 0000H 0000020100 L JMP 0100H 0100 ORG 0100H 0100784F MOv RO. #4FH 0102795F MOV R1, #5FH 01047F20 MOV R7,#20H 0106E6 LOOP: Mov A @RO 010704 INC A 0108F7 MOV 1,A 010918 DEC RO 010A19 DEC RI 010B dFF9 DJNZ R7, LOOP 010D80FE SJMP S END
循环结构的程序举例 例3-3 有一组数据,存放在30H为首地址的内存单元,数据长度为32 个。试将每一个数分别取出加1,再存人以40H为首地址的内存单元。 ORG 0000H 0000 020100 LJMP 0100H 0100 ORG 0100H 0100 784F MOV R0,#4FH 0102 795F MOV R1,#5FH 0104 7F20 MOV R7,#20H 0106 E6 LOOP: MOV A,@R0 0107 04 INC A 0108 F7 MOV @R1,A 0109 18 DEC R0 010A 19 DEC R1 010B DFF9 DJNZ R7,LOOP 010D 80FE SJMP $ END
循环结构程序举例 例3-4编制一延时子程序,使执行这一段程序延时2s。 01007D64 MOV R5,#64H 01027E64LoOP1: MOV R6,#64H 0104,7F62L00P2 MOV R7,#62H 0106 DFFE LOOP3 DJNZ R7, LOOP3 0108 DEFA DJNZ R6, LOOP2 010A DDF6 DJNZ R5, LOOPl 010C22 RET 以上程序执行的时间近似为2秒,如要准确计算还需 考虑执行对R5、R6、R7的赋值指令所需的时间、RET返 回指令的时间等等。 返回本章首页
循环结构程序举例 例3-4 编制一延时子程序,使执行这一段程序延时2s。 0100 7D64 MOV R5,#64H 0102 7E64 LOOP1: MOV R6,#64H 0104,7F62 LOOP2: MOV R7,#62H 0106 DFFE LOOP3: DJNZ R7,LOOP3 0108 DEFA DJNZ R6,LOOP2 010A DDF6 DJNZ R5,LOOPl 010C 22 RET 以上程序执行的时间近似为2秒,如要准确计算还需 考虑执行对R5、R6、R7的赋值指令所需的时间、RET返 回指令的时间等等。 返回本章首页