Como es bien sabido, las partes del PIC de Microchip implementan la resta por el "método del complemento de 2", generando un bit de acarreo cuando la suma de (el primer parámetro y el complemento de los dos del otro parámetro) genera un acarreo.
Por lo general, si la respuesta es un "número positivo", hay un bit de acarreo. Y obtienes un poco de acarreo de
movlw 33
sublw 33
porque 33 + 223 = 256.
¿Qué obtienes si restas cero de cero?
movlw 0
sublw 0 '0 + 0 = 0, suggesting c=0.
'unless someone is right, in which case c=1
El complemento de dos de cero es cero, agregar cero es cero, acarreo es cero. Pero el código que estoy viendo, y algunos consejos que estoy recibiendo, es lo contrario. Esto es muy confuso para mí.
¿Y si restas cero de algo?
movlw 0
sublw 33 '33 + 0 = 33, suggesting c=0
'unless someone else is right, in which case c=1
Estos casos no se muestran en la documentación que tengo.
¿Es esta una implementación "especial" de Microchip de la resta del complemento de 2? ¿O es esto normal? Indíqueme la documentación general del método matemático y / o la documentación de Microchip.
ps: las piezas PIC16C son como las piezas PIC16F, solo que el hardware es diferente