es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo convertir una letra (guardada en un byte) en un long? (Ensamblador NASM)

En este momento, estoy tratando de transformar una variable de tipo .byte (que puede contener valores de ‘A’, ‘B’, ‘C’, ‘D’ o ‘E’) (letras hexadecimales) en sus equivalentes decimales (10, 11, 12, 13, 14 y 15, respectivamente).

.data:
bit: .byte ‘A’
result: .long 0

.letters:
movb bit, %ah
movb $’A’, %al
subb %al,%ah
movb %ah, result
addl $10, result

Sin embargo, cuando ejecuto el código, result es igual al resultado que quiero +7. ¿Estoy haciendo algo mal?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que te falta un paso en tu código. Necesitas restar 7 del resultado después de que le sumes 10. Puedes hacer esto agregando la siguiente línea de código después de la instrucción addl:

    subl $7, resultado
    

Comments are closed.