本文目录一览:
- 1、MOV DPTR,#0030H MOV A,#31 MOVX @DPTR,A 好比这段程序,用c语言应该怎么写呢?
- 2、单片机中与 MOVX A,R0 等价的是什么语句;
- 3、movx @DPTR,A怎么转换为C语言
- 4、关于51单片机里 wr rd两个引脚。在汇编中MOVX是自动赋值的。那在C语言中呢。自能手动赋值?
MOV DPTR,#0030H MOV A,#31 MOVX @DPTR,A 好比这段程序,用c语言应该怎么写呢?
先要定义一外部存储器的变量,然后给这个变量赋值31就OK。
char xdata *mydat;
......
mydat=(char xdata*)0x0030;
*mydat=31;
单片机中与 MOVX A,R0 等价的是什么语句;
楼主所写的指令不对。没有这样的语句。
单片机的MOVX指令只有以下四种:
MOVX A,@Ri ;i只能是0或1
MOVX A,@A+DPTR
MOVX @Ri ,A;i只能是0或1
MOVX @A+DPTR,A
若@Ri里存放数据37H,则MOVX A,@Ri的意思是把片外数据存储器37H里存放的数据传送给A;
MOVX A,@A+DPTR的意思是把DPTR和A的和所对应的片外数据存储区地址里的数传送给A。
因为楼主写的指令不存在,所以也没有与其等价的指令。
movx @DPTR,A怎么转换为C语言
首先要
添加一个头文件
#includeabsacc.h
再
主程序前
#define
address
XBYTE[0x8000]
uchar
xdata
*add;
主程序中可以写
add=address;
*add=0x00;
关于51单片机里 wr rd两个引脚。在汇编中MOVX是自动赋值的。那在C语言中呢。自能手动赋值?
c语言可用XBYTE[ 一个外部十六进制地址]来直接访问xdata的存储空间 它已经包括了MOVX