Все вопросы: [nasm]
29 вопросов
Сборка x86: какой главный пролог и эпилог?
Я следую этому руководству по сборке x86.В каждом примере до сих пор используется то, что автор называет программой «c-драйвер», скомпилированной с помощью модуля сборки, для некоторой «инициализации».Что-то вроде: int main(void) { int ret = asm_main(); return ret; } Затем функция a...
Сборка DOS Простая математика
У меня есть номер, хранящийся в dl, и мне нужно, чтобы он работал с числами до трех цифр? Вот рабочий код для цифр 0-9. WriteNumber: ;; print out number in dl push ax push dx add dl,"0" mov ah,02h ; printing one char int 21h pop dx pop ax ret Например, для двух цифр. Я мог бы взять дл / 1...
How to load a kernel from disk with BIOS int 13h in NASM assembly?
I've been stuck with this for weeks now and have no idea where I'm going wrong because NASM hasn't given me any errors. The code is pretty self explanatory because of the comments. this is the code that is loaded from the BIOS ;-------------------------------------------- ; 'boot.asm' ; load...
How can I access system time using NASM?
I am trying to seed my random number generator with current system time. How can I access the system time using NASM? (I am using linux)
Inline Assembly Jump Error
Why does this fail, once Masm reaches jmp? struct gdt_entry { unsigned short limit_low; unsigned short base_low; unsigned char base_middle; unsigned char access; unsigned char granularity; unsigned char base_high; }; struct gdt_ptr { unsigned short limit; unsigne...
Converting problem: __asm__ __volatile__
I have been dealing with Nasm on a linux environment for some time and this function worked great... but now I am switching to a windows environment and I want to use Masm (with VS2008) I cant seem to get this to work... void outportb (unsigned short _port, unsigned short _data) { __asm__ __vo...
Using NASM as inline assembler compiler in Visual Studio 2008?
I managed to set NASM as compiler for separate .asm files, but I can't find a way to set NASM as compiler for inline assembler (__asm directive). For example, helloWorld db "Hello world !",0 won't compile (assembler syntax error, found "db"). Is there a way to do that ? Or am I bound to...
Windows/DOS Assembly - Simple Math
I'm currently learning Windows/DOS assembly. I'm just making a small program that adds two base 10 integers, and outputs the solution to standard output. Here is my current code: org 100h MOV al,5 ADD al,3 mov dx,al mov ah,9 int 21h ret I'm confused as to why when that is compiled, I get ...
Executing a flat binary file under Linux
Is there a way to execute a flat binary image in Linux, using a syntax something like: nasm -f bin -o foo.bin foo.asm runbinary foo.bin
gas vs. nasm: which assembler produces the best code?
Both tools translate assembly instructions directly into machine code, but is it possible to determine which one produces the fastest and cleanest code?
NASM printing out time - code doesn't output anything
I'm just getting started with ASM (NASM), and need some help with the following snippet. I get no errors/warnings, it just doesn't output anything. What I was expecting was for it to get the time (13), then print that out (4), then exit (1). Also, does anyone know of some good (preferably NASM...
Отключить кеши L2 / L1
Я пытаюсь отключить кэш внутренней и внешней памяти своего процессора, моя конфигурация приведена выше: Рабочая станция Dell Precision -Intel Core 2 Duo E6550 2.33 ГГц -Ubuntu 8.10 Я попытался отключить его через BIOS, но оказалось, что компьютеры DELL не позволяют пользователям получать дост...
Вызовы Windows API из сборки с минимизацией размера программы
Я пытаюсь написать программу на ассемблере и сделать полученный исполняемый файл как можно меньше . Для некоторых из того, что я делаю, требуются вызовы API Windows для таких функций, как WriteProcessMemory. У меня были некоторые успехи с вызовом этих функций, но после компиляции и компоновки м...
Почему инструкция mov напрямую использует ax вместо двух сегментных регистров?
Я вижу такой код: mov ax, cs mov ds, ax mov es, ax Почему я не могу просто сжать это до: mov ds, cs mov es, cs Является ли первый способ быстрее, так как он использует регистр аккумулятора? Но это не кажется интуитивно понятным, поскольку cs и ds являются сегментными регистрами . ...
как получить доступ к звуковой карте в Linux с помощью nasm
Здравствуйте, я хочу знать, как я могу получить доступ к звуковой карте из программы сборки nasm, используя int 0x80. а также какие значения я должен ввести в регистры при доступе к звуковой карте. есть ли какое-либо руководство или что-то, что содержит подробную информацию об аргументах, кот...
Как загрузить ядро в память с CD-ROM с помощью Assembly (NASM)
Я пишу для себя загрузочную программу и ядро, и загрузочная программа и ядро будут записаны на CD-R и будут работать как CD-live. Это не Linux CD-Live или что-то еще, это полностью мой собственный загрузчик и ядро. Я не хочу использовать другие загрузчики (например, GRUB), поэтому, пожалуйста,...
Базовое, но подробное руководство по сборке (Linux)?
Я хочу выучить практический язык ассемблера, только что изучив основные концепции в классе. Можно ли порекомендовать какие-нибудь приличные книги или руководства (nasm и т. Д.)?
Как перейти из защищенного режима в реальный в Linux 2.6?
Как перейти из защищенного режима в реальный в Linux 2.6?
Вызов процедуры сборки в объекте C
Я написал функцию nabs в файле сборки math.nasm следующим образом %ifdef USE_x86_ASM SECTION .text cglobal nABS ;*------------------------* ;* int nABS(int a) * ;* return value in eax * ;*------------------------* ALIGN 16 nABS: push ebx ...... ...
Какие есть хорошие ресурсы на ассемблере x86?
Какие есть хорошие онлайн-ресурсы (справочники, книги, руководства, документация и т. д.) для обучения и программирования на языке ассемблера (в частности, nasm)? Кажется, что некоторые из языков ассемблера довольно загадочны, и у меня иногда возникают проблемы с поиском какой-либо полезной инфо...
Как перевести "push byte" NASM в синтаксис GAS?
Я «портирую» исходный код NASM на GAS и обнаружил следующие строки кода: push byte 0 push byte 37 GAS не поддерживает "push byte" или "pushb". Как мне перевести приведенный выше код в синтаксис GAS? Спасибо
Как мне компилировать программы DOS в Debian?
Для моего класса языка ассемблера мы пишем программы DOS с использованием DPMI. К сожалению, у меня нет постоянного доступа к 32-битной машине с Windows. У меня есть виртуальная машина Debian, установленная практически на каждом компьютере, который я использую. У меня установлены DOSBox и DOS...
Как получить ввод пользователя с помощью NASM?
Программа должна принять простую строку от пользователя и отобразить ее обратно. Я получил программу для ввода данных от пользователя, но я не могу ее сохранить. Вот что у меня есть: BITS 32 global _main section .data prompt db "Enter a string: ", 13, 10, '$' input resd 1 ; something I can u...
строки с завершающимися долларами
В моем классе языка ассемблера нашим первым заданием было написать программу для вывода простой строки, оканчивающейся долларом в DOS. Выглядело это примерно так: BITS 32 global _main section .data msg db "Hello, world!", 13, 10, ’$’ section .text _main: mov ah, 9 mov edx, msg int 2...
Какой лучший ресурс для изучения (N) ASM?
Я уже давно хотел изучить ассемблер, и хотя я уже пробовал несколько раз раньше, мне не удалось пройти мимо «Hello, world». Есть ли какие-нибудь хорошие вводные руководства по сборке (желательно с использованием NASM, так как я использую Windows и Linux)? Я немного разбираюсь в C, но в основн...
Почему этот код NASM печатает мои переменные среды?
Я как раз заканчиваю курс компьютерной архитектуры в этом семестре, где, помимо прочего, мы занимались сборкой MIPS и запускали ее в симуляторе MARS. Сегодня из любопытства я начал возиться с NASM на своем компьютере с Ubuntu, и в основном просто собирал все по кусочкам из руководств и почувство...
Невозможно запустить программу сборки
Я только начал читать Введение в язык ассемблера 80x86 и архитектуру компьютера. Я пытаюсь использовать NASM для запуска первого примера, показанного в главе 3, но безуспешно. Кто-нибудь читал книгу и запускал примеры?
Смешивание 32-битного и 16-битного кода с nasm
Это системный вопрос низкого уровня. Мне нужно смешивать 32-битный и 16-битный код, потому что я пытаюсь вернуться в реальный режим из защищенного режима. В качестве небольшой справочной информации, мой код делает это сразу после загрузки GRUB, поэтому у меня нет какой-либо надоедливой операц...