单片机汇编语言教程言

MOVF,MOVWF在单片机汇编语言里是什么意思啊?_百度知道
MOVF,MOVWF在单片机汇编语言里是什么意思啊?
MOVF,MOVFW在单片机汇编语言里是什么意思啊我在学习这个,但是看不懂。。请各位帮忙。。。
我有更好的答案
PIC的精简指令,MOVF是把一个寄存器内存送入W寄存器中,如 MOVF 8,0 就是把第8寄存器送到W中(相当于8051中累加器A) ,后面是0说明存后F不变MOVWF 与上面相反,把W内容存入F寄存器中, 相当于MOV W to F
采纳率:45%
为您推荐:
其他类似问题
您可能关注的内容
单片机汇编语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。51单片机汇编语言指令集
> 51单片机汇编语言指令集
51单片机汇编语言指令集
指令集(111条)本文引用地址:助记符说明字节周期代码1.数据传送指令(30条)MOV A,Rn寄存器送A11E8--EFMOV A,data直接字节送A21E5MOV A,@Ri间接RAM送A11E6--E7MOV A,#data立接数送A2174MOV Rn,AA送寄存器11F8--FFMOV Rn,data直接数送寄存器22A8--AFMOV Rn,#data立即数送寄存器2178--7FMOV data,AA送直接字节21F5MOV data,Rn寄存器送直接字节2188&8FMOV data,data直接字节送直接字节3285MOV data,@Ri间接Rn送直接字节2286;87MOV data,#data立即数送直接字节3275MOV @Ri,AA送间接Rn12F6;F7MOV @Ri,data直接字节送间接Rn11A6;A7MOV @Ri,#data立即数送间接Rn2276;77MOV DPTR,#data1616位常数送数据指针3190MOV C,bit直接位送进位位21A2MOV bit,C进位位送直接位2292MOVC A,@A+DPTRA+DPTR寻址程序存贮字节送A3293MOVC A,@A+PCA+PC寻址程序存贮字节送A1283MOVX A,@Ri外部数据送A(8位地址)12E2;E3MOVX A,@DPTR外部数据送A(16位地址)12E0MOVX @Ri,AA送外部数据(8位地址)12F2;F3MOVX @DPTR,AA送外部数据(16位地址)12F0PUSH data直接字节进栈道,SP加122C0POP data直接字节出栈,SP减122D0XCH A,Rn寄存器与A交换11C8&CFXCH A,data直接字节与A交换21C5XCH A,@Ri间接Rn与A交换11C6;C7XCHD A,@Ri间接Rn与A低半字节交换11D6;D72.逻辑运算指令(35条)ANL A,Rn寄存器与到A1158&5FANL A,data直接字节与到A2155ANL A,@Ri间接RAM与到A1156;57ANL A,#data立即数与到A2154ANL data,AA与到直接字节2152ANL data,#data立即数与到直接字节3253ANL C,bit直接位与到进位位2282ANL C,/bit直接位的反码与到进位位22B0ORL A,Rn寄存器或到A1148&4FORL A,data直接字节或到A2145ORL A,@Ri间接RAM或到A1146;47ORL A,#data立即数或到A2144ORL data,AA或到直接字节2142ORL data,#data立即数或到直接字节3243ORL C,bit直接位或到进位位2272ORL C,/bit直接位的反码或到进位位22A0XRL A,Rn寄存器异或到A1168&6FXRL A,data直接字节异或到A2165XRL A,@Ri间接RAM异或到A1166;67XRL A,#data立即数异或到A2164XRL data,AA异或到直接字节2162XRL data,#data立即数异或到直接字节3263SETB C进位位置111D3SETB bit直接位置121D2CLR AA清011E4CLR C进位位清011C3CLR bit直接位清021C2CPL AA求反码11F4CPL C进位位取反11B3CPL bit直接位取反21B2RL AA循环左移一位1123RLC AA带进位左移一位1133RR AA右移一位1103RRC AA带进位右移一位1113SWAP AA半字节交换11C43.算术运算指令(24条)ADD A,Rn寄存器加到A1128&2FADD A,data直接字节加到A2125ADD A,@Ri间接RAM加到A1126;27ADD A,#data立即数加到A2124ADDC A,Rn寄存器带进位加到A1138&3FADDC A,data直接字节带进位加到A2135ADDC A,@Ri间接RAM带进位加到A1136;37ADDC A,#data立即数带进位加到A2134SUBB A,Rn从A中减去寄存器和进位1198&9FSUBB A,data从A中减去直接字节和进位2195SUBB A,@Ri从A中减去间接RAM和进位1196;97SUBB A,#data从A中减去立即数和进位2194INC AA加11104INC Rn寄存器加11108&0FINC data直接字节加12105INC @Ri间接RAM加11106;07INC DPTR数据指针加112A3DEC AA减11114DEC Rn寄存器减11118&1FDEC data直接字节减12115DEC @Ri间接RAM减11116;17MUL ABA乘B14A4DIV ABA被B除1484DA AA十进制调整11D44.转移指令(22条)AJMP addr 11绝对转移22*1LJMP addr 16长转移3202SJMP rel短转移2280JMP @A+DPTR相对于DPTR间接转移1273JZ rel若A=0则转移2260JNZ rel若A&0则转移2270JC rel若C=1则转移2240JNC rel若C&1则转移2250JB bit,rel若直接位=1则转移3220JNB bit,rel若直接位=0则转移3230JBC bit,rel若直接位=1则转移且清除3210CJNE A,data,rel直接数与A比较,不等转移32B5CJNE A,#data,rel立即数与A比较,不等转移32B4CJNE @Ri,#data,rel立即数与间接RAM比较,不等转移32B6;B7CJNE Rn,#data,rel立即数与寄存器比较不等转移32B8&BFDJNZ Rn,rel寄存器减1不为0转移22D8&DFDJNZ data,rel直接字节减1不为0转移32D5ACALL addr 11绝对子程序调用22*1LCALL addr 16子程序调用3212RET子程序调用返回1222RETI中断程序调用返回1232NOP空操作1100
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一【汇编语言】51单片机汇编语言指令集
我的图书馆
【汇编语言】51单片机汇编语言指令集
51单片机汇编语言指令集
指&令&集(111条)
1.数据传送指令(30条)
寄存器送&A&
直接字节送A&
间接RAM&送A&
立接数送&A&
A&送寄存器
直接数送寄存器
立即数送寄存器
A&送直接字节
寄存器送直接字节
直接字节送直接字节
间接&Rn&送直接字节
data,#data
立即数送直接字节
A&送间接&Rn
直接字节送间接Rn
立即数送间接&Rn
DPTR,#data16
16&位常数送数据指针
直接位送进位位
进位位送直接位
A+DPTR&寻址程序存贮字节送&A
A+PC&寻址程序存贮字节送A
外部数据送A(8&位地址)
外部数据送A(16&位地址)
A&送外部数据(8&位地址)
A&送外部数据(16&位地址)
直接字节进栈道,SP&加1
直接字节出栈,SP&减1
寄存器与&A&交换
直接字节与A&交换
间接Rn&与A&交换
间接Rn&与A&低半字节交换
2.逻辑运算指令(35条)
寄存器与到A
直接字节与到A
间接RAM与到A
立即数与到A
A与到直接字节
data,#data
立即数与到直接字节
直接位与到进位位
直接位的反码与到进位位
寄存器或到A
直接字节或到A
间接RAM或到A
立即数或到A
A或到直接字节
data,#data
立即数或到直接字节
直接位或到进位位
直接位的反码或到进位位
寄存器异或到A
直接字节异或到A
间接RAM异或到A
立即数异或到A
A异或到直接字节
data,#data
立即数异或到直接字节
进位位置&1
直接位置&1
进位位清&0
直接位清&0
进位位取反&
直接位取反
A循环左移一位&
A&带进位左移一位
A&带进位右移一位
A&半字节交换
3.算术运算指令(24条)
寄存器加到A&
直接字节加到A
间接RAM&加到A
立即数加到A
寄存器带进位加到&A
直接字节带进位加到A
间接RAM&带进位加到A
立即数带进位加到&A
从A&中减去寄存器和进位
从A&中减去直接字节和进位
从A&中减去间接RAM&和进位
从A&中减去立即数和进位
寄存器加&1
直接字节加1
间接RAM&加1
数据指针加1
寄存器减&1
直接字节减1
间接RAM&减1
A十进制调整
4.转移指令(22条)
相对于DPTR&间接转移
若A=0&则转移
若A≠0&则转移
若C=1&则转移
若C≠1&则转移
若直接位=1&则转移
若直接位=0&则转移
若直接位=1&则转移且清除
A,data,rel
直接数与&A&比较,不等转移
A,#data,rel
立即数与&A&比较,不等转移
@Ri,#data,rel
立即数与间接RAM比较,不等转移
Rn,#data,rel
立即数与寄存器比较不等转移
寄存器减&1&不为0&转移
直接字节减1&不为&0&转移
ACALL addr
绝对子程序调用
LCALL addr
子程序调用
子程序调用返回
中断程序调用返回
TA的最新馆藏
喜欢该文的人也喜欢单片机编程
单片机编程之汇编语言基础-常用指令和程序模式
&&& 单片机编程语言编写程序,即可使用单片机C语言编程,也可以使用单片机汇编语言。C语言编程具有模块化管理特性、可移植性高,适合编写较大的程序。但作为单片机高级程序设计,许多高级单片机ARM、很多新产品的单片机也是先需要经过汇编语言编译器之后才有C语言编辑器的。所以学好单片机汇编语言也是很重要的编程语言课程。
&&& 此外,单片机有通用型和专用型之分。专用型是厂家为固定程序专门开发的一种单片机,其程序在研发时已经写入,后期不可以修改。通用型单片机则是我们可以平常自主学习与编织程序的单片机,其程序需要自己写入,可以更改。单片机根据其基本操作处理位数不同,还可以分为:1位、4位、8位、16、32位单片机。
在此我们主要讲解美国ATMEL公司的89C51单片机。
一、89C51单片机PDIP(双列直插式)封装引脚图:
其引脚功能如下:
P0口(p0.0&p0.7):为双向三态口,可以作为输入/输出口。但在实际应用中通常作为地址/数据总线口,即为低8位地址/数据总线分时复用。低8位地址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。
P1口(p1.0&p1.7):其每一位都能作为可编程的输入或输出线。
P2口(p2.0&p2.7):每一位也都可作为输入或输出线用,当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线。对89c51单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。
P3口(p3.0&p3.7):其为双功能口,作为第一功能使用时,其功能与P1口相同。当作为第二功能使用时,每一位功能如下表所示。
P3口第二功能
Rst\Vpd:上电复位端和掉电保护端。
XTAL1(xtal2):外接晶振一脚,分别接晶振的一端。
Gnd:电源地。
Vcc:电源正级,接+5V。
PROG\ALE:地址锁存控制端
PSEN:片外程序存储器读选通信号输出端,低电平有效。
EA\vpp:访问外部程序储存器控制信号,低电平有效。当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器。当EA为低电平时只访问外部程序存储器。
二.& 常用指令及其格式介绍:
1、指令格式:
&& [标号:]操作码 &[&目的操作数][,操作源][;注释]
&& 例如:LOOP:ADD &&A,#0FFH&&&&;(A)&(A)+FFH
2、常用符号:
&& Ri和Rn:R表示工作寄存器,i表示1和0,n表示0~7。
&& rel:相对地址、地址偏移量,主要用于无条件相对短转移指令和条件转移指令。
&& #data:包含于指令中的8位立即数。
&& #data16:包含于指令中的16位立即数。
&& addr16:16位目的地址。
&& direct:直接寻址的地址。
&& bit:内部数据存储器RAM和特殊功能寄存器SFR中的可直接寻址位地址。
&& @:间接寻址寄存器或基地址寄存器的前缀。
& (X):表示X中的内容。
& ((X)):表示由X寻址的单元中的内容,也就是(X)作地址,该地址的内容用((X))表示。
3、常用伪指令:
&& ORG:规定目标程序段或数据块的起始地址。&&&&格式:ORG+空格+地址 &&&例如:ORG &0000H &
&& END:结束指令,放在程序的末尾,单独使用,一段程序只用一次。
&& DB(定义字节):从指定地址单元开始,定义若干字节存储单元并赋初始值。
4、常用寻址方式:
&&&直接寻址:&MOV &&&A,30H
&&&立即数寻址:MOV &&&A,#20H
&&&寄存器间接寻址:MOV &&A,@Ri(i=1,2)
&&&基址加变址寄存器寻址:MOV &&A,@A+DPTR
&&&寄存器寻址:MOV &&&A,Rn(n=0&7)
5、指令大集合:
传送类指令:
传送类指令:
逻辑操作类指令:
控制转移类指令:
位操作类指令:
三、一般常用程序模式:
1、开始程序:ORG &&0000H
&&&&&&&&&&&&&JMP &&&0030H
&&&&&&&&&&&&&ORG &&0030H
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&
2、软件延时子程序:YANSHI: &MOV &&R7,#25
&&&&&&&&&&&&&&&&&&&&&&&&D1: &MOV &&R6,#50
&&&&&&&&&&&&&&&&&&&&&&&&D2: &MOV &&R5,#200
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DJNZ &&R5,$
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DJNZ &&R6,D2
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DJNZ &&R7,D1
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&RET
若12M晶振则延时时长约为:25&50&200&2&10-6s,若为6M晶振则延时时长为:25&50&200&2&2&10-6s
3、硬件延时子程序:(1)查询方式:
&&&&&&&&&&&&&&&&&&&&&YANSHI: &MOV &TMOD,#01H
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MOV &&R0,#20
&&&&&&&&&&&&&&&&&&&&&&&&UP:&&&&MOV &TH0,#3CH
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MOV &TL0,#0B0H
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&SETB &TR0
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&JNB &&&TF0,$
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&CLR &&TF0
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DJNZ &R0,UP
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&RET
此延时程序为20(R0)&50ms,即为一秒,若需要更长的延时只需要改变R0的值。
4、一级中断程序:外部定时器0中断
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ORG &&0000H
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&JMP &&&002CH
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ORG &&0003H
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&JMP &&&ZHONGDUAN
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ORG &&002CH
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MAIN: &MOV &&TCON,#01H
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MOV &&IP,#01H
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MOV &&&IE,#81H
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&ZHONGDUAN: PUSH &A
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&PUSH &PSW
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&SETB &RS0
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&CLR &&RS1
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&POP &PSW
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&POP &A
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&RETI
若不需要对主程序的值进行保护则中断的子程序只需直接载入中断主程序需要执行的子程序便可。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
 PLC编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存储器,用来在...
