Resultados de la búsqueda a petición "assembly"
Problemas con ADC / SBB e INC / DEC en lazos cerrados en algunas CPU
Estoy escribiendo un tipo simple BigInteger en Delphi. Consiste principalmente en una matriz dinámica de TLimb, donde TLimb es un entero sin signo de 32 bits y un campo de tamaño de 32 bits, que también contiene el bit de signo ...
tasm: el tipo de operando no coincide
.model small .stack .data buff label byte maxchar dw 50 readchar dw 0 name1 db 48 dup(0) m1 db 10,13,"enter name: $" m2 db 10,13,"your name is: $" .code mov ax, @data mov ds, ax lea dx, m1 mov ah, 09 int 21h lea dx, buff mov ah, 10 int 21h mov ...
¿Una serie de instrucciones x86 call / ret forman una cadena dependiente?
Considere el siguiente ensamblado x86-64: inner: ... ret outer: .top: call inner dec rdi jnz .top retLa funciónouter simplemente repetidamente hace uncall a la funcióninner (cuyo cuerpo no se muestra, puede estar vacío). ¿La serie decall ...
¿Qué significa MOV EAX, DWORD PTR DS: [ESI] y qué hace?
Bien, entonces tengo esta línea en mi asamblea MOV EAX, DWORD PTR DS:[ESI]donde es ESI00402050 (ascii, "123456789012") Después de esta instrucción:EAX = 34333231 ¿Qué pasó realmente aquí? ¿Cómo se calcula este valor y por qué? ¿Dónde podría ...
Imprimir "matriz" desde .bss en gdb
mi código de ensamblaje nasm x86 contiene lo siguiente: ; The code should mimic the following C-code: ; int a[10]; ; for (int i = 0; i < 10; i++){ ; a[i] = i; ; } SECTION .data arraylen dd 10 SECTION .bss array RESD 10 SECTION .text global main ...
Segmento de pila en el gestor de arranque MikeOS
No entiendo este fragmento de código: mov ax, 07C0h ; Set up 4K of stack space above buffer add ax, 544 ; 8k buffer = 512 paragraphs + 32 paragraphs (loader) cli ; Disable interrupts while changing stack mov ss, ax mov sp, 4096 sti ; Restore ...
Operaciones atómicas, std :: atomic <> y ordenamiento de escrituras
GCC compila esto: #include <atomic> std::atomic<int> a; int b(0); void func() { b = 2; a = 1; }a esto: func(): mov DWORD PTR b[rip], 2 mov DWORD PTR a[rip], 1 mfence retEntonces, para aclararme las cosas: ¿Se garantiza que cualquier otro hilo ...
Código C ++ simple 10 veces más rápido que el ensamblador en línea. ¿Por qué?
Estos dos fragmentos de código hacen lo mismo: agregan dos matrices flotantes juntas y almacenan el resultado nuevamente en ellas. Ensamblador en línea: void vecAdd_SSE(float* v1, float* v2) { _asm { mov esi, v1 mov edi, v2 movups xmm0, [esi] ...
¿Cómo almacena GMP sus enteros, en un número arbitrario de bytes?
2 ^ 64 todavía está lejos del "infinito" que mi memoria RAM / disco duro puede manejar ... Primero, me pregunto cómo funciona GMP con la memoria / procesador, ya que hace algún tipo de optimizaciones sospechosas ... También me preguntaba si hay ...
¿Cómo producir un sector de arranque de BIOS hello world mínimo con GCC que funcione desde una memoria USB en hardware real?
He logrado producir un sector de arranque mínimo que funciona con QEMU 2.0.0 Ubuntu 14.04: .code16 .global _start _start: cli mov $msg, %si mov $0x0e, %ah loop: lodsb or %al, %al jz halt int $0x10 jmp loop halt: hlt msg: .asciz "hello world" ...