[2015][Diciembre][Problema 2]

[2015][Diciembre][Problema 2]

de Facundo Diaz Rodriguez -
Número de respuestas: 2

Hola, tengo una consulta sobre la solucion publicada de este ejercicio.

En el problema se trabaja con variables char como parametros y resultados intermedios, y el manejo de ellos a veces se hace con registros "completos" y otras veces con registros de Byte.

Por Ejemplo:

xor DX,DX
mov CX, [BP + 8] ; dato pasado como argumento
mov DL, ES:[BX] ; medio
cmp DX,CX

Querria saber por que se realiza de esta manera y si seria incorrecto realizar algo parecido a los siguiente:

mov DH, [BP + 8] ; dato

mov DL, ES:[BX] ; medio

cmp DL, DH

Muchas gracias.


En respuesta a Facundo Diaz Rodriguez

Re: [2015][Diciembre][Problema 2]

de Gustavo Brown -
Facundo,
  En este caso se podría hacer como tu decís pero no sería natural obtener un byte del stack. Lo mejor es seguir la convención de que al stack se lo accede por palabra.
Notar que tanto PUSH como POP solamente trabajan a nivel de palabra.
O sea, nada te impide que al buscar un dato en el stack traigas únicamente un byte. Pero cuando agregas un dato al stack o lo quitas ahí tenés que hacerlo de a palabra.

Saludos,
   Gustavo
En respuesta a Facundo Diaz Rodriguez

Re: [2015][Diciembre][Problema 2]

de Gonzalo Tejera -

Hola Facundo, espero estés bien.

Ambos códigos que presentás son correctos. En tu caso la solución queda más compacta y hace un uso más eficiente y racional de los recursos,

Saludos, Gonzalo