Lenguaje Ensamblador y UTF-8

Lenguaje ensamblador (x86 y x64) y UTF-8

1. Lenguaje ensamblador para x86 y x64

El ensamblador en x86 y x64 es la forma m谩s cercana al lenguaje m谩quina. Los mnem贸nicos son instrucciones traducidas en opcodes binarios procesados por el CPU.

C贸digo x86

MOV EAX, 41h ; Cargar el valor 41h (UTF-8 para 'A') en el registro EAX
ADD EAX, 02h ; Sumar 2 al registro EAX
CMP EAX, 43h ; Comparar el contenido con 43h (UTF-8 para 'C')
        

C贸digo x64

MOV RAX, 41h ; Cargar el valor 41h en el registro RAX
ADD RAX, 03h ; Sumar 3 al registro RAX
CMP RAX, 44h ; Comparar el contenido con 44h (UTF-8 para 'D')
        

Lenguaje de m谩quina del Intel 8088. El c贸digo de m谩quina en hexadecimal se resalta en rojo, el equivalente en lenguaje ensamblador en magenta, y las direcciones de memoria donde se encuentra el c贸digo, en azul. Abajo se ve un texto en hexadecimal y ASCII.

2. Relaci贸n con UTF-8

El codificado UTF-8 es un est谩ndar para representar caracteres en formato binario. Por ejemplo:

  • Letra A: 41h en hexadecimal o 01000001 en binario.
  • Car谩cter ¡: C2 A1 en hexadecimal.

Manipulaci贸n en ensamblador

; Cargar el primer byte de '¡' (C2h)
MOV AL, C2h

; Cargar el segundo byte de '¡' (A1h)
MOV BL, A1h

; Combinar los bytes para procesar el car谩cter completo
OR AL, BL
        

3. Opcodes aceptados internacionalmente

Los opcodes son espec铆ficos para cada arquitectura:

  • MOV: Transferencia de datos.
    • x86: 1011 xxxx (depende del registro).
    • x64: Similar, extendido para registros de 64 bits.
  • ADD: Suma de valores.
    • x86: 0000 1100.
    • x64: Similar pero adaptado a registros m谩s grandes.
Motorola MC6800 Assembler listing - Lenguaje ensamblador

 

 

 

 

Destacado

Bootloader Avanzado en Ensamblador

Bootloader Avanzado en Ensamblador Caracter铆sticas del Bootloader Se carga en la direcci贸n 0x7C00 (BIOS). ...