- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1 汇编语言与指令系统 (1)标号,1~6个字符,第1个必为英文字母不必都加,但在转移时有用标号实际就是符号地址; (2)操作码:即指令助记符 (3)操作数:多个应分开,用“,” (4)注释: 用“;”隔开,汇编时忽略 指令符号 A:累加器,用于运算及存放数据。 B:专用寄存器,用于MUL和DIV指令中,存放第二操作数、乘积高位字节。 CY:进位标志位,或布尔处理器中的累加器。 bit:内部RAM或专用寄存器中的直接寻址位。 /bit:位地址单元内容取反。 DPTR:16位数据指针,也可作为16位地址寄存器。 2.按指令字节分类 单片机中的指令并不是固定的长度,对于不同的指令,指令的字节数不同。MCS-51单片机用机器语言表示的指令格式按字节划分,有单字节指令、双字节指令和三字节指令等三种。 (1)单字节指令中的8位二进制代码既包含操作码的信息,也包含操作数的信息。 例如指令: INC A; 04H MOV A,Rn ;1110 1rrr, XCH A,Rn;1001 1rrr, ADD A,@Ri ;0010 011i, DEC Rn;0001 1rrr, (2)双字节指令中的第一个字节表示操作码,第二个字节表示操作数,操作数既可能是立即数,也可能是地址。其指令格式为: 例如: ANL A,#90H; ADD A,#06H DEC 30H MOV R2,#0F0H 3.按指令执行时间分类 如果按照指令的机器周期数来分,MCS-51系列单片机常可以分为单周期指令57条,双周期指令52条和四周期指令2条等。 (1)单周期指令的执行指令时间为一个机器周期。例如: XCH A,@R1 ADD A,R1 CLR A MOV R3,#0F0H (2)双周期指令的执行指令时间为2个机器周期。例如: MOV Rn,30H DJNZ R3,LOOP JMP @a+dptr (3)四周期指令的执行指令时间为4个机器周期。例如: DIV AB MUL AB 3.2 寻址方式 举例 例3-1 将D5H位的内容送入CY,可用几种方式表达? 例3-2 判断下列指令各操作数的寻址方式 (1) MOV P1, #80H; (2) MOV @R7, #0F5H; (3) MOVC A,@A+DPTR; (4) SETB 3DH; (5) MOV 60H @R1; (6)DJNZ R2 LOOP; 例:P41页 3-3已知 内部 RAM中 30H单元的内容为50H. 分析程序执行后各单元 的内容 。 MOV 60H, #30H; MOV R0 , #60H; MOV A ,@R0; MOV R1,A; MOV 40H ,@R1; MOV 60H,30H; 3、数据交换指令(2条)在内部RAM的某一单元和累加器A交换数据,并A作为目标操作数。 (1) 整字节交换指令(3条) XCH A,Rn; (A)?(Rn) XCH A,direct; (A)?(direct) XCH A,@Ri; (A)?(Ri) (2) 半字节交换指令(2条) XCHD A,@Ri; (A)3∽0?(Ri)3∽0 SWAP A; (A)3∽0? (A)7∽4 (2)查表指令(2条):将ROM中数据读入累加器A中。 MOVC A,@A+DPTR ;A←((A)+(DPTR)) MOVC A,@A+PC ;A←((A)+(PC)) 已知内存单元40H中有一个0~9范围内的数,用查表指令编出能查出该数立方值的程序。设立方表表头地址为0200H。程序及执行后的结果如下: MOV A,40H MOV DPTR,#LAB MOVC A,@A+DPTR … … LAB:DB 0,1,8,27,64… … 若(40H)为2,查表得8并存于A中 【例3-12】编写程序完成68+89的BCD加法程序,并对调整过程进行分析。 解:二进制加法和十进制调整过程为: 总结 算数运算类指令对标志位的影响 : 此类指令的功能是将两个操作数比较,如果两者相等,就顺序执行,如果不相等,就转移。 同样地,使用时,我们可以将rel理解成标号,即: CJNE A,#data,标号 CJNE A,direct,标号 CJNE Rn,
文档评论(0)