51汇编指令和绝对定位.docx

上传人:b****1 文档编号:21810 上传时间:2022-10-01 格式:DOCX 页数:27 大小:13.58KB
下载 相关 举报
51汇编指令和绝对定位.docx_第1页
第1页 / 共27页
51汇编指令和绝对定位.docx_第2页
第2页 / 共27页
51汇编指令和绝对定位.docx_第3页
第3页 / 共27页
51汇编指令和绝对定位.docx_第4页
第4页 / 共27页
51汇编指令和绝对定位.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

51汇编指令和绝对定位.docx

《51汇编指令和绝对定位.docx》由会员分享,可在线阅读,更多相关《51汇编指令和绝对定位.docx(27页珍藏版)》请在冰豆网上搜索。

51汇编指令和绝对定位.docx

51汇编指令和绝对定位

51汇编指令和绝对定位

指令:

 指令格式功能简述字节数周期

 一、数据传送类指令

 MOVA,Rn寄存器送累加器11

 MOVRn,A累加器送寄存器11

 MOVA,@Ri内部RAM单元送累加器11

 MOV@Ri,A累加器送内部RAM单元11

 MOVA,#data立即数送累加器21

 MOVA,direct直接寻址单元送累加器21

 MOVdirect,A累加器送直接寻址单元21

 MOVRn,#data立即数送寄存器21

 MOVdirect,#data立即数送直接寻址单元32

 MOV@Ri,#data立即数送内部RAM单元21

 MOVdirect,Rn寄存器送直接寻址单元22

 MOVRn,direct直接寻址单元送寄存器22

 MOVdirect,@Ri内部RAM单元送直接寻址单元22

 MOV@Ri,direct直接寻址单元送内部RAM单元22

 MOVdirect2,direct1直接寻址单元送直接寻址单元32

 MOVDPTR,#data1616位立即数送数据指针32

 MOVXA,@Ri外部RAM单元送累加器(8位地址)12

 MOVX@Ri,A累加器送外部RAM单元(8位地址)12

 MOVXA,@DPTR外部RAM单元送累加器(16位地址)12

 MOVX@DPTR,A累加器送外部RAM单元(16位地址)12

 MOVCA,@A+DPTR查表数据送累加器(DPTR为基址)12

 MOVCA,@A+PC查表数据送累加器(PC为基址)12

 XCHA,Rn累加器与寄存器交换11

 XCHA,@Ri累加器与内部RAM单元交换11

 XCHDA,direct累加器与直接寻址单元交换21

 XCHDA,@Ri累加器与内部RAM单元低4位交换11

 SWAPA累加器高4位与低4位交换11

 POPdirect栈顶弹出指令直接寻址单元22

 PUSHdirect直接寻址单元压入栈顶22

 二、算术运算类指令

 ADDA,Rn累加器加寄存器11

 ADDA,@Ri累加器加内部RAM单元11

 ADDA,direct累加器加直接寻址单元21

 ADDA,#data累加器加立即数21

 ADDCA,Rn累加器加寄存器和进位标志11

 ADDCA,@Ri累加器加内部RAM单元和进位标志11

 ADDCA,#data累加器加立即数和进位标志21

 ADDCA,direct累加器加直接寻址单元和进位标志21

 INCA累加器加111

 INCRn寄存器加111

 INCdirect直接寻址单元加121

 INC@Ri内部RAM单元加111

 INCDPTR数据指针加112

 DAA十进制调整11

 SUBBA,Rn累加器减寄存器和进位标志11

 SUBBA,@Ri累加器减内部RAM单元和进位标志11

 SUBBA,#data累加器减立即数和进位标志21

 SUBBA,direct累加器减直接寻址单元和进位标志21

 DECA累加器减111

 DECRn寄存器减111

 DEC@Ri内部RAM单元减111

 DECdirect直接寻址单元减121

 MULAB累加器乘寄存器B14

 DIVAB累加器除以寄存器B14

 三、逻辑运算类指令

 ANLA,Rn累加器与寄存器11

 ANLA,@Ri累加器与内部RAM单元11

 ANLA,#data累加器与立即数21

 ANLA,direct累加器与直接寻址单元21

 ANLdirect,A直接寻址单元与累加器21

 ANLdirect,#data直接寻址单元与立即数31

 ORLA,Rn累加器或寄存器11

 ORLA,@Ri累加器或内部RAM单元11

 ORLA,#data累加器或立即数21

 ORLA,direct累加器或直接寻址单元21

 ORLdirect,A直接寻址单元或累加器21

 ORLdirect,#data直接寻址单元或立即数31

 XRLA,Rn累加器异或寄存器11

 XRLA,@Ri累加器异或内部RAM单元11

 XRLA,#data累加器异或立即数21

 XRLA,direct累加器异或直接寻址单元21

 XRLdirect,A直接寻址单元异或累加器21

 XRLdirect,#data直接寻址单元异或立即数32

 RLA累加器左循环移位11

 RLCA累加器连进位标志左循环移位11

 RRA累加器右循环移位11

 RRCA累加器连进位标志右循环移位11

 CPLA累加器取反11

 CLRA累加器清零11

 四、控制转移类指令类

 ACCALLaddr112KB范围内绝对调用22

 AJMPaddr112KB范围内绝对转移22

 LCALLaddr162KB范围内长调用32

 LJMPaddr162KB范围内长转移32

 SJMPrel相对短转移22

 JMP@A+DPTR相对长转移12

 RET子程序返回12

 RET1中断返回12

 JZrel累加器为零转移22

 JNZrel累加器非零转移22

 CJNEA,#data,rel累加器与立即数不等转移32

 CJNEA,direct,rel累加器与直接寻址单元不等转移32

 CJNERn,#data,rel寄存器与立即数不等转移32

 CJNE@Ri,#data,relRAM单元与立即数不等转移32

 DJNZRn,rel寄存器减1不为零转移22

 DJNZdirect,rel直接寻址单元减1不为零转移32

 NOP空操作11

 五、布尔操作类指令

 MOVC,bit直接寻址位送C21

 MOVbit,CC送直接寻址位21

 CLRCC清零11

 CLRbit直接寻址位清零21

 CPLCC取反11

 CPLbit直接寻址位取反21

 SETBCC置位11

 SETBbit直接寻址位置位21

 ANLC,bitC逻辑与直接寻址位22

 ANLC,/bitC逻辑与直接寻址位的反22

 ORLC,bitC逻辑或直接寻址位22

 ORLC,/bitC逻辑或直接寻址位的反22

 JCrelC为1转移22

 JNCrelC为零转移22

 JBbit,rel直接寻址位为1转移32

 JNBbit,rel直接寻址为0转移

 变量定位或函数定位:

 1、函数定位:

 假如要把C源文件tools.c中的函数

 intBIN2HEX(intxx)

 {

 ...

 }

 放在CODEMEMORY的0x1000处,先编译该工程,然后打开该工程的

