比较两个数是否相等并显示

比较两个数是否相等并显示

ID:44789307

大小:428.50 KB

页数:19页

时间:2019-10-29

比较两个数是否相等并显示_第1页
比较两个数是否相等并显示_第2页
比较两个数是否相等并显示_第3页
比较两个数是否相等并显示_第4页
比较两个数是否相等并显示_第5页
资源描述:

《比较两个数是否相等并显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第6章运用控制转移类指令本章内容项目引导——比较两个数是否相等并显示项目实施相关知识项目分析要求:设内部RAM的30H单元和31H单元各自存放着一个无符号数,比较它们是否相等,如果相等,则P1.0连接的灯点亮,否则P1.1连接的灯点亮。分析:核心是比较两个数是否相等,进而执行不同的功能结论:前面的程序是逐条顺序执行的,但在实际使用中,很多程序需要判断分支,即强行改变PC的内容,使程序转移到指定的入口地址处继续执行,这些分支都是靠各种控制转移指令来实现的。——无条件转移指令(3条)1)长转移指令:LJMPAAAAH;AAAAHPCPC=0000HPC=AAAAH000

2、0H0001H······AAA9HAAAAH0002H假设执行该指令前,PC的值为0000H。注意:该指令可以转移到64KB程序存储器中的任意位置。知识1:无条件转移和有条件转移指令PC高5位(保持不变)PC低11位A10A9A800001A7A6A5A4A3A2A1A0操作码(第一字节)操作数(第二字节)11位转移地址的形成示意图程序计数器PC2)绝对转移指令AJMPaddr11;PC+2PC,addr11PC.10~PC.0PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC

3、3)相对转移指令例:SJMP03H03H03H就是当前PC值与目的PC值相对差PC——条件转移指令1)累加器A判0指令(2条)助记符格式机器码(B)相应操作机器周期JZrel0110000若A=0,则PCPC+rel,否则程序顺序执行2JNZrel01110000若A≠0,则PCPC+rel,否则程序顺序执行22)判cy标志指令(2条)助记符格式机器码(B)相应操作机器周期JCrel01000000若CY=0,则PCPC+rel,否则顺序执行2JNCrel01010000若CY≠0,则PCPC+rel,否则顺序执行23)判位转移指令(3条)4)条件转移指令的跳

4、转范围助记符格式机器码(B)相应操作机器周期JBbit,rel00100000bitrel若bit=1,则PCPC+rel,否则顺序执行2JNBbit,rel00110000bitrel若bit=0,则PCPC+rel,否则顺序执行2JBCbit,rel00010000bitrel若bit=1,则PCPC+rel,bit0,否则顺序执行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,则PCPC+rel,否则顺序执行;若A<#data,则CY=1,否则CY=02CJNERn,#data,rel10111rrrdatarel若Rn≠#data,则PCPC+rel,否则顺序执行;若Rn<#data,则CY=1,否则CY=02CJNE@Ri,#data,rel1011011idatarel若(Ri)≠#data,则PCPC+rel,否则顺序执行;若(Ri)<#data,则CY=1,否则CY=02CJNEA,direct,rel10110101directrel若A≠(direct),则PC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。