51单片机~这段汇编语言转换为c语言要怎么转换

已知M1和M2单元中存放有两个16位无符号数X1和X2(低8位在前,高8位在后)试写出X1+X2并把结果放在M1和M1+1单元(低8位在M1单元,高8位在M1+1单元)的程序。设两数之和不会超过16位。
MOV R0,#M1;
MOV R1,#M2;
MOV A,@R0;
ADD A,@R1;
MOV @R0, A ;
INC R0;
INC R1;
MOV A, @RO
ADDC A, @R1
MOV @RO,A;

int a,b;
a = a+b;

unsigned short X1 = *(unsigned short *)M1;
unsigned short X2 = *(unsigned short *)M2;
X1 = X1+X2;