资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
位操作指令1 1位传送指令位传送指令 (2 2条)条) MOV CMOV C,bitbit ;bit Cbit CMOV bitMOV bit,C C ;C bitC bit这组指令的功能是实现这组指令的功能是实现CYCY和其它位地址之间的和其它位地址之间的数据传递。数据传递。例例:MOV CMOV C,P1.0P1.0;将;将P1.0P1.0的状态送给的状态送给C C。 MOV P1.0MOV P1.0,C C ;将;将C C中的状态送到中的状态送到P1.0 P1.0 ;引脚上去。引脚上去。2 位变量修改指令(4条) 位清0指令 : CLR C : CLR C CLR bit CLR bit 位置1指令: SETB C SETB C SETB bit SETB bit 位取反指令位取反指令: CPL CCPL C CPL bit CPL bit3.位位 逻辑运算指令逻辑运算指令 (4条)条) ANL CANL C,bit bit ANL CANL C,/bit /bit ORL CORL C,bitbitORL CORL C,/bit/bit4. 4. 位控制转移指令(位控制转移指令(5 5条)条) (1)(1)判判CyCy转移指令转移指令 JC relJNC rel 第一条指令的功能是如果Cy=1Cy=1就转移,否则就顺序执行。 第二条指令则和第一条指令相反,即如果Cy=0Cy=0就转移,否则就顺序执行。 同样也可写成: JC JC 标号标号 JNC 标号标号(2)判位直接寻址位转移指令 JB bit,relJNB bit,rel JBC bit,rel第一条指令:如果指定的(bit)=1,则转移,否则顺序执行,第二条指令功能相反。第三条指令是如果指定的(bit)=1,则转移,并把该位清0,否则顺序执行。编写程序时,可以写成: JB bit,标号,标号 JNB bit,标号标号 JBC bit,标号标号例例:已知外部已知外部RAM以以2000H开始有一个数开始有一个数据缓冲区,该缓冲区中数据以回车符据缓冲区,该缓冲区中数据以回车符(ASCII码为码为0DH)为结束标志,试编一)为结束标志,试编一程序把正数送入片内程序把正数送入片内RAM以以30H为起始为起始地址的正数区,把负数送入片内地址的正数区,把负数送入片内RAM以以50H为起始地址的负数区。(假设输入数为起始地址的负数区。(假设输入数据不超过据不超过32个)个) ORG 0100H MOV DPTR, #2000H MOV R0,#30H MOV R1,#50HNEXT: MOVX A, DPTR CJNE A,#0DH,COMP SJMP DONECOMP:JB ACC.7 ,LOOP MOV R0,A INC R0 INC DPTR SJMP NEXTLOOP:MOV R1,A INC R1 INC DPTR SJMP NEXTDONE:END 伪指令伪指令v 1 起始地址伪指令起始地址伪指令 :确定程序或程序段的起确定程序或程序段的起始地址。始地址。 格式为:格式为: ORG ORG nn ;nnnn为为1616位地址值。位地址值。 如:如:ORG 0100HORG 0100Hv2 汇编结束伪指令汇编结束伪指令 :汇编语言程序结束伪汇编语言程序结束伪指令。指令。 格式为:格式为: END END ;一定放在程序末尾!;一定放在程序末尾!3 定义字节伪指令定义字节伪指令 格式为:格式为: 标号:标号:DB n1,n2,nn 此指令用于定义此指令用于定义8 8位数据的地址位数据的地址4 4 定义字伪指令定义字伪指令 格式为:格式为: 标号:标号:DWnn1,nn2,nnN 高八位先存入,低八位后存入高八位先存入,低八位后存入5 5 位地址赋值伪指令位地址赋值伪指令 格式:字符名称格式:字符名称 BITBIT 位地址位地址 6 数据地址赋值伪指令 格式为:格式为: 字符名字符名DATADATA nnnn 7 7 赋值伪指令赋值伪指令 格式为:格式为: 字符名字符名 EQU EQU 数值或汇编符号数值或汇编符号 EQU EQU 所定义的字符名必须先定义后使用所定义的字符名必须先定义后使用DATA DATA 所定义的字符名无此限制所定义的字符名无此限制8、 定义存储区伪指令定义存储区伪指令 用于定义在标号开始的内存单元预留一用于定义在标号开始的内存单元预留一定数量的内存单元,以备源程序执行过定数量的内存单元,以备源程序执行过程中使用。预留单元的数量由程中使用。预留单元的数量由X X决定决定 格式为:格式为: 标号:标号:DS X 例如:例如: TAB : DS 10H DB 16H 12 H程序设计程序设计汇编语言程序设计的一般步骤:汇编语言程序设计的一般步骤:(1) 确定计算方法确定计算方法(2) 确定步骤,并画出流程图确定步骤,并画出流程图(3) 按所确定的方案及流程图,编写汇按所确定的方案及流程图,编写汇编语言程序编语言程序1、顺序结构程序例例1:已知单片机采集到的三个温度值分:已知单片机采集到的三个温度值分别存放在内部别存放在内部RAM 30H、31H、32H单单元中,求出温度的平均值,存放在元中,求出温度的平均值,存放在33H单单元。(假定元。(假定3个数的和小于个数的和小于256)例例2:设有两个双字节:设有两个双字节BCD码,分别存放码,分别存放在在51H、50H和和56H、55H单元中,要求单元中,要求编写程序,求这两个编写程序,求这两个BCD码的和,将和码的和,将和存放在存放在61H、60H单元。(以上均为高位单元。(以上均为高位在高字节、低位在低字节)在高字节、低位在低字节)2、分支程序程序不再顺序执行,而是根据条件来选程序不再顺序执行,而是根据条件来选择程序流向的程序结构,称为分支程序择程序流向的程序结构,称为分支程序结构结构分支程序可根据要求无条件或条件地改变程序执分支程序可根据要求无条件或条件地改变程序执行流向。编写分支程序主要在于正确使用转移指行流向。编写分支程序主要在于正确使用转移指令。分支程序有:单分支结构、双分支结构、多令。分支程序有:单分支结构、双分支结构、多分支结构分支结构条件成立?下条指令程序段A单分支结构YN条件成立?程序段AYN程序段A双分支结构K=?程序段nn0程序段1多分支结构程序段01例例:设变量:设变量x x以补码形式存放在片内以补码形式存放在片内RAM 30HRAM 30H单元单元中,变量中,变量y y与与x x的关系是:的关系是:编程根据编程根据x x的值求的值求y y值并放回原来的存储单元。值并放回原来的存储单元。A=?y=x+50y=20Hy=x0取x 即(30h) A开始存y 即y 30h结束 ORG 1000HORG 1000HSTART:MOV A,30HSTART:MOV A,30H JZ NEXT ;x=0, JZ NEXT ;x=0,转移转移 ANL A,#80H ;ANL A,#80H ;保留符号位保留符号位 JZ ED ;x0,JZ ED ;x0,转移转移 MOV A,#05H ;x0,MOV A,#05H ;x0,不转移不转移 ADD A,30HADD A,30H MOV 30H,A MOV 30H,A SJMP ED SJMP ED NEXT:MOV 30H,#20H NEXT:MOV 30H,#20H ED:END ED:END
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号