要在8051单片机片内RAM里存入的一个16位数据,汇编语言怎么写?

2024-12-22 02:19:42
推荐回答(5个)
回答1:

在8051单片机片内RAM中存入一个16位数据,汇编指令中没有专门的指令。可以通过以下方法来实现:(加入十六位数为DATA,存入30H31H中)
1、用压栈指令实现。
MOV SP,#30H
PUSH #LOW(DATA)
PUSH #HIGH(DATA)
或者这样也可以:
PUSH #LOW(DATA)
PUSH #HIGH(DATA)
POP 31H
POP 30H
2、用传送指令实现。
MOV A,#LOW(DATA)
MOV 30H,A
MOV A,#HIGH(DATA)
MOV 31H,A

回答2:

第一种方式:
直接赋值:
mov 30h,data1
mov 31h,data2
这样16位数据就分为两个字节,分别存于30h、31h中了
第二种方式,间接赋值:
MOV R0,#30h
MOV @R0,DATA1
INC RO
MOV @R0,DATA2

回答3:

只能存进两个寄存器里。
如:MOV @R0,DPH
MOV @R0,DPL

回答4:

分成两个储存空间存不就行了,还要怎么写啊!??

回答5:

连续移动数据两次,要看你原来的数据在哪儿.