Hola! Tengo unas dudas con respecto a este ejercicio. Mi solución es muy parecida a la del compañero.
Mis dudas son:
1. Cuando el ejercicio dice: "Los argumentos de la función (que se puede suponer todos de 16 bits) se envían al stack en el orden en que son declarados en la llamada a la función." ¿Se refiere a cargar en el stack los registros antes de invocar a la función? es decir:
PUSH AX
PUSH BX
PUSH CX
call AND_1
¿O debe incluirse en la función AND_1? Mas allá de la respuesta ¿tendría que hacer un POP de resultado después de hacer la call?
2. El código assembler me quedó:
AND_1 PROC
PUSH BP
MOV BP, SP
MOV AX, word ptr [BP+8]
AND AX, word ptr [BP+4]
AND AX, word ptr [BP+6]
POP BP
RET
AND_1 ENDP
Tengo dudas de si es necesario especificar en los MOV word ptr ya que en la letra ya dice que son palabras y no bytes. Otra duda es si es necesario reemplazar el valor de AX en el stack con el nuevo valor a retornar.
Muchas gracias!
Saludos!