Autor
|
Tema: problema con saltos en assembler (Leído 3,955 veces)
|
p4nd4criss
Desconectado
Mensajes: 40
|
hola a todos soy novato con el assembler estoy tratando de resolver este problema. un programa k lea 10 números y guarde en un dirección de memoria el numero de negativos tengo un problema con el salto. no salta, se supone k salte si el numero es negativo ,para k no llame a la funcion, pero no salta, me pueden dar una sugerencia? ya intente con todo, ja jb je js jl etc... org 100h
vec db -2,1,3,-4,-5,6,-7,8,9,5 start: lea si,vec mov [400h],0 mov cx , 10 com: mov ax,[si] inc si mov dX,0 CMP dX,aX Js menor;<<<aki es donde no salta o salta cuando no debe ok: loop com mov ax , [400h] mov bx , [401h] hlt
menor: add [400h],1 jmp ok
es assembler para el emu8086 gracias
|
|
|
En línea
|
|
|
|
~
|
Comparar 0 con AX siempre va a dar igual a cero o negativo. Tal vez si se usa JL: JL menor;<<<aki es donde no salta o salta cuando no debe Pero lo mejor sería poner el pseudocódigo, como algo tipo C, para ver si tiene sentido lo que se trata de hacer. JL comprueba que SF != OF. JS solo comprueba que SF = 1. Aquí SF (bandera de signo) siempre va a ser 1 (o sea número negativo) a menos que AX sea 0 porque con cmp dx,ax, siempre se comprueba la resta de 0-AX.
|
|
|
En línea
|
|
|
|
Nop+
Desconectado
Mensajes: 25
|
Más o menos sería esto, te lo he puesto comentado para que te des cuenta de cada una de las instrucciones
xor esi,esi xor ecx,ecx xor eax,eax xor edx,edx ; Inicializamos todos los valores mov ecx,10 ; Le asignamos a ecx contador bucle: mov ah, byte ptr[Tabla+si] ; movemos el primer valor de la tabla a eax inc esi ;Incrementamos el puntero a la cadena cmp ah,0 ; el número es menor que cero? jl negativo ; Salta si es negativo loop bucle ;volvemos a empcezar jmp salir negativo: add edx,1 ; Aquí vamos contando los números negativos que encontramos loop bucle ; Seguimos mientras el contador no llegue a cero salir:
|
|
|
En línea
|
|
|
|
p4nd4criss
Desconectado
Mensajes: 40
|
gracias por sus respuestas finalmente me di cuenta k el debia ehacer un salto antes de escrbirnir lo del vector jmp inicio: vectob db 1,2,3,4,5 inicio:
para evitar errores y que debía comparar usando registros de 8 bits es decir usar al bl cl dl aha bh ch dh y no usar el registro completo como ax bx cx dx gracias
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
videos con saltos
Multimedia
|
ferdipd
|
0
|
1,569
|
10 Agosto 2006, 16:01 pm
por ferdipd
|
|
|
reproduccion a saltos
Multimedia
|
dArK_gAp
|
0
|
1,740
|
20 Agosto 2006, 22:22 pm
por dArK_gAp
|
|
|
Saltos de linea
PHP
|
zhynar_X
|
2
|
5,575
|
8 Septiembre 2007, 17:59 pm
por дٳŦ٭
|
|
|
Gif sin saltos de imagen
Diseño Gráfico
|
Marieges
|
2
|
3,685
|
29 Junio 2008, 00:13 am
por CHI<`;´>NO©
|
|
|
Saltos de directorio LFI
Hacking
|
Ancasu
|
2
|
3,295
|
7 Enero 2017, 14:29 pm
por Ancasu
|
|