二、分支程序设计 1、单分支程序 单分支结构程序使用转移指令实现,即根据条件 对程序的执行进行判断,满足条件是转移执行,否则 顺序执行 在MCS-51指令系统中条件转移指令有: (1)判A转移指令JZ、JNZ; (2)判位转移指令JB、JNB、JBC、JC、JNC; (3)比较转移指令CJNE; (4)减1不为0转移指令DJNZ;
二、分支程序设计 1、单分支程序 单分支结构程序使用转移指令实现,即根据条件 对程序的执行进行判断,满足条件是转移执行,否则 顺序执行。 在MCS-51指令系统中条件转移指令有: (1)判A转移指令JZ、JNZ; (2)判位转移指令JB、JNB、JBC、JC、JNC; (3)比较转移指令CJNE; (4)减1不为0转移指令DJNZ;
例4-3假定在外部RAM中有ST1、ST2和ST3共3个连续 单元,其中ST、ST2单元中分别存放着两个8位无符号 数,要求找出其中的大数并存入ST3单元。 分析:两个无符号数的大小比较可利用两数相减 是否有借位来判断,流程图和程序如下所示:
例4-3 假定在外部RAM中有ST1、ST2和ST3共3个连续 单元,其中ST1、ST2单元中分别存放着两个8位无符号 数,要求找出其中的大数并存入ST3单元。 分析:两个无符号数的大小比较可利用两数相减 是否有借位来判断,流程图和程序如下所示:
START: CLR C 开始 MOV DPTR, #STI DPTR←#T A,@ DPTR A←(PTR MOV R7,A R7←(A INC DPTR mPTR←①PTR+ A, @DPTR A+((DPTR) SUBB A R7 ←(A)-(R7)=cY JC BIGI A aDPTR SJMP BIG2 A)-(R7A←(FTR BIGI: XCH A R7 BIG2: INC DPTR DPTR←PTR adPtR,A 〔aPTR)←A SJMP 结束
START:CLRC MOV DPTR,#ST1 MOVX A, @DPTR MOV R7, A INC DPTR MOVX A, @DPTR SUBB A, R7 JC BIG1 MOVX A, @DPTR SJMP BIG2 BIG1:XCH A, R7 BIG2:INC DPTR MOVX @DPTR,A SJMP $
2、多分支程序 (1)嵌套分支结构 例4-4设变量X存放于30H单元,函数值Y存放31H单元 试按照式: X>0 0X=0的要求给Y赋值 1X<0 分析:X是有符号数,判断符号位是0还是1可利用JB 或JNB指令。 判断X是否等于0则直接可以使用累加器A的判0 指令。 流程、程序如下页
2、多分支程序 (1)嵌套分支结构 例4-4 设变量X存放于30H单元,函数值Y存放31H单元。 试按照式: 1 X>0 Y= 0 X=0 的要求给Y赋值 -1 X<0 分析:X是有符号数,判断符号位是0还是1可利用JB 或JNB指令。 判断X是否等于0则直接可以使用累加器A的判0 指令。 流程、程序如下页: