⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 let2.asm

📁 在定时器中断中做LED的PWM输出 AT89C2051实现A/D转换的C51程序 单片机开发系统 指令系统 程序设计 定时与中断 系统扩展 接口技术 串行口
💻 ASM
字号:
;多字节二维数组的赋值算法
FRONT	EQU	2000H	;二维数组存放首址。
M	EQU	6	;二维数组的行数。
N	EQU	8	;二维数组的列数。
SIZE	EQU	3	;每个元素所占字节数。
I	DATA	30H	;待赋值数组元素的行号存放单元。
J	DATA	31H	;待赋值数组元素的列号存放单元。
X	EQU	32H	;待赋值数组元素的数值存放单元首址。

	ORG	0000H
	LJMP	TEST
	
	ORG	100H
TEST:	MOV	I,#3		;数据设定:准备将行号为3
	MOV	J,#5		;列号为5的数据元素
	MOV	X,#08H		;赋值为085AA5H
	MOV	X+1,#5AH
	MOV	X+2,#0A5H
	LCALL	LET		;调用赋值算法
STOP:	LJMP	STOP

LET:	SETB	C
	MOV	A,#N
	SUBB	A,J
	JC	LETEND	;待赋值数组元素的列号超范围。
	SETB	C
	MOV	A,#M
	SUBB	A,I
	JC	LETEND	;待赋值数组元素的行号超范围。
	MOV	DPTR,#FRONT;取数组首址。
	MOV	A,I	;计算偏移元素的个数。
	MOV	B,#N
	MUL	AB
	ADD	A,J
	MOV	R2,A
	CLR	A
	ADDC	A,B
	XCH	A,R2
	MOV	B,#SIZE	;按每个元素所占字节数计算偏移量。
	MUL	AB
	ADD	A,DPL
	MOV	DPL,A
	MOV	A,B
	ADDC	A,DPH
	MOV	DPH,A
	MOV	A,R2
	MOV	B,#SIZE	
	MUL	AB
	ADD	A,DPH
	MOV	DPH,A	;得到待赋值元素的实际地址。
	MOV	R0,#X	;指向待赋值元素的数值存放单元。
	MOV	R2,#SIZE;传送一个完整的数据。
LETS:	MOV	A,@R0
	MOVX	@DPTR,A
	INC	R0
	INC	DPTR
	DJNZ	R2,LETS
	CLR	C	;赋值成功。
LETEND:	RET
	END


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -