169 похожих чатов

У меня такой вопрос. Вот мне нужно сделать бинарный файл

с ассемблер кода:
[bits 32]
[org 0x7c00]
start:
cli
mov esp, stack_space
call _main

hlt

section .text
align 4
dd 0x1BADB002
dd 0x00
dd - (0x1BADB002 + 0x00)

global start

extern _main


stack_space:

times (510 -($-$$)) db 0x00
dw 0xAA55
Вот тут я использую дериктиву org, но при исполнении команды
nasm -f elf32 boot.asm -o boot.o
Я получаю ошибку: error: unrecognized directive [org]
Я меняю флаг команды место elf32 на bin и мне пишет ошибку что binary output format does not support external references
Можете подсказать как я могу сделать бинарный файл для qemu и с возможностью добавить дерикторию org и внешние подключения?

26 ответов

107 просмотров

ORG 0 BITS 32

1. Синтаксис не такой 2. Куда ты в бинарник символ extern засунешь? Это только для обьектников. Использовал бы ты FASM... Эх.

Ты по-сути определись, тебе extern нужен, или org. Если org - тогда всё на ассемблере писать будешь, либо на С напишешь ядро в виде бинарника, и напишешь загрузчик на ассемблере, который этот бинарник будет подгружать. А потом можно и склеить. Если extern - тогда готовь конфиг линковщика, чтобы свой обьектник в бинарник залепить. И в том же конфиге пропишешь лепку ядра. Дааа... А вот если бы ты на FASM писал...

Вот этих section не было бы, вообще код был бы красивее, удобнее, компиляция была бы проще (всё не флагами передаётся, а прямо в коде прописывается), и вообще всё круто было бы.

вы были бы защищены в чате от обвинения в ереси, за "неправильные" суждения :)

Mixail Frolov
вы были бы защищены в чате от обвинения в ереси, з...

При чём тут это? Я предлагаю лучший вариант. Но не заставляю. Пусть хоть на TASM пишет. А ещё лучше - на GAS вообще. 😁

КТ315
При чём тут это? Я предлагаю лучший вариант. Но не...

по газу в осдев вики вроде как есть хорошее описание на загрузчик

Это не конфиг... Даааааааа, это тебе в чат по OSDev. Долгий путь тебе предстоит, тормозок готовь.

Недолгое время я был в их числе...

Да.

КТ315
Это не так плохо.

Да, не худший вариант из возможных

The Bird of Hermes
Да, не худший вариант из возможных

Я на MASM тоже писал, мне вот понравилась IDE, написанная на MASM, для разработки кода на MASM, в виде Delphi. Открываешь, и там тебе сразу форму дают, лепишь кнопочки, и вот тебе программа на ассемблере. Прикольно. Но на FASM всё же лучше, да и вообще с нуля писать окно лучше, чем лепить в редакторе форм.

а зачем? на логику больше времени уйдёт, а набросать и в vb6 можно

Mixail Frolov
а зачем? на логику больше времени уйдёт, а наброса...

Ну просто все эти мучения с координатами не очень приятны, а в конструкторе привязки есть

Так это простейшая математика. X = (ширина_окна/2)-(ширина_кнопки/2) Можно макрос сделать.

В OSDev иди, там есть готовый пример, называется "Bare Bones".

The Bird of Hermes
Ну просто все эти мучения с координатами не очень ...

Если понять логику, можно вручную как раз даже быстрее писать. В уме просто представляешь окно это, и что тебе надо сделать. Чтобы по центру - делишь ширину на 2, делишь кнопку на 2, и это начальная позиция — её центр ляжет ровно в центр по ширине окна (потому что на 2 поделили). С Y аналогично. Чтобы чуть ниже вторую кнопку положить - аналогично получаешь начальную позицию по центру, и по Y прибавляешь размер предыдущей кнопки+небольшой отступ, готово. Вот тебе 2 кнопки красивенькие. Можешь первую кнопку вверх чуть поднять по Y, чтобы они обе по центру лежали.

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта