173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机汇编语言数据传递

htxw 2023-03-14 资讯中心 18 ℃

怎么用汇编语言将寄存器A中的数据传到单片机的p3.4端口

首先你要清楚:你的对应CPU芯片的STD.h文件里有相应的端口地址如sfr P0=0X3F0;sbit p0^7=0x3f7;而0x3F7就是芯片内置的对应输出地址。再用outb(n,0x3f0)就好汇编。相当于P3^7=n;如果是输入是检查对应引脚状态或者对应地址读入。因为不知道你的Cpu到底是哪个所以设定地址我不清楚。如果是16位的是out addr,al;如果是ATT out %al,%addr;

MCS-51单片机,数据块传送程序设计,汇编语言如何设计?

将以 R2、R3 为首地址的源 RAM 区的 R6、R7 字节的数据

传送到以 R4、R5 为首地址的目的 RAM 区。

设定 R2、R3 所存储的源 RAM 首地址为 2000H(即 R2、R3 分别为 20H、00H),

R4、R5 所存储的目的 RAM 首地址为 4000H(即 R4、R5 分别为 40H、00H),

R6、R7 所存储 的字节数为 1FFFH(即 R6、R7 分别为 1FH、0FFH)。

---------------------

MOV R2,#20H

MOV R3,#00H

MOV R4,#40H

MOV R5,#00H

MOV R6,#1FH

MOV R7,#0FFH

LOOP:

MOV DPH,R2

MOV DPL,R3

MOVX A,@DPTR

INC DPTR

MOV R2,DPH

MOV R3,DPL

 

MOV DPH,R4

MOV DPL,R5

MOVX @DPTR,A

INC DPTR

MOV R4,DPH

MOV R5,DPL

 

DJNZ R7,LOOP

DJNZ R6,LOOP

 

SJMP $

 

END

51单片机,数据块传送程序设计,汇编语言程序怎么写?

51单片机,数据块传送程序设计,汇编语言程序怎么写?

将 RAM 中 2000H~2FFFH 存储内容的

前一半复制到 3000H~37FFH 存储区和 3800H~3FFFH 存储区,

后一半复制到 4000H~47FFH 存储区和 4800H~ 4FFFH 存储区

----------------------------

RAM 中 2000H~2FFFH 的前一半是:2000H~27FFH,

送到:3000H~37FFH、4000H~47FFH。

MOV R0, #0

MOV R2, #20H

MOV R3, #30H

MOV R4, #40H

LOP1:

 MOV P2, R2

 MOVX A, @R0 ;A←(P2P0=2000H)

 MOV P2, R3

 MOVX @R0, A ;(P2P0=3000H)←A

 MOV P2, R4

 MOVX @R0, A ;(P2P0=4000H)←A

 DJNZ R0, LOP1

INC R2

INC R3

INC R4

CJNE R4, #48H, LOP1

SJMP $

----------------------------

后一半传送,与前一半雷同,改改初始地址即可。

单片机 用汇编语言,如何把ROM中0200H~0207H单元的数传送至片外RAM0000H~0007H单元中?

一楼扯淡,对ROM的读取居然不用MOVC而用MOV。我来给个注释,楼主可以无视我。

MOV R0,#0 ;R0作为片外存储器的地址,起始为0

MOV DPTR,#200H ;所要读取的ROM的地址,用DPTR取表

LOOP: MOV A,R0

;将R0作为步进的地址量,因为两个地址一个是从0开始,一个是从200H开始,所以DPTR里的200H不变,而更改A和R0,就可以套用下面的两句来循环了

MOVC A,@A+DPTR ;将ROM中的值取至累加器A中,常见的固定格式

MOVX @R0,A ;将读取的值依次送到0000~0007H处

INC R0 ;R0从0000~0007H递增

CJNE R0,#08,LOOP;判断是否达到0007H,决定是否继续递增R0

单片机汇编语言数据传递的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:单片机汇编语言数据传递

<