Articles of ensamblaje

¿Cómo hacer el kernel para mi gestor de arranque?

Intento crear mi propio sistema operativo personalizado y necesito ayuda con mi código. Este es mi gestor de arranque.asm : [ORG 0x7c00] start: cli xor ax, ax mov ds, ax mov ss, ax mov es, ax mov [BOOT_DRIVE], dl mov bp, 0x8000 mov sp, bp mov bx, 0x9000 mov dh, 5 mov dl, [BOOT_DRIVE] call […]

¿Cómo apagar la computadora desde un entorno independiente?

Estoy haciendo un sistema operativo en modo protegido basado en la architecture x86 de Intel, y estaba buscando información sobre cómo apagar la computadora a través del código ensamblador, o algo así. ¿Podrías ayudarme con este problema?

Diferencia entre JA y JG en el ensamblaje

¿Puede decirme por favor la diferencia entre SALTAR SI ARRIBA Y SALTAR SI ES MAYOR en el idioma ensamblador? ¿Cuándo uso cada uno de ellos? ¿me dan resultados diferentes?

¿Imprimir un número en lenguaje ensamblador?

mov al,10 add al,15 ¿Cómo imprimo el valor de ‘ al ‘?

Modos de direccionamiento en lenguaje ensamblador (IA-32 NASM)

Como los recursos web en este campo son escasos, comenzaré por listar los modos de dirección para el lenguaje de ensamblaje IA-32 (NASM) y, a continuación, haré un seguimiento con una pregunta rápida. Registro de direcciones mov eax, ebx: copia lo que está en ebx en eax mov esi, var: copia la dirección de var […]

¿Cuál es el 0x10 en la instrucción de ensamblaje “leal 0x10 (% ebx),% eax” x86?

¿Cuál es la función del 0x10 con respecto a esta instrucción LEAL? ¿Es una multiplicación o adición o es algo más? leal 0x10(%ebx), %eax ¿Alguien puede aclarar? Este es un ensamblador x86 en una caja Linux.

Dirección de tags (MSVC)

Estamos escribiendo un código de bytes para un lenguaje comstackdo de alto nivel, y después de un poco de perfilado y optimización, quedó claro que la sobrecarga de rendimiento más grande actual es la statement de cambio que estamos usando para saltar a los casos de código de bytes. Investigamos la extracción de la dirección […]

La forma más rápida de calcular un módulo entero de 128 bits un entero de 64 bits

Tengo un entero A de 128 bits sin signo y un entero sin signo de 64 bits B. ¿Cuál es la forma más rápida de calcular A % B , es decir, el rest (de 64 bits) de dividir A entre B? Estoy buscando hacer esto en C o en lenguaje ensamblador, pero tengo que […]

Qué significa “rep; nop; “¿significa en ensamblaje x86? ¿Es lo mismo que la instrucción de “pausa”?

¿Qué hace rep; nop rep; nop significa? ¿Es lo mismo que la instrucción de pause ? ¿Es lo mismo que rep nop (sin el punto y coma)? ¿Cuál es la diferencia con la instrucción simple nop ? ¿Se comporta de manera diferente en los procesadores AMD e Intel? (bonificación) ¿Dónde está la documentación oficial para […]

_addcarry_u64 y _addcarryx_u64 con MSVC e ICC

Tanto _addcarry_u64 como ICC admiten los intrínsecos _addcarry_u64 y _addcarryx_u64 . De acuerdo con la Guía intrínseca de Intel y el libro blanco, estos deben adcx a adcx y adox respectivamente. Sin embargo, al observar el ensamblaje generado, está claro que se asignan a adc y adcx respectivamente, y no hay ningún intrínseco que se […]