Que microcontroladores estamos hablando y que lenguaje de programación, por lo que decís parece ASM de un ARM.
EDITO:
Si parece ser ARM y es la notacion que usa. ALGUNAS (no todas) las arquitecturas soporta el uso de estas 2 instrucciones, ambas son IDENTICAS. Es decir:
(1001 AND 1000) = 1000
(1001 ANDS 1000) = 1000
La unica diferencia que todo lo que tenga una S al final, ocurre lo mismo con ADD y ADDS entre otras. Los que poseen la S actualizan las banderas de estado.
Suponete que veniamos haciendo instrucciones ( voy a usar numeros en ves de registros en algunos lugares para que se note la diferencia)
Banderas de estado antes de cada par de instrucciones: Z= 0, C=0
ADD R0, 0x8000.0000, 0x8000.0000 ; Es decir sumo 1000........ a 1000...... (son 32 bits) esto deberia poner el Carry a 1, pero como no tiene la S no actualiza las banderas
ADDS R0, 0x8000.0000, 0x8000.0000 ; Aca si pone el C = 1
AND R0, 0b1000, 0b0001 ; En este caso la bandera Z deberia ponerse en 1, pero no lo hace por que le falta la S
ANDS R0, 0b1000, 0b0001 ; Aca si se pone a 1.
Como decia algunas arquitecturas soportan esto en toda la gama de instrucciones, mas que nada aquellas que soportan Thumb-2, las que soportan solo Thumb que son instrucciones de 16bits tienen algunas instrucciones de esta forma, la mayoria de las instrucciones existe una sola y es con la S al final si o si.
Podes ver la diferencia en estos cheatsheet:
Thumb
https://web.eecs.umich.edu/~prabal/teaching/eecs373-f10/readings/ARM_QRC0006_UAL16.pdfARM & Thumb-2
http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf