MOV @R0,30H ;直接寻址 (30H) →(R0)
MOV DPTR,#3848H ;立即数寻址 3848H→DPTR
MOV 40H,38H ;直接寻址 (38H) →40H
MOV R0,30H ;直接寻址 (30H) →R0
MOV P0,R0 ;寄存器寻址 ( R0 )→P0
MOV 18H,#30H ;立即数寻址 30H→18H
MOV A,@R0 ;寄存器间接寻址 ((R0)) →A MOV P2,P1 ;直接寻址 (P1)→P2
最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H注意:→左边是内容,右边是单元
已知R3和R4中存放有一个16位的二进制数,高位在R3中,地位在R4中,请编程将其求补,并存回原处。 MOV A,R3 ;取该数高8位→A
ANL A,#80H ;取出该数符号判断
JZ L1 ;是正数,转L1
MOV A,R4 ;是负数,将该数低8位→A
CPL A ;低8位取反
ADD A,#01H ;加1
MOV R4,A ;低8位取反加1后→R4
MOV A,R3 ;将该数高8位→A
CPL A ;高8位取反
ADDC A,#00H;加上低8位加1时可能产生的进位
MOV R3,A ;高8位取反加1后→R3
L1: RET
已知30H和31H中村有一个16位的二进制数,高位在前,低位在后,请编程将他们乘以2,在存回原单元中。
CLR C ;清进位位C
MOV A,31H ;取该数低8位→A
RLC A ;带进位位左移1位
MOV 31H,A ;结果存回31H
MOV A,30H ;取该数高8位→A
RLC A ;带进位位左移1位
MOV 30H,A ;结果存回30H