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:
41hen hexadecimal o01000001en binario. - Car谩cter ¡:
C2 A1en 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.
- x86:
- ADD: Suma de valores.
- x86:
0000 1100. - x64: Similar pero adaptado a registros m谩s grandes.
- x86:
![]() |
| Motorola MC6800 Assembler listing - Lenguaje ensamblador |
Tags
Lenguaje ensamblador


