trimvalue16bit EQU 030H ;trimvalue16bit代替0x30地址; 注意这里EQU是宏定义,不是用DB和DW定义的变量
MOV trimvalue16bit ,#00H ;把0x30地址写入0x00,注意0x31地址没有填数,可能楼主这里摘录有漏的。如果是keil生成的指令的话,应该是CLR A 然后把A的内容移动到这两个地址。
MOV A,#0F1H ;0xF1放入A
ADD A,trimvalue16bit+01H ;A=A+@0x31;
MOV trimvalue16bit+01H,A ;@0x31=A; 加上A的内容后,保存回来。由于keil C51默认大端存储,所以0x31是低位。
MOV A,#0FFH
ADDC A,trimvalue16bit ; A=A+@0x30+CY ;其中CY是低位加的进位,ADDC指令和ADD的指令区别就是多了个CY。
MOV trimvalue16bit,A
x+0-15=x+65536-15=x+65531
加完后如果有进位则丢弃了,如果有进位的话,进位值为0x10000=65536;
|