sublw carry bit: Microchip PIC16C instrucción establece "método de complemento de dos"

1

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

    
pregunta david

1 respuesta

1

La instrucción PIC sublw resta el contenido del registro W de el parámetro literal de 8 bits, que es un poco diferente de las instrucciones de resta en muchas otras arquitecturas.

movlw 0
sublw 0 

Significa carga W con 0x00. Resta eso de 0x00.

La resta es complementando el registro W y agregando 1 (complemento a 2), y agregando al literal.

Así que tienes 0xFF + 1 + 0x00 = 0x00 (conjunto C)

movlw 0x00
sublw 0x33

es 0xFF + 1 + 0x33 = 0x33 (conjunto C)

En general, el bit C (en realidad es un préstamo en lugar de llevar para la resta) se establece cuando el resultado es positivo (incluido el cero), como es normal en la resta del complemento de 2.

Para más información, lea las descripciones de las instrucciones en Manual de referencia de rango medio . Los resúmenes del conjunto de instrucciones en las hojas de datos son solo breves recordatorios.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas