资源描述:
《比较两个数是否相等并显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第6章运用控制转移类指令本章内容项目引导——比较两个数是否相等并显示项目实施相关知识项目分析要求:设内部RAM的30H单元和31H单元各自存放着一个无符号数,比较它们是否相等,如果相等,则P1.0连接的灯点亮,否则P1.1连接的灯点亮。分析:核心是比较两个数是否相等,进而执行不同的功能结论:前面的程序是逐条顺序执行的,但在实际使用中,很多程序需要判断分支,即强行改变PC的内容,使程序转移到指定的入口地址处继续执行,这些分支都是靠各种控制转移指令来实现的。——无条件转移指令(3条)1)长转移指令:LJMPAAAAH;AAAAHPCPC=0000HPC=AAAAH000
2、0H0001H······AAA9HAAAAH0002H假设执行该指令前,PC的值为0000H。注意:该指令可以转移到64KB程序存储器中的任意位置。知识1:无条件转移和有条件转移指令PC高5位(保持不变)PC低11位A10A9A800001A7A6A5A4A3A2A1A0操作码(第一字节)操作数(第二字节)11位转移地址的形成示意图程序计数器PC2)绝对转移指令AJMPaddr11;PC+2PC,addr11PC.10~PC.0PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC
3、3)相对转移指令例:SJMP03H03H03H就是当前PC值与目的PC值相对差PC——条件转移指令1)累加器A判0指令(2条)助记符格式机器码(B)相应操作机器周期JZrel0110000若A=0,则PCPC+rel,否则程序顺序执行2JNZrel01110000若A≠0,则PCPC+rel,否则程序顺序执行22)判cy标志指令(2条)助记符格式机器码(B)相应操作机器周期JCrel01000000若CY=0,则PCPC+rel,否则顺序执行2JNCrel01010000若CY≠0,则PCPC+rel,否则顺序执行23)判位转移指令(3条)4)条件转移指令的跳
4、转范围助记符格式机器码(B)相应操作机器周期JBbit,rel00100000bitrel若bit=1,则PCPC+rel,否则顺序执行2JNBbit,rel00110000bitrel若bit=0,则PCPC+rel,否则顺序执行2JBCbit,rel00010000bitrel若bit=1,则PCPC+rel,bit0,否则顺序执行2条件转移指令的转移范围限制在256字节以内,并且以转移指令的下一条指令为中心,向前可到PC+127,向后可到PC-128条件转移指令应用例:判断A中的数据,若A=0,则CY=0,否则CY=1。ORG0000HJZL1SETBC
5、YSJMPL2L1:CLRCYL2:END思考:怎样改成使用JNZ指令?小练习1例:判断A中的数据,若A=0,则P1口连接的8个二极管全部点亮,否则全灭。(以实训电路为例)ORG0000HJZL1MOVP1,#0FFHSJMPL2L1:MOVP1,#00HL2:SJMP$END小练习2例:判断A中的数据,若A>100,则P1口连接的8个二极管全部点亮,否则全灭。(以实训电路为例)ORG0000HCLRCYSUBBA,#100JCL1MOVP1,#00HSJMPL2L1:MOVP1,#0FFHL2:SJMP$END提示:可以先做减法,然后使用JC指令判断是否有借位CY并
6、实现跳转!项目实施要求:若30H单元和31H单元中的数相等,则P1.0连接的灯点亮,否则P1.1连接的灯点亮。电路:与第3章的项目相同,P1口通过发相器连接8个发光二极管,参见图3.10程序思路:如果两个数相等,那么相减之后差必为0,否则差不为0,因此采用累加器是否为0的条件来判断程序:ORG0000HSTART:MOVA,30HCLRCSUBBA,31HJZNEXTMOVP1,#0FDHSJMPEXITNEXT:MOVP1,#0FEHEXIT:SJMP$END知识2:比较转移指令和循环转移指令助记符格式机器码(B)相应操作机器周期CJNEA,#data,rel101
7、10100datarel若A≠#data,则PCPC+rel,否则顺序执行;若A<#data,则CY=1,否则CY=02CJNERn,#data,rel10111rrrdatarel若Rn≠#data,则PCPC+rel,否则顺序执行;若Rn<#data,则CY=1,否则CY=02CJNE@Ri,#data,rel1011011idatarel若(Ri)≠#data,则PCPC+rel,否则顺序执行;若(Ri)<#data,则CY=1,否则CY=02CJNEA,direct,rel10110101directrel若A≠(direct),则PC