gas

Это действительно глупая идиосинкразия с моей стороны, но я не выношу того, как GNU AS использует для вставки комментария. Я слишком привык к способу Sun (тот же, что используется в большинстве ассемблеров UNIX), который использует простую косую черту"/", чтобы закомментировать код до конца строки. Знаете л...

Это code snipper из заголовка.S-файл в коде ядра. Я не мог понять, что делает инструкция lretw. Я проверил так много онлайн-источников для инструкции. # We will have entered with %cs = %ds+0x20, normalize %cs so # it is on par with the other segments. pushw %ds pushw $6f lretw ...

Я хотел бы понять следующее поведение GNU as. Следующая тестовая программа на OS X (Apple cctools-822/GNU as 1.38) .globl foo jmp foo foo: ret Кодируется в 00000000 e900000000 jmp 0x00000005 foo: 00000005 c3 ret В то время как GNU as на Linux (GNU as 2....

Поэтому я хочу добавить прокладку в загрузочный сектор. Допустим, в настоящее время существует только бесконечный цикл: jmp .. Длина сектора должна составлять 512 байт. Кроме того, требуется магическое число 0xaa55, которое добавляется в конце. jmp . .skip 508, 0 .word 0xaa55 Но что делать, если я хочу что...

Я хотел бы иметь процедуру прерывания в SRAM на LPC1768. Я использую набор инструментов GCC, подобный Yagarto. В настоящее время я могу сделать следующее из C: NVIC_SetVector(TIMER0_IRQn, interruptTest); ...Затем в моем файле сборки: .text /* .section .fastcode */ .global interruptTest ...

Я создаю ядро для образовательных целей. Правая моя ОС загружается следующим образом: GRUB -> boot.S -> init.c В boot.S я хочу загрузить таблицу дескрипторов прерываний. Вот выдержка из моего досье: # load_idt - Loads the interrupt descriptor table (IDT). # stack: [esp + 4] the address of the first...

кажется, есть .Директива CFI после каждой строки, а также существуют широкие вариации этих ex.,.cfi_startproc,.cfi_endproc etc.. здесь. .file "temp.c" .text .globl main .type main, @function main: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 movq %rsp, %rbp ...

в следующем ассемблерном коде, который я сбросил с помощью objdump: lea 0x0(%esi,%eiz,1),%esi что такое реестр %eiz? Что означает предыдущий код?...