Форум программистов и сисадминов КиберфорумКиберФорум - форум программистов и системных администраторов. Бесплатная помощь в решении задач по программированию, математике, физике и другим наукам, решение проблем с компьютером, операционными системами. |
|
Посоветуйте литературу по Assembler для Linux
Сабж
Посоветуйте книжек.
На русском.
И на буржуйском.
CMS на NASM
Добрый день всем. Решил я тут создать cms на ассемблере под linux. Не пытайтесь меня отговорить, это не лечится).
Во-первых, я реально люблю асм, он мне нравится как язык; во-вторых, я очень хочу...
Проблема с выводом значения
global _start
section .text
_start:
mov eax, 0x12003 ; 32-разрядное число
mov edx, eax ; копируем данные из EAX и EDX
shr edx, 16 ; сдвигаем биты вправо, чтобы старшие...
Конвертация из азбуки Морзе в Латинский алфавит и наоборот на Ассемблере
Доброго времени суток.
Пишу на ассемблере НАСМ программу, которая будет получать со стандартного ввода строку, потом определять азбука Морзе это или Латинский алфавит, и выводить обратное (азбука...
Проблемы с буфером при переводе из азбуки Морзе в латинский алфавит и цифры
Доброго времени суток.
Я уже написал на Ассемблере НАСМ программу, которая будет получать со стандартного ввода строку, потом определять азбука Морзе это или Латинский алфавит, и выводить обратное...
[NASM] Вывод на экран
здравствуйте читающие эту тему.
Решил приступить к изучению Ассемблера, документации нашел кучу, но не вся она хороша в плане учебной, и тем более совсем уж узко сведена к DOS и Windows...
Использование Asm в Qt Creator
Доброго времени суток, дорогие форумчане!
На бескрайних просторах Рунета наткнулся на сию замечательную статью. Естественно, захотелось реализовать написанное автором.
Разница в среде...
Ввод символа с клавиатуры, вывод на экран символа и его кода в десятичной записи
Доброе время суток.
Нужно написать программу на ассемблере, которая осуществляет ввод символа с клавиатуры, преобразовывает полученный код в десятичную символьную запись , и выводит символ и его код
Запись в файл
не получается сделать с клавиатуры запись в существующий файл
есть файл с правами доступа для записи и чтения n.asm
section .data
file dw "n.asm"
section .text
global...
Вывод на экран в SASM
Добрый день. У меня на компе стоит Linux, пишу программы на языке ассемблера в SASM (компилятор в настройках - MASM, ибо учим именно его). Через Wine все отлично работает. Однако есть проблема - в...
NASM в lubuntu с нуля
Здравствуйте, товарищи!
Я установил lubuntu, но толком еще не знаю операционной системы. Хочу установить nasm и писать программы. Подскажите, как установить. Существует ли отладчик под linux?...
Ошибка сегментирования (стек памяти сброшен на диск)
Помогите найти ошибку в коде. Ошибка сегментирования выскакивает после ввода трех строк.
section .data
hello_msg db "Welcome to compare program", 0h
input1_msg db "Enter the first line: ", 0h...
Элементарные вещи про nasm - как создать exe
Нижайше прошу прощения за столь наглый вопрос, хочу начать асм с простого создания экзешника. Ессесно тупо скопировал код HelloWorld что с Википедии, что с форума, но удалось создать лишь obj-файл, а...
Вывод числа в консоль Linux
Народ, как в fasm и nasm в linux выводить числа на консоль?
Ввод числа с клавиатуры, сравнение его с константой и вывод соответствующей строки
вобщем ребята те же грабли.
заранее скажу, что пытался все воспроизвести в онлайн ide , только она ошибок не выдает во всех случаях.
тут нужен взгляд человека, который сразу поймет детскую...
Установить NASM и IDE для ASSEMBLER
У меня стоит Linux. Если я всё правильно поняла для работы с ассемблером мне нужно установить Nums. Это вроде бы делается через командную строку. Но на (sudo apt install nasm) командная строка пишет:...
Просто сервер?
вот реально работающий точнее запускающийся сервер без gcc
то есть обыкновенными ключами, но после запуска нет признаков
жизни. Извините может я не допонимаю как им пользоватся?
section .text...
[Nasm] Вызов printf
Добрый вечер.
extern printf ; the C function, to be called
SECTION .data ; Data section, initialized variables
a: dd 5 ; int a=5;
fmt: db "a=%d, eax=%d", 10, 0 ;...
[NASM] Чтение с жесткого диска через порты
Здравствуйте, нашел в инете пример чтения данных с жесткого диска на masm для DOS, переделал немножко, чтобы nasm кушал и вместо досовских прерываний вызывались функции glibc, попробовал запустить и...
Ошибки при компиляции ассемблерной программы с помощью gcc
простая программка в качестве примера
.data
st:
.ascii "hello Gas\n"
.set len = . - st
.text
.global main
.type main, @function
Считывание элементов из строки (NASM)
Добрый вечер.
global main
;Сегмент инициализированных данных
section .data
;Запрос у пользователя
Ассемблирование в LInux
Как писать и компилировать на ассемблере в Linux?
При вводе строки функцией int 80h eax=3 буфер остаётся пустым
Не пойму, почему после ввода строки буфер остаётся пустым.
Проверяю в онлайн компиляторах
https://rextester.com/l/nasm_online_compiler
https://www.tutorialspoint.com/compile_assembly_online.php...
Раздельная компиляция
помогите пожалуйста понять как надо правильно сделать.
первый файл под названием f.s
foo:
mov $3 , %r9
[NASM] Ввод 2-х чисел, их сложение, умножение и их вывод
Сразу говорю гуглил- не нашел.
Нужна прога (пример для меня)
Ввод 2-х чисел, их сложение, умножение и их вывод.
NASM Linux
Системные вызовы и brk vs sbrk в частности
Изучаю программинг под Linux, в частности системные вызовы :)
Многочасовые поиски нормального справочника по системным вызовам завершились, по сути, тремя ссылками:
http://linuxdoc.ru/sys-doc.html...
[NASM] Вывод значения регистра
GNU nano 2.2.6 Файл: asmlab_1_4.asm
SECTION .data
s dd 0
SECTION .text
global _start ; the program entry point
Многомодульные программы
Добрый день, форумчане!
Подскажите, пожалуйста, какую-нибудь литературу по созданию многомодульных программ на ассемблере
Если у Вас есть какие-то достаточно простые примеры - поделитесь,...
Вывод числа: Linux и FASM
Решил поупражняться в ассемблере, и (наверное, почти как и все) столкнулся с проблемой вывода числа. Однако, не нашел ни единого примера для Linux и FASM. Попробовал набросать, программа корректно...
Ищу полноценную IDE для ассемблера в Linux
Доброго времени суток. Нуужна полноценная среда разработки приложений на ассемблере исключительно, которая идет только еа Линукс. Сам очень злостный фанат Линукса. В обшем тема моей дипломной работы...
Запуск другой программы
section .data
file db "b.sh"
section .text
global _start
_start:
mov ecx, 5
cmp ecx, 2
jg jamp
int 0x80
Ошибка Floating point exception (core dumped)
Доброго времени суток! Необходимо пройтись по массиву и четные элементы сдвинуть логически влево на один регистр, а нечетные элементы сдвинуть арифметически вправо. Но при запуске выводится ошибка...
Передать аргумент через командную строку
Cледующая программа попросту выписывает Hello, world на экран. Компилирую следующую программу как указано в комментарии в строке 1. Т.е. программа не использует стандартной библиотеки. Вопрос таков:...
Получить параметры командной строки
Привет, я сейчас искал в интернете на эту тему, но, к моему удивлению, ничего не нашёл.
В общем, допустим есть прога test.asm, которую я через NASM откомпилировал и потом запускаю бинарник как...
[NASM] Сортировка пузырьком
arr db 1,2,9,8,6,4,3,5,7,0
n db 10
start:
lea bx,arr
mov cx,9
cyc1:
push cx
Вызов функции fgets() из Ассемблера
Есть необходимость вызвать функцию fgets() из кода на ассемблере, не понятно, как передать параметр, который обозначает поток. Пробовал передавать число 0 и строку "stdin", но это не сработало. Как...
Встроенный ассемблер в linux
Здравствуйте! Кому нибудь доводилось писать ассемблерные вставки в linux? (gcc или KDevelop или QTCreator - вроде одинаковый синтаксис). На чистом ассемблере все отлично получается, но на инлайн...
В зависимости от ввода, вывести соответствующую строку
Помогите с кодом. Написала код по заданию, но неправильно работает, помогите с чем проблема.
Написать программу, работающую по следующему алгоритму:
(a) вывести на экран запрос о времени дня,...
Ошибка сегментирования
В универе проходим МОП, сейчас отдельной темой идет ассемблирование под линукс. Так вот после выполнения задания лабы, а именно:Написать программу под Linux, которая вводит первую строку символов из...
Ошибка сегментирования при запуске программе
После запуска команды ./runme выходит ошибка сегментирования (после ввода make ошибок не было). Я вообще не шарю в линуксе, в универе мы работаем через PuTTy, а дома через виртуалку debian...
Как создать файл для вывода в него строки?
ребята, вот когда создаешь файл для записи в него строки... файл этот нужно создавать системным вызовом, или создать в терминале, а после прописать путь? как проще?
Компиляция программы, вызывающей функцию из библиотеки C
Накопал в интернете такой пример.
# ----------------------------------------------------------------------------------------
# Writes "Hola, mundo" to the console using a C library. Runs on...
Fasm + linux + ide
Господа! В данный момент приходится кодить на fasm под Linux (Debian). Хотелось бы узнать ваше мнение какую IDE можно подружить с fasm'ом. А желательно узнать можно ли сдружить eclipse и fasm? На...
Таблица векторов прерываний
Здравствуйте, задали курсач на тему, написать модуль ядра который выводит таблицу векторов прерываний на экран , подскажите литературу пожалуйста как это можно сделать, спасибо.
Ошибка сегментирования (стек памяти сброшен на диск)
section .text
global -start
_start:
mov al, 25
mov bl, 37
div bl
mov bx, 3
mul bx
Посмотреть, во что компилируется цикл for
есть цикл
for(int c=0; c<5; ++c){
};
Чтение из файла в локальную переменную (на стеке)
привет
помогите пожалуйста разобраться в простом вопросе
есть файл
t.txt
hello forum > t.txt
теперь надо из него прочитать.
Вызов printf с локальной переменной в качестве параметра
помогите еще советом.
посидел не один день и что-то не дошло до меня почему программа крашится.
.section .data
format: asciz "%s"
[NASM] Ввод вещественного числа с помощью sscanf
Добрый вечер!
Нужно написать программу на NASM, работающую с вещественными числами. Читать и выводить можно с помощью glibc. Проблема состоит в том, чтобы считать их. Вот такой код выдает -0.00000...
Выравнивание стека на x64
все , с регистрами я разобрался. вроде понял, немного работу отладчика. но только на самом поверхностном уровне.
про выравнивание стека и про стековый кадр недоходит. тут нужен опыт в...
Возведение в степень и подсчет длины строки
Доброго времени суток!
Изучаю ассемблер (х64) и никак не могу написать 2 программы.
1) Надо написать рекурсивную функцию для возведения числа в степень
exp:
;; rdi = x (the...
Ошибка в программе сравнения двух чисел
Проблема в сравнении двух чисел-вывод в обоих случаях один
OS Linux Ubuntu x86 64
section .data
message1 db "RAW ",0xa ;сообщение если равны
ln1 equ $ -message1
message2 db "NOT...
Вывод символа Linux x32
здр. в досе для вывода одного символа на дисплей имеется специальная функция..
mov ah,2
mov dl,' '
int 21h
а я сейчас пишу программу на NASM для Linux x32.. требуется вывести на дисплей именно...
Ошибка при компоновке объектного файла - несовместимость архитектуры (разрядности)
Для Ubuntu изучайте NASM – это лучший вариант, ИМХО
Начал изучать NASM по книге где программы пишутся под процессор IA32 - не сработало:(
Говорит что процессор i386 не поддерживает. Так я...
адресное пространство
уважаемые форумчане. книги я читаю. вас бы без повода не беспокоил. но что-то до меня не доходит. помогите пожалуйста разобраться.
Митницкий В. Я. Архитектура IBM PC и язык Ассемблера. книга...
Вызов функции C из ассемблера
global main
extern printf
extern puts
section .text
main:
Размещение данных в памяти
если правильно понимаю, то все данные, которые мы захотим разместить , расположутся в адресном пространстве процессора. стек также разместиться там. я правильно понимаю?
планирую разместить...
Перевод dec в hex и oct
Здравствуйте, форумчане!
Есть такое задание:
Написать на ассемблере программу, которая получает из
стандартного ввода целое число в десятичной записи на первой строке,
и, на второй строке,...
При работе в IDE SASM программа выводит текст, при самостоятельном пуске - экран пустой (NASM, Ubuntu)
Доброго времени суток! Совсем недавно стал писать на NASM под linux. Узнал что есть такая замечательная IDE как SASM. Написал небольшую программу, которая заменяет положительные числа в матрице на...
Создание GUI посредством xlib на assembler, UNIX, AT&T
Здравствуйте, в процессе освоения ASM на Ubuntu неизбежно столкнулся с "изобилием" документации для связки assembler-Linux, да еще и в придачу, как то бывает, выбрал не Nasm, а AT&T. Все бы ничего,...
Как узнать адрес сегмента кода?
Как узнать адрес сегмента кода, например cs=23. 2 бит 0, то есть это GDT. Нужна api функция linux которая сама бы переходила в ring 0 выполняла работу потом возвращает искомый адрес, думаю верней 48...
При использовании процедур ошибка сегментации (связь си и асм)
В общем такая проблемка нужно передать мат. выражения с помощью процедур.
Написал модуль на Си вроде бы правильно, скомпилировал gcc -c main.c.
Написал модуль на ассемблере командой nasm -f elf32...
Ошибка Segmentation fault: 11
Приветствую! В данный момент пишу дипломную работу, хочу вызывать из Java c помощью JNI API данный ассемблерный код:
Опыт ассемблера не очень большой, поэтому основу кода позаимствовал с гитхаба,...
Как вывести значение в консоль linux (ubuntu) на nasm
как быть? тут на сайте есть куча литературы но она вся для винды( MASM, TASM ) а для NASM нету(
вот например у меня есть код
section .data
msg: db "бла бла бла",10
.len: equ $ - msg
l_byte: db...
Отсутствует синтаксис Intel в gdb
Когда пытаюсь перейти с синтаксиса ATT на Intel происходит следующее:
(gdb) set disassembley-flavor intel
Таблица символов не загружена. Используйте меню файл.
Как и где его скачать?
Отладчик gdb
привет
не могу понять. помогите разобраться как работает отладчик
есть файл
file.s
.section .bss
str:
.space 8
Tasm под windows и Linux (Ubuntu)
есть у кого-нибудь компилятор для tasm под windows и Linux. И как с ним работать и устанавливать.
Прога для NASM (Linux)
Ребят в общем такая проблема... До конца июня нужно сдать лабу по асму (первый курс).. Времени сейчас с ним разбираться уже нет((( Код мне написал старший друг, но досада.. Писал он под TASM, а у...
Tcp клиент
Код tcp клиента
;; yasm -g dwarf2 -f elf64 -a x86 message.asm -o msg.o
;; ld -o msg msg.o
segment .bss
listen_socket: resq 1
segment .data
Программирование SIMD библиотек на Fasm в x86-64 Linux
Начал недавно проект по разработке SIMD бибилиотек для С++ на Fasm под 64-bit Linux.
Интересно услышать мнение матерых программеров как о самом проекте, так и качестве кода.
Вот вебсайт, где можно...
Многопоточное приложение на Nasm
Необходимо создать серверное приложение, которое время от времени придется перегружать. Нужен совет как это организовать. Важна архитектура всего приложения, интересует мнение, литература и ссылки в...
Системный таймер
Здравствуйте!
Мне нужно получить текущее значение системного таймера (пишу на nasm)
При попытке сделать так:
push ds
push 40h
pop ds
...
pop ds
Считать с терминала несколько строк (x64)
Доброго времени суток! Столкнулся с проблемой..
section .data
question db "console input/file input (c/f)",10
section .bss
input resb 512
choise resb 1
section .text
global _start
[NASM] Вывод звука при помощи escape последовательности
Доброго времени суток! Пишу проигрыватель для азбуки морзе на ассемблере (nasm под ubuntu). Добрался до следущего:
1) sudo modprobe pcspkr - подключаем пищалку
2) переходим в текстовый режим...
Вывод на экран символа
не могу понять как вывести на экран символ таблицы ascii.
section .bss
num resb 1
section .text
global _start
_start:
mov ax, '1 '
Переместить указатель в конец файла для добавления к файлу
Для открытия файла
скажи пожалуйста, а как в AT&T перевести укзаталь в конец файла, чтобы туда дописать?
если несложно объясни
Переполнение буфера, шеллкод
Привет! Я изучаю переполнение буфера и внедрение шеллкода, написанного на NASM. Помогите пожалуйста разобраться. :)
Выполнил переполнение и затер адрес возврата адресом буффера, хранящим
шеллкод,...
Assembler и ядро linux
Здравствуйте, пока я студент но в будущем хотел бы занятся разработкой модулей ядра linux и планировщиком задач.
Вопрос: Совершенный разработчик ядра должен знать язык Assembler?
И на...
SASM не создаёт файл .lst , и объектный тоже
NASM. Опции Ассемблера:
-g -f elf32 $SOURCE$ -l $LSTOUTPUT$ -o $PROGRAM.OBJ$
Точней наверное ж где-то создаёт во временной директории, иначе без объектного бы не слинковал запускаемый.
SASM...
Компоновка с libc через ld
Здравствуйте!
Имеется следующая программа (для NASMа, на ArchLinux i686):
SECTION .data
LC1: db "library call", 0
SECTION .text
extern exit
extern printf
Перенос программы под Linux: номера системных вызовов в DOS и Linux не совпадают
Здравствуйте, уважаемые программисты всея форума! Доброго вам времени суток! =)
Есть у меня задание - перенести программу, написанную на ассемблере под DOS-ом, в Linux-овую среду =)
"Плевое...
Gas, создающий ELF, но работающий из-под Windows
Нужен gas (GNU Assembler), работающий из-под Windows, но создающий ELF.
У меня есть MinGW, но даже при запуске ld -b elf-i386 всё равно создаются файлы формата PE EXE.
Разумеется, нужна и...
Не считывает файл
Не считывает и не выводит побайтово файл. Если этот файл закрыть и открыть снова, файл считывается побайтово. Попробовал переставить указатель на начало - перестаёт работать.
С метками и циклами...
Объявление и обработка массива
не могу найти работающий пример
Добавлено через 1 минуту
и как его запускать
Добавлено через 35 минут
и еще нашел пример который компилируется но не запускается
Взаимодействие с Linux
Модератор, закрепи тему, пожалуйста. :)
Сделал перевод малюсенькой статьи. А то раздел, по программированию на Ассемблере под Linux, как-то обделили.
X86 Assembly/Взаимодействие с Linux.
...
Вывод размера файла
Здравствуйте.
Читаю учебник по ассемблеру, пытаюсь запустить вот эту программу.
На моей системе (Ubuntu 10.04) такие значения: sizeof = 144 , offset = 12.
Основной код исправил для 64 бит и...
Ввод с клавиатуры значения=>работа функции=>вывод значения на экран
Есть функция факториала:
SECTION .start
global _start
_start:
mov eax, 10;
mov ecx, eax;
mov ebx, 1;
for_loop:
imul ebx, ecx;
Запуск кода, написанного в Windows, в Linux
Доброго времени суток! Написал простенькую программу на С++ с ассемблерной вставкой, используя Visual Studio. Она запускается и работает. Но хочется этот же код запустить в Linux. Есть ли возможность...
Консольный ввод без эха в Linux
Всем привет.
Подскажите одну штуку. В DOS есть прерывание 08H: Консольный ввод без эха.
Есть ли что-то подобное для Linux? Если мне необходимо обработать введенное значение до того как оно...
Вывод содержимого регистров в Linux
У меня такая проблема не знаю ка в NASM под линукс вывести содержимое регистров в бинарном виде и деситичном
Зарание спосибо
Компиляция 32 битного кода в 64 битном linux
Доброго времени суток. Не могу собрать 32-битный бинарник в 64-битной системе. Проблема заключается в следующем: Линкер ld выводит ld: i386 architecture of input file `./asm/init.o' is incompatible...
Как установить свой обработчик прерывания на IRQ 7
Можно пример или каркас?
В инете всё под DOS.
Не могу до конца разобраться, что делает данный ASM код
Никак не могу восстановить формулу, по которой происходят преобразования над числами в данном коде.
Этот код - результат дезассемблирования программы на языке Си под Linux. Вот что мне удалось...
Вывести число в терминал средствами существующих API или библиотек
Доброго времени суток! Столкнулся с проблемой вывода знакового числа из регистра в терминал.
Существует ли способ вывода числа не переводя его в строку из символов вручную?
Может быть какой то...
Открытие файла на чтение завершается ошибкой
Нужно открыть текстовый файл для чтения, компилирует нормально при запуске завершается с ошибкой.
Как исправить?
%include "io.inc"
section .data
file db "text.txt",0
O_APPEND equ 2000o
...
NASMX библиотеки
помогите скачать две библиотеки так как в нашем регионе этот сайт заблокирован
вот сайт: скачать библиотеку макросов в nasmx (nasmx.sourceforge.net)
Вот нужные две библиотеки:
1 ...
Вызов функций С . Программа "Hello, world!" выполняется с ошибкой. Ошибка сегментирования
Код
.code32
.text
.globl main
main:
mov $msg, %eax
pushl %eax
call printf
popl %eax
pushl $0
Ассемблер для 64-битных приложений
Какой ассемблер выбрать GAS или NASM, или другой?
Может gcc?
_____________
OS Ubuntu 18.04 64-bit
Отладка Release конфигурации в Linux
Подскажите, можно ли как-то на Linux по release конфигурации и core файлу узнать место, где в программе произошла ошибка (конкретно, номер ассемблерной инструкции, которая привела к ошибке)?
При...
Считать с клавиатуры и занести значения в несколько переменных
ребята подскажите,,как считать с клавиатуры и занести значения в несколько переменных....
section .text
global _start
_start:
mov ecx, 2
ln:
push ecx
Ошибка сегментирования при пуске исполнимого файла
Помогите разобраться с ошибкой сегментирования.
Пытаюсь сделать такую организацию програмки
вычисляющей квадрат числа на стеке парамеров.
Стек параметров сделан на регистре %r14,
вершина...
Драйвера Linux. Как их писать, отлаживать? Не могли бы объяснить по шагам на примере Hello World?
Что-то нигде инфы не нахожу. По винде - еще попадается что-то.
Как сложить два числа с плавающей точкой в Linux
Здравствуйте, скажите пожалуйста как сложить два числа с плавающей точкой в линуксе, желательно простой пример программы.
Добавлено через 3 минуты
забыла сказать, что можно сделать при помощи...
Nasm и gdb
Помогите с проблемкой. Вот простая программа:
global _start
section .text
_start:
mov eax, 2
mov ebx, eax
mov eax, 1
Какое количество одновременных сетевых подключений способен обработать linux + роутер
Какое количество одновременных сетевых подключений способен обработать linux ubuntu который имеет выход в сеть через роутер ?
сам роутер http://www.asus.com/ru/Networking/RTN12/
вроде как есть...
Первая программа на gnu asm
Жалко, простаивает раздельчик, а тема то очень интересная. Может кто присоединится?
Написала игру пока без использования стека, пользовалась тем с чем успела познакомится.
Пока без коментариев,...
Программа не выводит ничего
Собственно начал изучать NASM но у меня не выводится в этой программе ничего
global _start
_start:
mov eax, 4
mov ebx, 1
mov ecx, 2
add ecx, 2
add ecx, '0'
Системное прерывание для работы с мышью в Linux
Нужно узнать координаты курсора,в Dos для это используется 33h, что нужно использовать в Unix?
Ошибка сегментирования (стек памяти сброшен на диск)
Здравствуйте. Я новичок в Ассемблере, и мне надо решить следующую задачу: есть массив из 12 положительных чисел. Нужно посчитать количество элементов данного массива, двоичные коды которых содержат 0...
Возможно ли сделать секцию text записываемой или data исполняемой?
Интересует наличие в NASM аналога section ‘.data’ readable writeable executable Или для текст. Для самопрограммирующегося кода. Тоесть нужна возможность коду программировать самого себя. Есно под...
Адреса аргументов процедуры, соотв. x86 Unix системе V конвенции
прив! неправильно ответил на один пункт в вопросе теста.. как должно быть правильно?
адреса аргументов процедуры, соотв. x86 Unix системе V конвенции, объявлены как?
void myproc(int a, double d,...
Функция для сортировки массива
уважаемые модераторы не переименовывайте пожалуйста тему.
уважаемые форумчане помогите пожалуйста понять в чем проблема.
есть функция для сортировки массива написанная на Си.
эту же...
Получение асмовских исходников из программы на Си для linux
Здравствуйте уважаемыя люди. На сколько сложнее этот код будет выглядеть на Насме под Линукс 32бит?
int swd_fd;
swd_fd = open (".", O_RDONLY);
if (swd_fd == –1) {
perror ("open");
exit...
Количество положительных чисел из массива A, которые удовлетворяют условию c<= A[i] <=d
Есть код. Данный код находит сумму элементов массива A={a} удовлетворяет условию с <= a <= d. Нужно переделать этот код так, чтобы он считал количество положительных чисел, которые удовлетворяют...
Как ввести новые данные при повторном вызове системного прерывания read
Здравствуйте. Если хоть кто-нибудь здесь работал в среде sasm, прошу у вас помощи.
Дело в следующем: имеется программа, сам код ниже, при втором вызове функции scan(148строка) происходит запрос...
Создание окна
Недавно начал изучать 32 битный nasm под linux. Стало интересно, можно ли каким-то способом создать окно и отобразить на нем какую-либо графику (например обычную линию). Узнал, что под windows можно...
[ARM-архитектура] Установка хука
В библиотеке lib1.so есть функция void func();
В библиотеке libhook.so есть функция void hook_func();
(Обе функции выполняются в thumb-режиме)
Вкратце:
Нужно модифицировать код, что бы при...
Напечатать float через printf
Здравствуйте,
не могу найти пример в интернете как выводить float через printf в GAS. Следующий код не работает (печатает 0.000000):
.intel_syntax noprefix
.data
.LS0: .asciz "%f\n"
f:...
Как использовать раздел .init_array?
Здравствуйте,
необходимо при загрузке исполняемого файла выполнять инициализирующий код. Помещаю этот код в функцию и помещаю указатель на функцию в раздел (section) .init_array (формат файла -...
Адрес в исполняемом .a файле
Есть программа .a. В ней есть управление звуком с помощью amxplayer. Исходника нет. Но по стечению обстоятельств необходимо поменять аргумент в функции Настройки звука. С помощью hex-редактора я...
Скелет программы
не могу разобраться, в Ассемблер.
#include <iostream>
int main() {
return 0;
Ищу сборку Linux х64 с xlib на борту для теста собственной программы
Сообщение перенесено из https://www.cyberforum.ru/linux/thread2234493.html
прошло пару лет и вот итог:
я сгенерировал х32 ГУИ приложение под линукс на ассемблере (я его скомпилировал в windows, и...
Assembler linux. Socket recv and socket send invalid arguments
Пишу шеллкод. Он ожидает подключения с 2222 порта, сам подключается на 1111 порт, выделяет память, и должен выполняться пересылка сообщений между этими подключениями. Но на вызовах recv и send я...
Mmap, malloc, обращение к одному и тому же массиву
1. Надо мне считать файл (любой). Как его отобразить на память. Файл может быть и гигабайт 10, но столько физической памяти у меня нет. Прочитал, что его можно отобразить на память, но мне нужен...
На каком именно ассемблере пишут драйверы?
Всем доброго времени суток! Изучал с горем пополам ассемблер. В Linux, компилятор был nasm. Узнал много нового интересного, например я теперь знаю, что bios написан на ассемблере,что в ОС есть куски...
Разработка модуля ядра Linux
В Linux'е не шибко спец, однако есть такая задача: разработать модуль ядра... Вот, к примеру, простой hello world (NASM), однако как его собрать и запустить?
BITS 32
GLOBAL main
EXTERN ...
Как получить и изменить данные физического уровня, поступившие на сетевую карту, до передачи их в ОС?
Добрый вечер!
Как получить данные сети на физическом уровне, изменить их и передать в ОС, если моё имя root?
Благодарю.
Убывающий факториал на Linux
Убывающий факториал числа
Убывающим факториалом (или неполным факториалом) называется выражение:
n^k = n*(n-1)*...*(n-k+1)
Убывающий факториал даёт число размещений из n по k.
Вариант №1....
Ошибка при компоновке. Как исправит код или команды компиляции и компоновки?
Ошибка
/usr/bin/ld: hola.o: relocation R_X86_64_PC32 against symbol `puts@@GLIBC_2.2.5' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: ошибка конечной ссылки: bad value...
Ввод числа ассемблерной вставкой (вызов scanf из ассемблерной вставки)
Здравствуйте!
Задача: Напишите программу, в которой создается и заполняется натуральными числами двумерный массив. Заполнение начинается с левого верхнего элемента сверху вниз, слева направо (то...
Как исправить программу, что бы компилировать без -no-pio
GAS. Программа компилируется только с ключом -no-pio
.data
printf_format:
.string "<%s>\n"
#define READ_CHUNK 128
.text
/* char *read_str(int *is_eof) */
Загрузка в память shared library
Здравствуйте.
Разбираюсь с устройством библиотек.
Прошу ответить на такие вопросы:
1) При загрузке elf используемые shared library загружаются в адресное пространство конкретного приложения
или...
Fasm. Ошибка в коде
Добрый день столкнулся с такой проблемой - при добавлении любой команды в конце метки main перестают работать вышестоящие команды начиная с открытия файл(в имя файла добавляются новые символы от...
Пытаюсь числа складывать
Пытаюсь числа складыватьsegment .bss
a resb 4
b resb 4
sum resb 5
segment .text
global _start
_start:
mov eax, 3
IA64 shellcode
Добрый день, решил попробовать написать shellcode. Нашёл статью https://sciencestory.ru/hapisanie-shellkodov-dlya-ia-64/. Там есть ниже пример, но у меня не получилось запустить. Понимаю что не...
Mmap в nasm
Здравствуйте!
Задача: Отобразить файл в память.
Подскажите пожалуйста как передать аргументы функции mmap.
Я попробывал несколько способов:
Вариант 1:
mov eax, 90
Сервер NASM
С частичным использованием функций glibc.
Работать сервер будет только на 32-битном процессоре i686+
Всего нужно 11 частей
# Objects
kcall.o:
$(NASM) kcall.asm -o $@ -l $@.lst $(NASM_DBG)...
Как правильно организовать рабочее окружение для написания и проверки программ для PDP-11 под Linux?
Мне предстоит писать программы для системы PDP-11 (если что, я пока даже не в курсе, что это точно такое), а также проверять их работу (видимо, запуская на эмуляторе).
Я предпочитаю работать в...
Программа "Hello Word" компилируется, но не запускается в Ubuntu x64
запустил я BASH, установил :
sudo apt-get install nasm
sudo apt-get install g++
sudo apt-get install nano
создал nano hello.asm
section .text
global _start ...
Исправление ошибки при решении примера (linux nasm)
Привет, Всем) Не могли бы, Вы исправить ошибку в коде nasm (linux) Пример : ((a1+a2)*a3/a4+a5) a1=-7, a2=3, a3=2, a4=4, a5=2
mov eax, 7
neg eax
mov ecx, 3
add eax, ecx
mov ecx, 2...
Строка с максимальной суммой элементов в массиве
Здравствуйте, начала изучать ассемблер совсем недавно. И определенно в код закралась какая-то дурацкая ошибка.
Не могли бы вы подсказать, в чем дело?
.data
printf_format:
.string "%d\n"...
Получить доступ в ассемблерной вставке GCC к указателю this и полям класса
Здравствуйте. Подскажите по возможности.
Есть рабочий код ассемблерной вставки из Visual Studio,
требуется заставить его работать под GCC в синтаксисе AT&T или Intel (не принципиально).
Заковыка...
Linux и "Прерывание исключений"
Можно ли в Линуксе повесить свой обработчик на прерывание, вызываемое при возникновении исключительной ситуации?
Nasm. Различный результат при запуске в IDE и после сборки в консоли
Доброго времени суток. Возникла проблема при изучении ассемблера nasm. Поставил себе задачу рекурсивно посчитать факториал. Изначально писал программу c помощью vim, собирал всё через консоль, потом...
Разработка драйверов на ассемблере для Линукс
Наиболее полное руководство по разработке драйверов на ассемблере под Линукс для новичков
Вывод элемента символьного массива
не могу понять почему не выводится на экран элемент массива....
section .bss
v rasw 1
section .text
ar db '1', '2', '6'
len dw $-ar
global _start:
Отладка в Linux
Заранее прошу прощения за возможно неверное выбранный форум! Как мне кажется, суть интересующего меня ответа где-то здесь:)
Совсем недавно начал изучать реверс. И вот, выполняя одно из тестовых...
Команда NOT, nasm, linux x86_64
Не понятен результат исполнения команды not в следующем коде
global _start
section .text
_start:
; NOT Operation
mov rax, qword
Сумма и произведение элементов массива (NASM)
Добрый день.
Помогите пожалуйста, для ассемблера NASM разработать программу, в которой задать массив целых чисел от своего номера по списку группы до 100, подсчитать сумму и произведение элементов...
GNU MinGW вызов CreateThread
Всем привет, хотел бы узнать почему мой код при инъекции в процесс крашит прогу, а не вызывает функцию Msg из tier0
text
.global _DllMain@12
_DllMain@12:
pushl %ebp
movl %esp,%ebp
...
Создать double ended queue (DEQ - ДЕК)
Здравствуйте. Только начала осваивать ассемблер в университете. Столкнулась с такой задачей:
Создать double ended queue в assembler
Может кто-то помочь?
Пример из книги Столяров "Програмирование на языке Assemblera NASM"
global _start
section .bss
array resb 256 ; массив размером 256
section .text
_start:
mov ecx, 256 ;кол-во элементов -> в счетчик (ECX)
mov edi, array...
Добавить новый элемент массива, если его значение не равно значениям элементов заданного массива А(I)
Добавить новый элемент массива, если его значение не равно значениям элементов заданного массива А(I). I = 1,2,..,5. Максимальная размерность массива А(I)=10. Добавляемые числа находятся в массиве...
Подключение ядра Linux
В общем препод дал задание, написать загрузчик и к нему же подключить ядро, естественно линукс так как с открытым исходным кодом и бесплатное, а там уже в ядре на языке С в нем написать библиотеку....
Запуск бинарного кода из выделенной памяти
Не уверен, что выбрал правильный раздел. Модераторы, если тема не соответствует разделу, переместите, куда нужно.
Пытаюсь изобрести небольшую защиту для ELF-файла.
Пишу прямо в ARM-кодах...
Выделение памяти в linux
Здравствуйте.
Вопрос, вроде, простой. Как выделить память в linux'e? (аналог оператора new из С++ или ф-ции malloc из С). Искал подходящий системный вызов, но ничего не нашёл :(
P.S.: Вопрос в...
Ассемблерная вставка в Си. При возврате управления основной программе, выполнения asm-кода начинается заново (зациклив.)
/* cpuid.c */
#include <stdio.h>
#include "cpuid.h"
void cpuid_check (void)
{
printf ("CPUID checked\n");
asm volatile(
".data\n\t"
Ошибочное значение в регистре после mov
Добрый вечер!
mov $5,%rcx
заносит в регистр 5.
При объявлении
_l:.byte 5
mov $_l,%rcx
в регистр заносится не 5.
Почему?
Набор инструкций для GNU Assembler
Добрый день!
Подскажите, пожалуйста, где я могу лицезреть официальный набор инструкций, поддерживаемых этим ассемблером для моего процессора?
Linux: Создать.удалить виртуальную сетевую карточку по IOCTL запросу к драйверу
Пишу драйвер для WiMAX модема. По ТЗ необходимо реализовать функционал драйвера, обеспечивающий создание и удаление виртуальных сетевых интерфейсов по запросам IOCTL внутри драйвера.
Это...
Получить доступ к таблице GDT хотя бы для чтения
%include "io64.inc"
; синтаксис NASM
section .data
.gdtr: times 10 db 0x00 ; Первые два - размер GDT, следующие 4 - адрес начала GDT.
section .text
global CMAIN
CMAIN:
mov ebp, esp;...
[NASM] Линии или прямоугольники
Помогите пожалуйста. Подкиньте прогу , которая рисует цветные линии или прямоугольники, которая скомпилируется на NASM?? а то я искал в интернете - ничего не нашёл :( одно старьё на всяких masm и...
Wi-fi monitor mode, linux
Привет :)
ОС - Linux. Задача - включить для wifi promisc или monitor режим.
Проблема: не смотря на то, что promisc и monitor включаются, до сниффера все-равно доходят только те пакеты, которые...
Ошибка при проверке значения после bsr
Для поиска "контрольной точки" и создания матрицы написан код
;yasm -f elf64 -g dwarf2 -a x86 parse.asm -o parse.o
;ld -o parse parse.o
%macro multipush 1-*
%rep %0
push %1
...
Нужна небольшая консультация с CPUID на NASM (IDE SASM)
Задача, вывести информацию о процессоре. Когда EAX = 0,1,4
С первой частью справился. Вот код:
%include "io.inc"
section .data
msg db 'Vendor ID: ', 0
mas dd 0,0
section .text
global...
Исходник успешно компилируется в Ubuntu, но компиляция в Debian завершается ошибкой
всем привет... мучался два дня, что ни пишу, все ошибка....
уже внаглую взял, загуглил программку hello world для Ассемблер и скопировал ее в текстовый редактор и запустил на машине под Ubuntu...
Не совпадают архитектуры
Проблема заключается в том, что когда я выполняю мейкфайл, в терминале вылизит следующее сообщение:
~/asm_programs$ make -f MakeFile <--- моя команда
cc -g -c -o main.o main.c
nasm -g -o...
Декомпиляциея исполняемого файла формата BFLT v.4
всем привет! подскажите, может кто сталкивался с декомпиляцией BFLT v4 файла? пытаюсь разобрать, не получается....
Не открывается файл в Линуксе
Здравствуйте.
Второй день изучаю ассемблер на Линукс. Использую GAS в Эклипс. Пробую открыть файл и все время возвращается ошибка -14 (EFAULT: "Bad address"). Код программы такой:
.intel_syntax...
Не работает команда list в gdb
у меня проблема такая, не работает команда list в gdb, пишет такую ошибку:
1 ../sysdeps/x86_64/start.S: Нет такого файла или каталога.
как можно исправить? гуглить умею, но не нашел почему-то...
Удаление бита
Для разбора пакета написан следующий код
global _start
segment .data
pack dq 0xb50486c000000235, 0xdc3e081609256a23
len equ $ - pack
segment .bss
segment .text
_start:
mov rdi, pack
не правильные значения вычисляются в данных
хочу записать в буфер данные, но вычисленный размер не правильный. и это наблюдается в двух местах. я укажу где неправильные данные указываются.
;DEFAULT REL
global main
extern printf
extern...
Cutter r2 gui debuger
Добрый день. Может быть кто-то пользуется гуем для r2 Cutter ?
Подскажите пожалуйста как в режиме дебага передать отлаживаемой программе строку которая она должна запрашивать sys_read'ом из ...
От чего зависит переносимость программы на Gnu as?
Целевая платформа должна поддерживать используемый формат исполняемого файла, а ещё что?
Linux SPI driver
пишу драйвер для raspberry pi
по сути достаточно символьного драйвера. но по итогу появилась следующая проблема
используя ioctl из пользовательской программы уходит команда на запись
массив...
Вызовы sento и recvfrom в получении udp пакетов
Код отвечающий за системные вызовы sento и recvfrom
%define FAST_MESSAGE_MAX_SIZE 2048
%define SYS_SENDTO 44
%define SYS_RECVFROM 45
...
sys_sendto:
mov r9, 8
mov r8, sockaddr_in
mov...
Flat in NASM
.686
.model flat,stdcall
option casemap:none
include web_to_offline.inc
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
CONSTANT readme db '\readme.htm',0
invoke...
Ошибка сегментирования при выводе на печать
При получении данных с сервера, которые приходят с интервалом в 30 сек. (heartbeat message), происходит некорректный вывод печати, содержимое печатается 2 раза, потом идут нули и заканчивается все...
Nasm, g++, указатели на массив
Всем доброго.
есть такой заголовок в с++ коде:
extern int** GetSubArraysFromOrder(int* orderOfNumbers);
тело функции исполнено в ассемблерном модуле под nasm.
Вопрос: как грамотно...
Небольшой elf32-i386 в нулевой странице адресного пространства
Сделал себе такой ELF для 32-разрядного линукса из двух заголовков с одним сегментом:
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 b0 01 cd 80 |.ELF............|
00000010 02 00 03 00 01 00...
Текущее время в структуре
При создании сообщения требуется указать время (TimeStamp) его создания в наносекундах (uint64), код
;; yasm -g dwarf2 -f elf64 -a x86 message.asm -o msg.o
;; ld -o msg msg.o
segment...
Кто разбирается в ассемблере и строении ELF файлов? Что означают байты перед сегментом кода?
Здравия всем!
Пишу трансплайер своего ЯПа на fasm, на данный момент работаю с компиляцией под линукс (вернее, пока только разбираю, из чего состоит ELF файл).
Проблема такая: я не пойму, что...
Как на nasm будет выглядеть реализация readline?
Народ помогите как на nasm будет выглядеть прога реализации readline
[NASM] Ошибка при выводе форматной строки
Если не сложно посмотрите код, вроде все сделал как надо, но программа не выдает мне нужного результата
global _main
extern _scanf
extern _printf
section .data
format dd "%d",10, 0
print dd...
Проверить совпадают ли 5-е символы в строках
Добрый день. Подскажите где ошибка... Запутался в программе.
Суть задания - вводим две строки, проверяем совпадает ли 5й символ в строках, если совпадает, пишем что совпал, если нет - пишем нет....
Ошибка при выводе числа через printf
Здравствуйте, подскажите, пожалуйста, почему не работает вывод числа в конце
extern printf
global main
section .data
a dq 0xDEADBEEF
x dq 0
y dq 0
[NASM] [Linux] Переименование Mp3 тегов
Кто может помочь написать данную программу?
отображение символа несколько раз NASM
Пожалуйста, помогите написать программу на NASM, которая выведет сообщение на экране:
Отображение 5 раз одного и того же символа:
И напишет по двоеточию пять раз один и тот же символ,...
Подключаемые файлы в Linux
Здравствуйте. Я новичок, хочу познакомится с nasm в linux. Читаю книгу и там в первом примере используется файл stud_io.inc, но мой nasm его не находит. Его нужно скачать отдельно как-то или как? У...
Segmantation fault при работе со стеком
%include "io.inc"
section .bss
n resd 1
seq resd 1000
k resd 1
section .txt
global CMAIN
CMAIN:
Как узнать в Linux что лежит по указанному адресу
Здравствуйте.
Имеется ли в Linux возможность узнать что лежит по конкретному адресу в стеке. Отлаживаю запущенную программу. Она зависает на определенном моменте. Последний адрес вызова был...
Как отключить всё, кроме нужного для используемых в программе библиотек?
Добрый вечер!
Как можно из своей программы безопасно предотвратить работу всего и вся, не связанного с работой моей программы? Например, если программа использует только какой-нибудь libquic и пару...
Как залинковать
global _start
extern printf
extern puts
section .text
_start:
Ошибки компиляции с fldq, fstq, fstpq, fstt в gas
При использовании fldq gas (as.exe из MinGW) выдаёт ошибку: Error: invalid instruction suffix for `fld'. С fstq и fstpq такая же история. А на fstt вообще ругается, мол Error: no such instruction:...
Корректный выход из main
Привет всем.
На входе:
Система: x86_64 GNU/Linux
NASM: version 2.15.05 compiled on Sep 24 2020
GCC: версия 12.2.0 (GCC)
Учу NASM под х86_64 по книге Программирование на ассемблере х64. От...
EPERM в setreuid
написал небольшой кодик асм:
section .text
global _start
_start:
xor eax, eax
mov al, 0x71
xor ebx, ebx
xor ecx, ecx
xor esi, esi
Nasm linux
Генерировать ноту МИ пока не будет нажата клавиша Y на клавиатуре.
Парсер входящих сообщений
Функцией recvfrom получаю сообщения для последующей обработки. Следующий фрагмент кода должен запускать цикл для получения новых сообщений
receive:
xor rsi, rsi
call sys_recvfrom ;
xor rdx,...
Низкоуровневое программирование
Люди помогите написать код. Только начал в этом разбираться. А уже экзамен на носу.
Написать на ассемблере nasm подпрограмму вывода на экран значения
регистра флагов в двоичной системе счисления...
Нужно ли при входе в функцию сохранять стек в Linux x64?
Доброе утро!
Подскажите, пожалуйста, нужно ли сохранять и восстанавливать стек в Linux при работе с подпрограммами?
[LINUX] Работа с сигналами в ядре 2.4
Добрый день!
Старожилы, старики-разбойники прошу вашей помощи.
Есть работающий драйвер для ядра 2.6 и выше, нужно его переписать для работы в ядре 2.4
Почти всё переписал, осталась проблема с...
Ошибка при работе вызова setsockopt
При создании udp socketa для multicast необходим вызов функции setsockopt(sockfd, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP, (char *)&group_src, sizeof(group_src)), структура group_src и команды для...
Звук сирены (NASM)
Доброго. Подскажите пожалуйста, каким образом можно реализовать на NASM'е звук серены? Существует ли способ работы с уже готовым звуковым файлом, или придется с помощью системных вызовов?
Source Specific Multicast под nasm
Кто-нибудь встречал реализацию Source Specific Multicast под nasm в открытых источниках. Поделитесь ссылкой.
Помощь с ComPort DTR Nasm Linux
Привет Всем, уважаемые форумчане)
Не могли бы Вы подсказать пожалуйста, как реализовать роботу с компортом DTR, на Linux с использованием Nasm, буду рад любому совету)
Спасибо Всем за помощь)