正在加载图片...
ACALL DISPOSE;调用判断、处理子程序 SAVE: MOVOR1,A;保存数据 INCR1;修改地址指针,指向下一个地址 DNR0, START;数据未处理完,继续处理 SJMP S ;暂停 ORG 0200H DISPOSE: JB ACC7,NEG;若为负数,转NEG IZ ZERO ;若为零,转ZER0 ADD A, #02H 若为正数,求X+2 AJMP BACK 转到SAⅤE,保存数据 ZER0:MOVA,#64H;数据为零,Y=100 AJMP BACK ;转到SAVE,保存数据 NEG: DEC A CPL A ;求|X BACK: RET 42.6位操作程序 【例49】编写一程序,实现图4-12中的逻辑运算电路。其中P31、P1 P10分别是单片机端口线上的信息,RS、RS1是SW寄存器中的两个 标志位,30H、31H是两个位地址,运算结果由P1输出。 程序如下: ORG 0000F MOV ANL C, Pl. CPL MOV 20H,C;暂存数据 MOV C,30H ORL C, 31H ANL C, RSI ANL 20H ANL C, RSO MOV P10,C;输出结果 SJMP SACALL DISPOSE ;调用判断、处理子程序 SAVE:MOV @R1,A ;保存数据 INC R1 ;修改地址指针,指向下一个地址 DJNZ R0,START ;数据未处理完,继续处理 SJMP $ ;暂停 ORG 0200H DISPOSE:JB ACC.7,NEG ;若为负数,转NEG JZ ZER0 ;若为零,转ZER0 ADD A,#02H ;若为正数,求X+2 AJMP BACK ;转到SAVE,保存数据 ZER0:MOV A,#64H ;数据为零,Y=100 AJMP BACK ;转到SAVE,保存数据 NEG:DEC A CPL A ;求∣X∣ BACK:RET 4.2.6 位操作程序 【例4.9】 编写一程序,实现图4-12中的逻辑运算电路。其中P3.1、P1.1、 P1.0分别是单片机端口线上的信息,RS0、RS1是PSW寄存器中的两个 标志位,30H、31H是两个位地址,运算结果由P1.0输出。 程序如下: ORG 0000H MOV C,P3.1 ANL C,P1.1 CPL C MOV 20H,C ;暂存数据 MOV C,30H ORL C,/31H ANL C,RS1 ANL C,20H ANL C,RS0 MOV P1.0,C ;输出结果 SJMP $
<<向上翻页
©2008-现在 cucdc.com 高等教育资讯网 版权所有