LINUX.ORG.RU

hello word без компилятора

 


6

3

здрасьте здрасьте люди добрые. научите пожалуйста, что нужно чтобы написать программку в двоичном коде и запустить ее на выполение без обработки компилятором. в каком формате должен быть исполняемый файл?


 10e88 15000000 00000000 00000000 00000000  
 10e98 03000000 00000000 e80f0100 00000000  
 10ea8 02000000 00000000 60000000 00000000  
 10eb8 14000000 00000000 07000000 00000000

или так не получится?

Ответ на: комментарий от Assembler

говорили что это не нужно. видимо file.img в нем наш код написанный нулями и единицами и заливает на ssd с помощью dd. что не так я сделаю если поступлю таким образом?

Это слишком долгий и окольный путь размещения нужного кода в RAM, доступной процессору. Вы пытаетесь с помощью сторонних программ записать байты на SSD, вместо того, чтобы напрямую писать в RAM.

Как будто Вы пишете в тетрадке или на листочке контрольную, сдаёте на проверку, и через неделю узнаёте, что что-то пошло не так.

Пульт с тумблерами и лампочками был бы намного лучше для обучения. Сразу можно выполнить нащёлканную тумблерами инструкцию и увидеть, как она сработала.

vM ★★
()
Ответ на: комментарий от vM

Пульт с тумблерами и лампочками был бы намного лучше для обучения. Сразу можно выполнить нащёлканную тумблерами инструкцию и увидеть, как она сработала.

А есть эмулятор такого компуктера? Я вот только для БЭСМ-6 видел

luke ★★★★★
()
Ответ на: комментарий от Assembler

Я бы лично рекомендовал попробовать в DOSBox поиграться с debug программой.

Вот примерное описание: https://montcs.bloomu.edu/Information/LowLevel/DOS-Debug.html

Тут по-идее можно RAM самому в hex-кодах менять и запускать своё творчество

luke ★★★★★
()
Ответ на: комментарий от Assembler

я не знаю как его туда поместить без OC.

А Вы на SSD без ОС собрались записывать? Главное – то, что нужный Вам код в оперативную память записывает Ваша программа. А она всегда выполняется в определённой программно-аппаратно-микропрограммной среде в архитектурных рамках ISA и ABI этой платформы.

vM ★★
()
Ответ на: комментарий от X512

После прошивки от автора топика — только программатор

Ни разу ещё не видел, как ТС что-то вообще доводил до хоть какого-нибудь завершения.

luke ★★★★★
()
Ответ на: комментарий от vM

А Вы на SSD без ОС собрались записывать?

ну да. ssd будет пустым. занулю его. после возьму переходник подключу зануленый ssd к usb другого пк c LINUX найду зануленый ssd в

lsblk
и запишу с помощью dd. програмку с машиннном коде и после воткну ssd в ПК и включу питание.

Assembler
() автор топика
Последнее исправление: Assembler (всего исправлений: 2)
Ответ на: комментарий от luke

ты в прошлый-то раз без OS запустил свой хеллоуворлд?

да. но я же компилировал. и создавал загрузучную дискету. а сейчас совсем другой подход.

Assembler
() автор топика
Ответ на: комментарий от luke

А есть эмулятор такого компуктера? Я вот только для БЭСМ-6 видел

Для старомодных микропроцессоров, у которых шины торчат наружу, соорудить подобную консоль – дело техники https://www.youtube.com/watch?v=Q5LjkL5b4n8

vM ★★
()
Ответ на: комментарий от vM

А dd Вы разве будете выполнять без ОС?

ну вы уже спрашиваете лишь бы спросить...

я создам файл.

file.img
в нем будут машиные инструкции. у меня ПК и ноут. беру ssd из ноута подключаю его через переходник в usb к КП на котором установлен LINUX. зануляю ssd и после записываю на него
 dd if=file.img of=/dev/ssd(тот самый).
и включаю ноут. на ssd не будет OC. там будут мои машинные инструции.

Assembler
() автор топика
Ответ на: комментарий от Assembler

Т.е. это упражнение не столько по программированию, сколько по развёртыванию на целевой машине без ОС кода, созданного на инструментальной машине, на которой работает линукс? И если бы целевая машина умела загружаться по сети, Вы бы могли загрузочный код выкладывать куда-то на TFTP?

vM ★★
()
Ответ на: комментарий от vM

это упражнение не столько по программированию, сколько по развёртыванию...

нет. это попытка научиться писать машинными инструкциями и без компилятора. я не говорю что это правильно. просто я так лучше пойму. записать код на ssd меня надоумили форумчане. перечитайте.

Assembler
() автор топика
Ответ на: комментарий от Assembler

это попытка научиться писать машинными инструкциями и без компилятора.

А что не так с компилятором? Или ты из секты тех, кто hello world напишет в машинных кодах лучше, чем компилятор, но ничего сложнее родить не может?

А тебя не пугает, что собрать комп типа твоего с нуля не может почти ни одно государство в мире? Где ты собрался запускать свои божественные программы лет через 5, когда у тебя школа закончится?

anonymous
()
Ответ на: комментарий от Assembler

да. но я же компилировал. и создавал загрузучную дискету. а сейчас совсем другой подход.

А что ты 4 месяца между двумя подходами делал? Уже можно было ядерные модули научиться писать или свой компилятор забабахать… А ты не осилил формат ELF и фанатично пытаешься сотворить какую-то дичь вместо попыток разобраться.

anonymous
()
Ответ на: комментарий от anonymous

А ты не осилил формат ELF

вам видней.

уже можно было ядерные модули научиться писать

в ядро я не полезу. пусть этим занимаются настоящие специалисты. это их заработок. мне же вот, hello world в машинных кодах. я уже все объяснил. просто вы не читали видимо.

Assembler
() автор топика
Ответ на: комментарий от Assembler

бесспорно. Но подумай о длине одной итерации. С эмулятором это 1 секунда, с реальным железом –минуты. А итераций этих тебе предстоит сотни если не тысячи, учитывая примитивность выбранных инструментов. И это при условии что ты в процессе не запорешь что-нибудь безвозвратно.

phoenix ★★★★
()
Ответ на: комментарий от vM

Например, в тех случаях,

так вот я и спрашиваю, что это за случаи, для которых нужно учитывать выравнивание в с++ ?

x905 ★★★★★
()
Ответ на: комментарий от x905

когда нужна максимальная производительность

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.