当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。本文为大家介绍让led...
单片机编程的语言既可以用C,也可以用汇编。
#include "reg51.h"
char disp[11]={0x3f,0x06,0x5...
如何编写单片机应用程序,这是一个实践性很强的题目,也是1项艰苦而细致的工作。如果按照一定的步骤并且找...
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-51单片机汇编语言(一)
> 51单片机汇编语言(一)
51单片机汇编语言(一)
6.1功能说明:控制单片机P1端口输出,使P1.0位所接的LED点亮,其他7只灯熄灭。程序:JS01.ASM本文引用地址:01: MOV A , #B ; 存入欲显示灯的位置数据02:MOV P1, A ; 点亮第一只灯03: JMP $ ; 保持当前的输出状态04: END ; 程序结束6.2功能说明:单片机P1端口接8只LED,点亮第1、3、4、6、7、8只灯。程序:JS02.ASM01:START: MOV A , #B ; 存入欲显示灯的位置数据02: MOV P1, A ; 点亮灯03: JMP START ; 重新设定显示值04: END ; 程序结束6.3功能说明:单片机P1端口接8只LED,每次点亮一只,向左移动点亮,重复循环。该程序缺少延时环节,适合模拟仿真观察。程序:JS03.ASM01: START: MOV R0, #8 ;设左移8次02: MOV A, #B ;存入开始点亮灯位置03: LOOP: MOV P1, A ;传送到P1并输出04: RL A ;左移一位05: DJNZ R0, LOOP ;判断移动次数06: JMP START ;重新设定显示值07: END ;程序结束6.4功能说明:单片机P1端口接8只LED,每次点亮一只,向右移动点亮,重复循环。程序:JS04.ASM01: START: MOV R0, #8 ;设右移8次02: MOV A, #B ;存入开始点亮灯位置03: LOOP: MOV P1, A ;传送到P1并输出04: ACALL DELAY ;调延时子程序05: RR A ;右移一位06: DJNZ R0, LOOP ;判断移动次数07: JMP START ;重新设定显示值08: DELAY: MOV R5,#50 ;09: DLY1: MOV R6,#100 ;10: DLY2: MOV R7,#100 ;11: DJNZ R7,$ ;12: DJNZ R6,DLY2 ;13: DJNZ R5,DLY1 ;14: RET ;子程序返回15: END ;程序结束6.5功能说明:单片机P1端口接8只LED,每次点亮一只,先把右边的第一只点亮,0.5秒后点亮右数的第二只灯,第一只熄灭,再过0.5秒点亮右数的第三只灯,第二只熄灭,&亮灯按此顺序由右向左移动。当亮灯移到左侧后,开始与上述反方向移动,即亮灯由左向右移动,重复循环。程序:JS05.ASM01: START: MOV R0, #8 ;设左移8次02: MOV A,#0FEH ;存入开始亮灯位置03: LOOP: MOV P1, A ;传送到P1并输出 04: ACALL DELAY ;调延时子程序05: RL A ;左移一位06: DJNZ R0, LOOP ;判断移动次数07: MOV R1, #8 ;设右移8次08; LOOP1: RR A ;右移一位09: MOV P1, A ;传送到P1并输出10: ACALL DELAY ;调延时子程序11: DJNZ R1,LOOP1 ;判断移动次数12: JMP START ;重新设定显示值13: DELAY: MOV R5,#25 ;延时0.5秒子程序14: DLY1: MOV R6,#100 ;15: DLY2: MOV R7,#100 ;16: DJNZ R7,$ ;17: DJNZ R6,DLY2 ;18: DJNZ R5,DLY1 ;19: RET ;子程序返回20: END ;6.6功能说明:单片机P1端口接8只LED,每次点亮两只,先从右边向左边移动点亮;再从左边向右边移动点亮,然后闪烁两次,重复循环。程序:JS06.ASM01: START: MOV R0, #7 ;设左移7次02: MOV A,#0FCH ;存入开始亮灯位置03: LOOP: MOV P1, A ;传送到P1并输出04: ACALL DELAY ;调延时子程序05: RL A ;左移一位06: DJNZ R0, LOOP ;判断移动次数07: MOV R1, #7 ;设右移7次08: LOOP1: RR A ;右移一位09: MOV P1, A ;传送到P1并输出10: ACALL DELAY ;调延时子程序11: DJNZ R1, LOOP1 ;判断移动次数12: MOV R2, #3 ;设置闪烁次数13: MOV A, #00H ;设初始值14: LOOP2: MOV P1, A ;P1端口灯亮15: ACALL DELAY ;调用延时子程序16: CPL A ;A取反值17: DJNZ R2, LOOP2 ;判断闪烁次数18: JMP START ;重新设定显示值19: DELAY: MOV R5, #2520: DLY1: MOV R6, #10021: DLY2: MOV R7, #10022: DJNZ R7, $ 23: DJNZ R6, DLY224: DJNZ R5, DLY125: RET ;子程序返回26: END ;程序结束
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一

我要回帖

更多关于 单片机汇编语言100例 的文章

 

随机推荐