M51文件,在

 ***CODEMEMORY***

 行下找出要定位的函数的名称,应该形如:

 CODExxxxHxxxxHUNIT?

PR?

_BCD2HEX?

TOOLS

 然后在:

 Project->OptionsforTarget...->BL51Locate:

Code

 中填写如下内容:

 ?

PR?

_BCD2HEX?

TOOLS(0x1000)

 再次Build,在M51中会发现该函数已放在CODEMEMORY的0x1000处

 2、赋初值的变量定位:

 要将某变量定位在一绝对位置且要赋初值,此时用_at_不能完成,则如

下操作:

 在工程中建立一个新的文件,如InitVars.c,在其中对要处理的变量赋初值

(假设是code变

 量):

 charcodemyVer={COPYRIGHT2001-11};

 然后将该文件加入工程,编译,打开M51文件,若定义的是code型,则

 ***CODEMEMORY***

 下可找到:

 CODExxxxHxxxxHUNIT?

CO?

INITVARS

 然后在:

 Project->OptionsforTarget...->BL51Locate:

Code

 中填入:

 ?

CO?

INITVARS(0x200)

 再次编译即可。

 相应地,如为xdata变量,则InitVars.c中写:

 charxdatamyVer={COPYRIGHT2001-11};

 然后将该文件加入工程,编译,打开M51文件,在

 ***XDATAMEMORY***

 下可找到:

 XDATAxxxxHxxxxHUNIT?

XD?

INITVARS

 然后在:

 Project->OptionsforTarget...->BL51Locate:

Xdata

 中填入:

 ?

XD?

INITVARS(0x200)

 再次编译即可。

相应地,若定义的是data/idata等变量,则相应处理即可。

 3、若有多个变量或函数要进行绝对地址定位,则应按地址从低到高的顺序

排列。

 扩展阅读:

51.AVR.PIC单片机编程器详解

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1