kaiyun官方注册
您所在的位置: 首页> 可编程逻辑> 业界动态> PIC单片机入门_汇编/混编/C编比较

PIC单片机入门_汇编/混编/C编比较

2018-07-31
来源:互联网
关键词: 汇编 混编 C语言

1.问题描述:


对RAM中从30h开始的50个单元清零。


2.汇编方法


COUNT EQU 20H ;指定20H寄存器为循环变量

FSR EQU 04H ;指定FSR为04H

INDF EQU 00H ;指定INDF为00H

MOVLW D’50 ;给循环变量赋初值

MOVWF COUNT

MOVLW 30H ;将30H →FSR

MOVWF FSR

NEXT CLRF INDF ;间接寻址

INCF FSR,1 ;地址指针内容加1,指向下一单元

DECFSZ COUNT,1 ;计数值减1,结果为0就

;跳过下一条指令到STOP处

GOTO NEXT ;跳转回去并执行下一次循环

STOP GOTO STOP ;停机

3.混编方法


#include

char COUNT; //定义全局变量

main(){

COUNT=50;

FSR=0x30;

#asm

INDF EQU 00H

NEXT CLRF INDF

INCF _FSR, F

DECFSZ _COUNT,F

GOTO NEXT

#endasm

while(1){ ;

}

}

注意:只要是C语言中定义的变量,在汇编中对其寻址时一定要用下划线。

4.C语言编程


#include

char COUNT; //定义全局变量

main(){

COUNT=50;

FSR=0x30;

INDF=0;

NEXT: INDF=0;

FSR++;

if (COUNT-- >0)

goto NEXT;

while(1){ ; }

}

注意:用C语言编写可读性强,但是占用的资源会多。


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
Baidu
map