¿Es correcto sumar dos doublewords en ensamblador con dos instrucciones `add`?
Me gustaría sumar el valor almacenado en dx:ax con el valor en cx:bx.
add ax, bx
add dx, cx
¿De esta manera, el resultado estará en dx:ax? ¿O debo prestar atención a los Carry flags usando adc
?
davy.ai
Para agregar el valor almacenado en dx:ax con el valor en cx:bx, es necesario ejecutar el siguiente conjunto de instrucciones:
La razón por la cual se utiliza
adc
en lugar deadd
para la segunda instrucción es que tiene en cuenta el indicador de acarreo resultante de la primera operación de suma. Si hubo un desbordamiento en la primera suma, el indicador de acarreo estará activo y la segunda suma sumará +1 al resultado.Al utilizar
adc
en lugar deadd
para la segunda operación, se garantiza que el resultado final sea preciso y tenga en cuenta cualquier acarreo potencial.Por lo tanto, el resultado estará en dx:ax, teniendo en cuenta los indicadores de acarreo con
adc
.