C为进借位标志位,就是CY
CLR C 将进位标志位CY清0
CLR C ;进位位清零 SUBB A,#0 带进位减法 这两行应该是分开写的。是两条汇编语句; CLR C 清楚进位标志 SUBB A,#0 将累加器A中的数据与0
宏指令 CLRB,完成用空格符将一字符区中的字符取代的工作。
先清除CY位,再减128,
如果A的值大于128,CY=1,
如果A的值小于128,CY=0,
再下一句就是根据CY位,进行跳转了。
KEXAM:
SETB P1.1 //P1.1置1
CLR P1.2 //P1.2清0
CLR P1.3 //P1.3清0
MOV A,P1 //读取P1值送A
ANL A,#02H ;0000 0010 //保留D1其余位清0
RET
这两行应该是分开写的。
是两条汇编语句;
CLR C 清楚进位标志
SUBB A,#0 将累加器A中的数据与0进行比较
是一个在显示器上循环显示 weierdadz 字符串的程序
首先调用LCD_Clear(); 清除显示器上的内容
再调用LCD_Write_String(2,0,"Welcome to"); 显示Welcome to
最后循环显示 weierdadz 字符串
0000 7812 MOV R0, #12H
0002 7934 MOV R1, #34H
0004 E4 CLR A
0005 FA MOV R2, A
0006 7F04 MOV R7, #04H
0008 C3 CLR C
0009 E8 MOV A, R0
000A 33 RLC A
000B F8 MOV R0, A
000C E9 MOV A, R1
000D 33 RLC A
000E F9 MOV R1, A
000F EA MOV A, R2
0010 33 RLC A
0011 FA MOV R2, A
0012 DFF4 DJNZ R7, 0008H
0014 80FE SJMP $
程序功能:将R1R0中的16位数,左移4位,右边填入4个0,R1的高4位,移入R2的低4位。
------------------
程序中,参与向左移位的是R2R1R0,共有24位数字。
但是,在你的程序中,事先已经将R2清零,所以实际被移动的只有R1R0中的16位数字。
在你的程序前面,我加上了两行,使得R1 R0=34 12H;
程序执行后,R2 R1 R0=03 41 20H。
程序的功能,即如前所述。
新建mfc,在里面设计窗体,然后设计函数,触发事件》。。。
这些都是基本的指令的运用。 书上都有解释说明的。
MOV 传送数据
JNB 条件跳转
CJNE 比较条件跳转
CLR 清除位
SJMP 跳转
等等