nasm

Объясняет , что если мы не зададим оператор размера (например, byte или dword) при добавлении непосредственного значения к значению, хранящемуся в адресе памяти, NASM вернет сообщение об ошибке. section .data ; Section containing initialized data memory_address: db "PIPPACHIP" section .text...

Я пытаюсь изучить сборку MacOS с помощью NASM, и я не могу заставить работать тривиальную программу. Я пробую вариант "Привет, мир", где два слова независимо вызываются макросом. Мой исходный код выглядит следующим образом: %macro printString 2 mov rax, 0x2000004 ; write mov rdi, 1 ; stdout ...

Я новичок в namn и сборке и просматривал руководство, когда я застрял на следующем. Попытка понять, почему можно объявлять псевдоинструкции без использования меток. Нужно ли выравнивать данные, или зачем это делать? section .data db 0x01,0x02,0x03,0x04 dw 0x1234 ...

Для записи в консоль текста, на который указывает какая-то метка, я использую следующий код: section .data ;Data segment userMsg db 'Please enter a number: ' ;Ask the user to enter a number lenUserMsg equ $-userMsg ;The length of the message section...

Я изучаю сборку и, конечно же, экспериментирую с классическим прерыванием bios 0x10. Ресурсы, которые я рассматривал, показывают использование lodsb для печати строки, поэтому, чтобы понять этот код операции, я пытаюсь имитировать его поведение. Это прекрасно работает с lodsb, но не с тем, что у меня есть. Чт...

Я пишу цикл while в сборке для компиляции в терминале Linux с nasm и gcc. Программа сравнивает x и y до тех пор, пока y >= x и сообщает количество циклов в конце. Вот код: segment .data out1 db "It took ", 10, 0 out2 db "iterations to complete loop. That seems like a lot.", 10, 0 x db 10 y ...

Я пытаюсь вызвать следующую функцию: long long RtlLargeIntegerDivide(long long dividend, long long divisor, long long* pRemainder) В ассемблерном коде (NASM). Он использует соглашение о вызове stdcall и возвращает частное. Это спецификации: Входные данные: [EDX, EAX] (дивиденд), [ECX, EBX] (делитель) ...

Я знаю, что этот вопрос уже задавался раньше, но ни один из других ответов, похоже, не решил мою проблему. Может быть, я что-то упустил? Я знаю свое .iso работает, потому что я запустил его в QEMU, и он успешно работал. Так что же я делаю не так? bits 16 xor ax, ax start: cld ; Set direc...

Я хотел написать что-то основное в сборке под Windows, я использую NASM, но я не могу ничего сделать. Как написать и скомпилировать hello world без помощи функций C в Windows?...

стоит ли еще учиться ASM? Я знаю немного об этом, но я действительно не использовал его или не изучал его должным образом, потому что все, что я учусь делать на ассемблере, я могу сделать в 1/10 раза с некоторым языком, таким как C или c++. Итак, должен ли я действительно учиться и использовать ASM? Это пой...