前面开始3行,就把 40H,50H,3FH,移到 R0,R1,R2 去了! R0,R1 作为指针使用,R2作为计数器使用.
MOV A,@R0 CLR C XRL A,@R1 这3行是把 R0 指向的存放单元内容, 通过 XRL 异或指令,与 R1 指向单元进行运算,.
异或运算遇到2个字节的内容各位相同,就会让 A = 0! 标志位 Z =1 !
JNZ 指令就是判断 Z 标志位的, 如果Z=0,说明两数不相等, 此时, R0,R1 分别加1,各指向下一个数据,继续比较.------而R2是最大比较次数,到达次数后,无论结果如何,都就会退出程序.
如果JNZ 指令判断 Z 标志位的结果=0,说明两数相等, 程序走向 LOOP2 ,结束比较.
至于 C 标志是程序退出后,方便比较而设置的,另外,如果需要, R2 也记录了比较到多少次的数字,可以通过它查看判断到.
汇编程序其实很仔细,每一步都一清二楚,多练习熟练后就会容易看明白. ----- 仅供参考! |