Título: DUDA CON XOR Y TECLADO Publicado por: D4P50N en 23 Febrero 2013, 16:37 pm Hola gente, buenos dias, tengo una duda con un código que es muy básico sin embargo quisiera entender porque actua como actua.
En C, cuando ingresabas un caracter al programa c tomaba ese caracter del buffer y dejaba el caracter nulo de terminación osea \0 eso en ciertas ocasiones ocasionaba que c pensara que en el buffer ya estaba ingresado una caracter y lo tomaba, obviamente para ello tenia que limpiarse con anticipación. Bueno yo estoy aprendiendo ensamblador y sucede que cuando voy a dividir un numero que ha sido entrado desde el teclado, siempre ocurre que en el resultado hay 5 unidades más. Luego investigue en internet y encontre un código similar al mio pero que funcionaba de maravilla lo estuve estudiando y la diferencia que encontre es que tenia la linea para limpiexa del registro de ax: xor ax,ax Se me vino a la mente la posibilidad de que ocurriera algo similar en ensamblador, estuve investigando pero no encuentro nada que haga referencia al teclado, entradas, buffer o algo parecido a lo que imagino. Alguien podría explicarme que sucede realmente?, les dejo una copia de mi código y una copia del código que encontre en internet. Código que encontre en internet: Código: .model small Código: .model small Título: Re: DUDA CON XOR Y TECLADO Publicado por: limbertx en 24 Febrero 2013, 18:21 pm holas somos 2 aprendiendo xD
soy nuevo en esto pero si no estoy mal antes de dividir tienes que limpiar ax ya que el resultado estara ahi. asi que al hacer xor ax, ax lo que hace es colocar ax=0 asi me dijeron que es mejor hacer xor ax, ax que usar mov ax, 0x0 ademas por lo general yo hago el xor eax, eax y cuando dices que hay 5 numeros demas , "debe de ser basura que no haz limpiado antes de hacer la operacion DIV" espero no estar mal. xD |