您的位置 首页 IOT

单片机汇编指令入门学习和检查

在进行汇编程序设计时,MSP430的指令系统是程序的主体,但为了方便程序编制,还定义了一些指令,这些指令不参与和影响程序的执行,也不在计

在进行汇编程序设计时,MSP430的指令系统是程序的主体,但为了便利程序编制,还界说了一些指令,这些指令不参加和影响程序的履行,也不在计算机中运转,这类指令称为伪指令。

一般汇编器伪指令能协助用户完结以下工作:
·将代码和数据汇编到规则的段中
·在存储器顶用未初始化的变量保留空间
·操控汇编后列表文件的格局
·初始化存储器
·汇编条件块
·界说全局变量
·规则汇编器能够从中取得宏的库
·发生符号化的调试信息
模块操控伪指令:
NAME,PROGRAM—程序模块的开端
MODULE,LIBRARY—库模块的开端
ENDMOD—当时汇编模块的完毕
END—汇编文件的完毕
符号操控伪指令:
EXTERN(IMPORT)-引进外部符号
PUBLIC(EXPORT)-输出符号
段操控伪指令:
ASEG—肯定段的开端
RSEG—相对段的开端
STACK—界说仓库 段
COMMON—界说公共段
ORG—定位指针
ALIGN—校准PC
EVEN—PC对准偶地址
数值分配伪指令:
SET(ASSIGN,VAR)—赋临时值
EQU(=)—赋永久值,当时模块内有效
DEFINE—界说文件内有效的值
数据界说与分配伪指令::
DB—界说字节(8bit)
DW—界说字(16bit)
DL—界说32bit整数
DF—界说32bit float
DS n—界说n个接连的字节
DC8 DB 生成(8位)常量/字符串
DC16 DW 生成(16位)常量
DC32 DL 生成32位常量
DC64 生成32位常量
DF32 DF 生成32位浮点常量
DF64 生成64位浮点常量
.double 生成48位TI格局的 浮点常量
.float 生成32位TI格局的 浮点常量
DS8 DS 分配8位整数空间
DS16 DS 2 分配16位整数空间
DS32 DS 4 分配32位整数空间
DS64 DS 8 分配64位整数空间
MSP430汇编指令集
http://wenku.baidu.com/view/62e1336bb84ae45c3b358cfe.html
http://wenku.baidu.com/view/6a27141ca300a6c30c229f4a.html?from=related&hasrec=1
MCS-51指令详解
http://www.51c51.com/web/zhilin.htm
;阐明:为了使MCS-51单片机初学者快速入门,敏捷把握单片机指令含义、操作码、操作数及;对应地址,汇编语言怎样编写等,现按指令操作码按次序编写,可对照本公司编写的<>一书第145页指令手册检查,更详细资料请阅 第四章 MCS-51指令系统” 及第124页指令系统摘要。并在仿真器上装入;JJM.HEX文件,并对有关单元置数,用单步(F8)验证其正确性及其运转成果。
ORG 0000H
NOP ;空操作指令
AJMP L0003 ;肯定搬运指令
L0003: LJMP L0006 ;长调用指令
L0006: RR A ;累加器A内容右移 (先置A为88H)
INC A ; 累加器A 内容加1
INC 01H ;直接地址(字节01H)内容加1
INC @R0 ; R0的内容 (为地址) 的内容即直接RAM加1
;(设R0=02H,02H=03H,单步履行后02H=04H)
INC @R1 ; R1的内容 (为地址) 的内容即直接RAM加1
;(设R1=02H,02H=03H,单步履行后02H=04H)
INC R0 ; R0的内容加1 (设R0为00H,单步履行后查R0内容为多少)
INC R1 ; R1的内容加1(设R1为01H,单步履行后查R1内容为多少)
INC R2 ; R2的内容加1 (设R2为02H,单步履行后查R2内容为多少)
INC R3 ; R3的内容加1(设R3为03H,单步履行后查R3内容为多少)
INC R4 ; R4的内容加1(设R4为04H,单步履行后查R4内容为多少)
INC R5 ; R5的内容加1(设R5为05H,单步履行后查R5内容为多少)
INC R6 ; R6的内容加1(设R6为06H,单步履行后查R6内容为多少)
INC R7 ; R7的内容加1(设R7为07H,单步履行后查R7内容为多少)
JBC 20H,L0017; 如果位(如20H,即24H的0位)为1,则搬运并清0该位
L0017: ACALL S0019 ;肯定调用
S0019: LCALL S001C ;长调用
S001C: RRC A ;累加器A的内容带进位位右移(设A=11H,C=0
;单步履行后查A和C内容为多少)
DEC A ;A的内容减1
DEC 01H ;直接地址(01H)内容减1
DEC @R0 ;R0间址减1,即R0的内容为地址,该地址的内容减1
DEC @R1 ; R1间址减1
DEC R0 ; R0内容减1
DEC R1 ; R1内容减1
DEC R2 ; R2内容减1
DEC R3 ; R3内容减1
DEC R4 ; R4内容减1
DEC R5 ; R5内容减1
DEC R6 ; R6内容减1
DEC R7 ; R7内容减1
JB 20H,L002D;如果位(20H,即24H的0位)为1则搬运
L002D: AJMP L0017 ;肯定搬运
RET ;子程序回来指令
RL A ;A左移
ADD A,#01H ;A的内容与当即数(01H)相加
ADD A,01H ; A的内容与直接地址 (01H内容)相加
ADD A,@R0 ; A的内容与寄存器R0的间址内容相加
ADD A,@R1 ; A的内容与寄存器R1的间址内容相加
ADD A,R0 ; A的内容与寄存器R0的内容相加
ADD A,R1 ; A的内容与寄存器R1的内容相加
ADD A,R2 ; A的内容与寄存器R2的内容相加
ADD A,R3 ; A的内容与寄存器R3的内容相加
ADD A,R4 ; A的内容与寄存器R4的内容相加
ADD A,R5 ; A的内容与寄存器R5的内容相加
ADD A,R6 ; A的内容与寄存器R6的内容相加
ADD A,R7 ; A的内容与寄存器R7的内容相加
JNB 30H,L0041 ;直接位(30H)为0相对搬运
L0041: ACALL S0100 ;肯定调用
RETI ;中止回来指令
RLC A ;带进位位左移
ADDC A,#02H ;A带进位位与当即数(#02H)相加
ADDC A,02H ; A带进位位与直接地扯(02H内容)相加
ADDC A,@R0 ; A带进位位与R0间扯内容相加
ADDC A,@R1 ; A带进位位与R1间扯内容相加
ADDC A,R0 ; A带进位位与R0内容相加
ADDC A,R1 ; A带进位位与R1内容相加
ADDC A,R2 ; A带进位位与R2内容相加
ADDC A,R3 ; A带进位位与R3内容相加
ADDC A,R4 ; A带进位位与R4内容相加
ADDC A,R5 ; A带进位位与R5内容相加
ADDC A,R6 ; A带进位位与R6内容相加
ADDC A,R7 ; A带进位位与R7内容相加
JC L0095 ;进位为1搬运
NOP
AJMP L0017 ;肯定搬运
ORL 02H,A ;直接地址内容与A或
ORL 02H,#02H ; 直接地址内容与当即数或
ORL A,#44H ;A与当即数或
ORL A,02H ; A与直接地址内容或
ORL A,@R0 ; A与R0间址内容或
ORL A,@R1 ; A与R1间址内容或
ORL A,R0 ; A与R0内容或
ORL A,R1 ; A与R1内容或
ORL A,R2 ; A与R2内容或
ORL A,R3 ; A与R3内容或
ORL A,R4 ; A与R4内容或

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/259050.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部