- 1、本文档共133页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
3.6.7过程定义与调用1.过程的定义编写完成某一功能的子程序块,用伪指令.PROC和.ENDP作为定义的标识符。定义的一般格式为:过程名: .PROC 程序指令列表 RETF? ?.ENDP由此格式可以看出,过程的定义主要由过程名和两个伪指令之间的过程体组成。过程名的命名规则同标号。例如:qw .PROC //定义一个过程qwlabel1R1+=0x20R2=R1JMPlabel1RETF.ENDP //过程定义结束2.过程的调用在程序中调用一个过程时,程序控制就从调用程序中转移到被调用的过程,且从其起始位置开始执行该过程的指令,在执行完过程体中各条指令并执行到RETF指令时,程序控制就返回调用过程时原来断点位置,继续执行下面的指令过程。调用的一般格式为: CALL过程名例如:sub1.PROC //定义一个过程sub1label1R1+=0x0020;R2=R1;JMPlabel1RETF.ENDP //过程定义结束CALLsub1 //调用过程sub1…思考题1.?SPCE061A单片机具有哪几种寻址方式?2.试编程序将0x0020,0x0021单元的数据传送至0x1020,0x1021单元。3.请编程序将0x0100~0x0200单元的数据传送至0x0400起始的单元中,并将原存储单元清零。 4.指出下列指令的寻址方式: R1=0x0005; R1=06; R1=[0x0006]; R2=R1; R2=[R3]; R2=[BP+05]; R1+=R1。 5.请编程计算1~10的累加值。表3.4无条件转移指令1.无符号数的跳转指令判C的转移指令JB和JNB:JBloop1 //小于,转loop1JNBloop1 //不小于,转loop1这两条指令都是通过判断标志位C决定程序的走向的,它们的执行过程如图3.3所示。图3.3指令JB和JNB的执行过程例1用JB指令。R1=0x0001 //初值R2=0x0006CMPR1,R2 //比较R1和R2的大小 JBloop1 //判C=0(R1R2)吗?是,跳到 loop1;否,执行下一条指令 R1=0x00FFloop1: R1=0x0000 R2=0x0000…例2用JNB指令。 R1=0x0010 //初值 R2=0x0006? CMPR1,R2 //比较R1和R2的大小 JNBloop1 //判C=1(R1R2)吗?是,跳到loop1 R1=0x00FFloop1: R1=0x0000 R2=0x0000…2.有符号数的跳转指令判S跳转指令JGE(大于等于)和JNGE(小于):JGEloop1JNGEloop1JGE表示大于等于,通过对标志位S的判断来决定程序的走向。S=0,产生跳转;S=1,继续执行下一条指令。JNGE表示小于。S=1,产生跳转;S=0,继续执行下一指令。这两条指令的执行过程如图3.4所示。图3.4指令JGE和JNGE的执行过程例3用JGE指令。R1=2 //赋初值,分别为有符号数R2=-3CMPR1,R2 //比较R1和R2的大小JGEloop1 //R1大于等于R2时跳转到loop1R2=0x00FFloop1: R1=0x0000…例4用JNGE指令。R1=-2 //赋初值,分别为有符号数R2=3CMPR1,R2 //比较R1和R2的大小JNGEloop1 //R1小于R2(S=1)时跳转到loop1R2=0x00FFloop1: R1=0x0000…3.其它跳转指令判C跳转指令JCC和JCS:JCCloop1JCSloop1JCC是以C=0作为判断的标准,决定程序的跳转;JCS是以C=1作为判断的标准,决定程序的跳转。这两
文档评论(0)