完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
实验基础
51单片机 本门课程硬件平台为ATMEL公司的AT89C52单片机,在Proteus软件进行仿真实验。 51单片机是8位单片机、8k ROM 、256bytes RAM、四个8位并行I/O口 汇编语言 本门课程使用汇编语言编程。 51单片机汇编指令 ;汇编语言指令格式 [标号:] 操作码 [第一操作数] [,第二操作数] [,第三操作数] [;注释] [tr]操作码操作数字节数周期数[/tr]数据传递类指令 MOVA,Rn寄存器传送到累加器1 MOVA,direct直接地址传送到累加器2 MOVA,@Ri累加器传送到外部RAM(8 地址)1 MOVA,#data立即数传送到累加器2 MOVRn,A累加器传送到寄存器1 MOVRn,direct直接地址传送到寄存器2 MOVRn,#data累加器传送到直接地址2 MOVdirect,Rn寄存器传送到直接地址2 MOVdirect,direct直接地址传送到直接地址3 MOVdirect,A累加器传送到直接地址2 MOVdirect,@Ri间接RAM 传送到直接地址2 MOVdirect,#data立即数传送到直接地址3 MOV@Ri,A直接地址传送到直接地址1 MOV@Ri,direct直接地址传送到间接RAM2 MOV@Ri,#data立即数传送到间接RAM2 MOVDPTR,#data1616 位常数加载到数据指针3 MOVCA,@A+DPTR代码字节传送到累加器1 MOVCA,@A+PC代码字节传送到累加器1 MOVXA,@Ri外部RAM(8 地址)传送到累加器1 MOVXA,@DPTR外部RAM(16 地址)传送到累加器1 MOVX@Ri,A累加器传送到外部RAM(8 地址)1 MOVX@DPTR,A累加器传送到外部RAM(16 地址)1 PUSHdirect直接地址压入堆栈2 POPdirect直接地址弹出堆栈2 XCHA,Rn寄存器和累加器交换1 XCHA, direct直接地址和累加器交换2 XCHA, @Ri间接RAM 和累加器交换1 XCHDA, @Ri间接RAM 和累加器交换低4 位字节1 (算术运算类指令) INCA累加器加11 INCRn寄存器加11 INCdirect直接地址加12 INC@Ri间接RAM 加11 INCDPTR数据指针加11 DECA累加器减11 DECRn寄存器减11 DECdirect直接地址减12 DEC@Ri间接RAM 减11 MULAB累加器和B 寄存器相乘1 DIVAB累加器除以B 寄存器1 DAA累加器十进制调整1 ADDA,Rn寄存器与累加器求和1 ADDA,direct直接地址与累加器求和2 ADDA,@Ri间接RAM 与累加器求和1 ADDA,#data立即数与累加器求和2 ADDCA,Rn寄存器与累加器求和(带进位)1 ADDCA,direct直接地址与累加器求和(带进位)2 ADDCA,@Ri间接RAM 与累加器求和(带进位)1 ADDCA,#data立即数与累加器求和(带进位)2 SUBBA,Rn累加器减去寄存器(带借位)1 SUBBA,direct累加器减去直接地址(带借位)2 SUBBA,@Ri累加器减去间接RAM(带借位)1 SUBBA,#data累加器减去立即数(带借位)2 (逻辑运算类指令) ANLA,Rn寄存器“与”到累加器1 ANLA,direct直接地址“与”到累加器2 ANLA,@Ri间接RAM“与”到累加器1 ANLA,#data立即数“与”到累加器2 ANLdirect,A累加器“与”到直接地址2 ANLdirect, #data立即数“与”到直接地址3 ORLA,Rn寄存器“或”到累加器1 ORLA,direct直接地址“或”到累加器2 ORLA,@Ri间接RAM“或”到累加器1 ORLA,#data立即数“或”到累加器2 ORLdirect,A累加器“或”到直接地址2 ORLdirect, #data立即数“或”到直接地址3 XRLA,Rn寄存器“异或”到累加器1 XRLA,direct直接地址“异或”到累加器2 XRLA,@Ri间接RAM“异或”到累加器1 XRLA,#data立即数“异或”到累加器2 XRLdirect,A累加器“异或”到直接地址2 XRLdirect, #data立即数“异或”到直接地址3 CLRA累加器清零1 CPLA累加器求反1 RLA累加器循环左移1 RLCA带进位累加器循环左移1 RRA累加器循环右移1 RRCA带进位累加器循环右移1 SWAPA累加器高、低4 位交换1 (控制转移类指令) JMP@A+DPTR相对DPTR 的无条件间接转移1 JZrel累加器为0 则转移2 JNZrel累加器为1 则转移2 CJNEA,direct,rel比较直接地址和累加器,不相等转移3 CJNEA,#data,rel比较立即数和累加器,不相等转移3 CJNERn,#data,rel比较寄存器和立即数,不相等转移2 CJNE@Ri,#data,rel比较立即数和间接RAM,不相等转移3 DJNZRn,rel寄存器减1,不为0 则转移3 DJNZdirect,rel直接地址减1,不为0 则转移3 NOP空操作,用于短暂延时1 ACALLadd11绝对调用子程序2 LCALLadd16长调用子程序3 RET从子程序返回1 RETI从中断服务子程序返回1 AJMPadd11无条件绝对转移2 LJMPadd16无条件长转移3 SJMPrel无条件相对转移2 (布尔指令) CLRC清进位位1 CLRbit清直接寻址位2 SETBC置位进位位1 SETBbit置位直接寻址位2 CPLC取反进位位1 CPLbit取反直接寻址位2 ANLC,bit直接寻址位“与”到进位位2 ANLC,/bit直接寻址位的反码“与”到进位位2 ORLC,bit直接寻址位“或”到进位位2 ORLC,/bit直接寻址位的反码“或”到进位位2 MOVC,bit直接寻址位传送到进位位2 MOVbit, C进位位位传送到直接寻址2 JCrel如果进位位为1 则转移2 JNCrel如果进位位为0 则转移2 JBbit,rel如果直接寻址位为1 则转移3 JNBbit,rel如果直接寻址位为0 则转移3 JBCbit,rel直接寻址位为1 则转移并清除该位2 伪指令格式 DS〔标号:〕 DS 表达式值预留存储区命令 BIT字符名称 BIT 位地址定义位命令 USING再定位段名 SEGMENT 段类型〔再定位类型〕用来声明一个再定位段和一个可选的再定位类型。 RSEGRSEG 段名再定位段选择指令 CSEGCSEG [AT 绝对地址表达式]绝对代码段 DSEGDSEG [AT 绝对地址表达式]内部绝对数据段 XSEGXSEG [AT 绝对地址表达式]外部绝对数据段 ISEGISEG [AT 绝对地址表达式]内部间接寻址数据段 BSEGBSEG [AT 绝对地址表达式]绝对位寻址数据段 ORGORG 表达式设定一个新的程序起始地址。 |
|
|
|
只有小组成员才能发言,加入小组>>
2513 浏览 0 评论
1083浏览 2评论
700浏览 1评论
452浏览 0评论
193浏览 0评论
329浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:44 , Processed in 1.370840 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号