MCS-51直接寻址问题

2019-03-24 19:57发布

在书上看到MCS-51可以直接寻址的操作数存储空间为内部RAM的低128字节(00H-7FH)和特殊功能寄存器(80H-FFH),对于52子系列其内部RAM空间的80H-FFH不能直接寻址,那54和58系列呢,另外寻址的意义在哪,直接操作不就完了,为什么要寻址还有单片机的数据传送指令,对于不同的源操作数和目的操作数都有规定,大家是不是都是把这些背下来的,我感觉又乱又多 MOV A,#34H           ;A=34H MOV R0,A               ;R0=34H MOV @R0,#56H      ;(34H)=56H  ////在这里就有点看不明白了,这里是到底是把操作数34H改成56H,还是把操作数56H转移到地址是34H里呢,如果是后者那么34H这个地址又是哪来的,前面34H不一直是操作数吗? MOV R1,34H           ;R1=56H   ///这里我知道是把地址34H里的内容56H转移到R1里 MOV 40H,R1           ;(40H)=56H MOV 50H,@R1        ;(50H)=56H MOV P1,#55H          ;P1=55H       若将外部数据存储器地址为3080H的单元内容读出,送到内部RAM地址为30H单元中程序如下 MOV      DPTR,#3080H////这里加了一个#号不是表示立即数吗,而且题目不是要求3080单元的内容吗? MOVX    A,@DPTR MOV      30H, A   怎么样区分指令后面的是操作数还是地址?? 等高手指点下 [ 本帖最后由 zjjone1023 于 2011-5-18 00:14 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
leang521
2019-03-25 02:41
#:这个是立即数,你理解;
@:这个是寻址,但是注意这个只能用于寄存器,不能用于操作数,而对于操作数,只要不加#即使寻址

一周热门 更多>