Здравствуйте
Проблема следующая:
написал маленькую прогу на асме,
сказал линуксу:
as -o test.o test.s
ld -o test test.o
в результате получил файл,
содержащий ELF заголовок и
(судя по размеру)еще кучу всего
ВОПРОС:
как превратьть полученный файл
в "голый" бинарник
(последовательность моих команд)
в опциях ld ничего не нашел
strip вроде только текстовую инфу вытряхивает
as & ld (как создать голый бинарник)
Модератор: Модераторы разделов
-
Serg79
- Сообщения: 153
Re: as & ld
Копай в сторону 'objcopy'. Машинные инструкции находятся в секции '.text' .
-
Red User
- Сообщения: 229
- ОС: Debian
Re: as & ld
Попробуй так:
Код: Выделить всё
ld --oformat binary -o test.bin test.oА ведь когда-то не боялись мы программы любой,
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
-
nozog
- Сообщения: 4
Re: as & ld
спасибо!
реализовал так:
и еще вопрос:
если писать для реального режима
то как настроить es и ds регистры
на нужные секции?
реализовал так:
Red User писал(а): ↑06.08.2008 01:34Попробуй так:
Код: Выделить всё
ld --oformat binary -o test.bin test.o
и еще вопрос:
если писать для реального режима
то как настроить es и ds регистры
на нужные секции?
-
Serg79
- Сообщения: 153
Re: as & ld
Для реального режима тебе надо использовать пакет bin86. Пакет binutils, куда входит ld работает только с 32-разрядным сплошным ('flat') режимом работы процессора.
-
nozog
- Сообщения: 4
Re: as & ld
BIN86
но входящий в него as86 использует синтаксис Intel,
нет ли альтернативы с AT&T синтаксисом?
но входящий в него as86 использует синтаксис Intel,
нет ли альтернативы с AT&T синтаксисом?
-
Red User
- Сообщения: 229
- ОС: Debian
Re: as & ld
Можно использовать обычный ld и .code16:
Код: Выделить всё
.code16
.globl _start
_start:
movb $9, %ah
movw $message, %dx
int $0x21
ret
message:
.ascii "Hello, World!"
.byte 0xd, 0xa, '$А ведь когда-то не боялись мы программы любой,
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
-
nozog
- Сообщения: 4
Re: as & ld
это хорошо,
но повторюсь еще раз
примеры для MASM содержат
следующие строки:
т.е. идет настройка сегментных регистров
а как их настроить в as?
но повторюсь еще раз
примеры для MASM содержат
следующие строки:
Код: Выделить всё
text segment 'code'
assume CS:text,DS:data
begin:
mov AX,data
mov DS,AXт.е. идет настройка сегментных регистров
а как их настроить в as?
-
Red User
- Сообщения: 229
- ОС: Debian
Re: as & ld
nozog писал(а): ↑06.08.2008 21:31Код: Выделить всё
text segment 'code' assume CS:text,DS:data begin: mov AX,data mov DS,AX
т.е. идет настройка сегментных регистров
а как их настроить в as?
Это уже, наверное, не голый бинарник, а что-нибудь вроде MZ (DOS .EXE). Не знаю, можно ли подобное с помощью стандартных ld и as. Я только .COM для DOS собирал.
А ведь когда-то не боялись мы программы любой,
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата