不知你指的这二个符号是在什么机器上用的时候。如是在51单片机中用它们都有准确的名字,# 号叫立即符,它表示它后跟的是一个立即数,这个数是死的,写程序时就固定了,不可变的了。@号叫间接符,实际上的意思就是指它后跟的是一个地址指针,内的数是一个地址,操作时只是对这个地址内的数进行操作。我这样说不知你明白没有?那不清楚再追问。
#后面跟的是立即数,@则代表着间接寻址,比如:
MOV A,#30H
MOV A,30H
第一句是将30H也就是48这个数送给累加器A
第二局是将RAM地址30H中的数送给累加器A
@的用法有以下几种:
MOV @R0,A ;也可以是R1,将A的值送入R0(R1)值所代表的RAM地址
MOV A,@R0 ;也可以是R1,R0(R1)值所代表的RAM地址值送入A
MOVX @R0,A ;也可以用R1,将A送入R0(R1)值所代表的外部RAM地址
MOVX A,@R0 ;也可以用R1,读取R0(R1)外部地址的值
MOVX @DPTR,A ;将A送入外部地址中
MOVX A,@DPTR ;读取外部地址值入A
MOVC A,@A+DPTR ;读ROM中的值
传送中怎么会出现#和@呢