ya se que solo cambia la poscion , lo que me preguntaba es q si simplemente solo cambia la posicion ,porque una si va y la otra no
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
sub eax,ecx ; [resta a -c]
JS consequent ;[como estoy comparando numero con signo tengo que mirar que las flags de signed y overflow sean distintas para mirar la operacion a<0]
jmp next
consequent: ;[en caso de ser negativo lo paso a positivo]
NEG eax ;if eap is neggative change sing
next:
sub ebx,edx ; [resta b - d]
JS consequent2
jmp next2
consequent2:
NEG ebx ;if eap is neggative change sing
next2:
sub eax,ecx ; [resta a -c]
sub ebx,edx ; [resta b - d]
JS consequent ;[como estoy comparando numero con signo tengo que mirar que las flags de signed y overflow sean distintas para mirar la operacion a<0]
jmp next
consequent: ;[en caso de ser negativo lo paso a positivo]
NEG eax ;if eap is neggative change sing
next:
JS consequent2
jmp next2
consequent2:
NEG ebx ;if eap is neggative change sing
next2:
Cita de: x64Core en 9 Mayo 2014, 11:23 AM
¿Incorrecto nombramiento de los registros? ( esb, eox, ESB, etc )
int distanceShipBomb(int xShip, int yShip, int xBomb, int yBomb){
return max(abs(xShip-xBomb),abs(yShip-yBomb));
}
.386
.model flat, C
.code
PUBLIC distanceShipBomb
distanceShipBomb PROC
;ARQUITECTURA 86-32 DE INTEL
push esb ; pointer variable s [la variable que se encargara de ser el puntero ]
mov esb, esp; [hago que mi puntero sea igual al puntero base]
push eax ; x ship a [meto en el stack la variable a ]
push ebx ; y ship b [meto en el stack la variable b ]
push ecx ; x bomb c [meto en el stack la variable c ]
push edx ; y bomb d [meto en el stack la variable d ]
push eox ; o =0 [meto en el stack la variable o que sera oara compararlo con 0 ]
inc esb
inc esb
inc esb
inc esb
inc esb
; adjust pointer [incremente el puntero 5 veces , una por cada elemento en el stack]
xor eox , eox ; [hago que eox sea igual a 0]
sub eax,ecx ; [resta a -c]
sub ebx,edx ; [resta b - d]
cmp eax , eox ; [compara a con 0]
JS consequent ;[como estoy comparando numero con signo tengo que mirar que las flags de signed y overflow sean distintas para mirar la operacion a<0]
JNO consequent
jmp next
consequent: ;[en caso de ser negativo lo paso a positivo]
NEG eax ;if eap is neggative change sing
next:
JNS consequent2 ; [aqui en ek otro caso que se puede dar que la flag s sea 0 y o =1 ]
JO consequent2
jmp next2
consequent2:
NEG ebx ;if eap is neggative change sing
next2:
cmp ebx , eox ;[exactamente lo mismo que lo anterior pero esta vez con la variable b ]
;PD se poco de asemblador pero supongo que para evitar la repeticion se podra hacer una funcion , si me echais os lo agradeceria
JS consequent3
JNO consequent3
jmp next3
consequent3:
NEG ebx ;if eap is neggative change sing
next3:
JNS consequent4
JO consequent4
jmp next4
consequent4:
NEG ebx ;if eap is neggative change sing
next4:
OR eax,ebx ; [hago una operacion or para quedarme con el mayor ]
pop eox ; [dejo lmpio el stack de nuevo]
pop edx
pop ecx
pop ebx
pop eax
pop esp
ret ; [retorno]
distanceShipBomb ENDP ;[fin funcion]
END
1>------ Operación Compilar iniciada: proyecto: TeamWrok-Winter-2014, configuración: Debug Win32 ------
1> Assembling Distance.asm...
1>Distance.asm(10): error A2006: undefined symbol : esb
1>Distance.asm(11): error A2006: undefined symbol : esb
1>Distance.asm(24): error A2006: undefined symbol : eox
1>Distance.asm(25): error A2006: undefined symbol : eox
1>Distance.asm(29): error A2006: undefined symbol : ESB
1>Distance.asm(31): error A2006: undefined symbol : eox
1>Distance.asm(36): error A2006: undefined symbol : eox
1>Distance.asm(55): error A2006: undefined symbol : eox
1>Distance.asm(75): error A2006: undefined symbol : eox
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\masm.targets(49,5): error MSB3721: El comando "ml.exe /c /nologo /Zi /Fo"Debug\Distance.obj" /W3 /errorReport:prompt /TaDistance.asm" salió con el código 1.
========== Compilar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
Cita de: xustyx en 27 Abril 2014, 18:59 PM
Yo pienso que entre una persona de 110 y de 160 no hay gran diferencia, la
continua ....
¿Por que cojones tengo que estudiar 4 lenguas, y no puedo estudiar un lenguaje de programación?
Y así miles de preguntas que me hago ahora pero no acabaría...
Bueno voy a dejar esto por ahora y ya seguiré el hilo.
Un saludo a todos