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

Как вам идея сделать ассемблер с наполовину-сишным синтаксисом? типа, блин,

я не совсем правильно выразилась, сейчас пример кода скину

78 ответов

35 просмотров

C-- уже есть, не надо такого "хорошего" языка

Vi-Chapmann Автор вопроса
Vi-Chapmann Автор вопроса

Вот пример: #format elf64 executable // example macro #macro return rval { mov rax, rval mov rsp, rbp pop rbp ret } #global _start #extern print #section .text _start: // comments like in C, and prepcommands like in C, follows "#" mov rsp, -7 // set up the stack. u can not to define opsize if it can be calculated push 0 // u can define opsize by adding it's letter in end of operation. /* opsizes: * ...b - byte * ...w - word * ...d - dword * ...p - pword/fword * ...q - qword * ...t - tword */ call main add rsp, 8 // clear stack mov rbx, rax // status code from `main' return mov rax, 0 // sysfn int 0x80 // syscall main: push rbp add rsp, rbp // u can point to register without percent symbol sub rsp, 8 // reserve space for locals // example prep constant #define local0 [rsp] movq local0, const_0 // push constant value // the good example of opsize definition push local0 // you should not define opsize for push, it is constant call print add rsp, 8 return 0 #undef local0 #section .rodata const_0: sb "Hello, World!\n\0" // u can use escseqs in strings directly #section .bss

Vi Chapmann
Вот пример: #format elf64 executable // example ...

Препроцессор с комментариями и эскейпы в строках уже есть в gas. Заменить # на точку, и будет совсем gas.

Vi-Chapmann Автор вопроса
s54820
Препроцессор с комментариями и эскейпы в строках у...

нет. во-первых, регистры в газе нужно указывать с %, во-вторых, нужно всегда указывать опсайз, причём с нестандартизированными именами, например dword = long, что вообще не катит. и ещё много такого.

Vi Chapmann
нет. во-первых, регистры в газе нужно указывать с ...

ставишь интел синтаксис и не нужно указывать

Vi-Chapmann Автор вопроса
Mixail Frolov
ставишь интел синтаксис и не нужно указывать

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

Vi-Chapmann Автор вопроса
Mixail Frolov
ставишь интел синтаксис и не нужно указывать

к тому же это не единственный аргумент

Vi Chapmann
нет. во-первых, регистры в газе нужно указывать с ...

Добавлю про дворд. Тут ещё неизвестно, что более стандартизированное. В армах дворд 64 бита, поначалу очень неудобно.

а в некоторой древности слово вообще может быть 36 бит

Vi-Chapmann Автор вопроса

блин мы о текущей реальности говорим

это про тушу мамонта, которого уж лет 20 выкинуть хотят?

Vi Chapmann
блин мы о текущей реальности говорим

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

Mixail Frolov
а в некоторой древности слово вообще может быть 36...

Чарльз Мур под старость выкинул фортель. Видите ли у него в процессоре 18 битные регистры.

Vi-Chapmann Автор вопроса
Mixail Frolov
это про тушу мамонта, которого уж лет 20 выкинуть ...

поэтому куча софта ещё на х86? оси, проги, да много всего. туша только что убитого мамонта, когда научились разводить скот, тогда уж

Vi-Chapmann Автор вопроса
Aiwan \ (•◡•) / _bot
хм. а как часто реально используются при программ...

1. в самописных осях - обычное дело, это literally инструкция процессора такая, не я её придумала 2. нет, совершенно. я и в других ассемблерах могу с ними работать

Vi Chapmann
1. в самописных осях - обычное дело, это literally...

спрошу по другому. какой % от всего кода что пишется на асме занимает работа с тиблицами? (как много опроектов ОС?)

Vi-Chapmann Автор вопроса
Aiwan \ (•◡•) / _bot
спрошу по другому. какой % от всего кода что пишет...

много. и эти инструкции всегда пишутся на асме. даже если это инлайн в С/С++, это всё ещё асм.

Vi-Chapmann Автор вопроса
Vi-Chapmann Автор вопроса

и ты игнорировал тот факт, что в высокоуровневых языках нет работы с таблицами, она пишется на асме

Vi Chapmann
и ты игнорировал тот факт, что в высокоуровневых я...

Три строки с инлайн-асмом на проект. Плюс ещё всякая мелочь, строк 50 всего.

Aiwan \ (•◡•) / _bot
спрошу по другому. какой % от всего кода что пишет...

могу сказать так, в ос, в которой всё пытаюсь нормально переделать, таблицы используются 3(4) раза: инициализация реалмод, протектмод, переключение контекста и при создании потока для tls

Mixail Frolov
могу сказать так, в ос, в которой всё пытаюсь норм...

ага. "теперь для удобного написания надо написать свой асм с сишным препроцессором"

Vi-Chapmann Автор вопроса
Aiwan \ (•◡•) / _bot
ага. "теперь для удобного написания надо написать ...

и почему бы и нет? если это удобно, то зачем заранее отказываться от самого концепта?

эти инструкции скоро сам интел будет выпиливать вмести со всем 16битным режимом

Vi-Chapmann Автор вопроса
Mixail Frolov
эти инструкции скоро сам интел будет выпиливать вм...

ну так настройка таблиц есть не только при переходе из реалиода в протмод

Vi Chapmann
и почему бы и нет? если это удобно, то зачем заран...

карты в руки, мне лишь не понятна концепция всего этого действия, вот и попросил более подробней описать словами перспективу всего этого

Vi-Chapmann Автор вопроса

нет. это далеко не единственное отличие. прошу быть в контексте, прежде чем писать необдуманное.

Vi-Chapmann Автор вопроса
s54820
А что ещё, кроме решёточек?

префиксы стандартизированы, пуш всегда пуш, дае когда просто число кладёшь, препроц мощный, на уровне fasm, синтаксис схожий с С - лично моя пререгатива

Vi Chapmann
префиксы стандартизированы, пуш всегда пуш, дае ко...

а пример хелловорда можно как это будет выглядеть?

Vi-Chapmann Автор вопроса
Aiwan \ (•◡•) / _bot
а пример хелловорда можно как это будет выглядеть?

да, если никто не против, напишу его для x86 realmode MBR

Vi-Chapmann Автор вопроса
Aiwan \ (•◡•) / _bot
а потом для win32 х86

думаю, одного примера хватит. + я не на винде

Vi-Chapmann Автор вопроса
s54820
screenshot То есть gas :-D

здесь у всех в привычке читать только первый аргумент?

Vi Chapmann
здесь у всех в привычке читать только первый аргум...

Макросы в gas есть свои плюс ещё сишный препроцессор сверху.

🦝 Katowski Kotovsky
Чарльз Мур под старость выкинул фортель. Видите ли...

Это может быть совершенно нормальным и оправданным современным решением, но мне интересно про какую именно машину речь

шутка? да вроде нет. есть такой компиль

Aiwan \ (•◡•) / _bot
шутка? да вроде нет. есть такой компиль

Блин, я хотел когда-то изобрести такой, чтоб он был чем-то средним между ассемблером и си, а оказалось что уже есть, блин ( С-- был шуткой которую придумал я, а оказалось что реальность другая, что не солнце крутиться вокруг планеты, а планета вокруг солнца (

Неплохая идея, это может даже дать "новую" жизнь ассемблеру.

123
Неплохая идея, это может даже дать "новую" жизнь а...

А если будет яп который на половину будет питоном и ассемблером, то это вообще взорвет интернет.

Тогда появиться фраза "сишние ставки в ассемблере"

Vi-Chapmann Автор вопроса
HappyUser
Так СиПайтон уже есть

CPython - это и есть питон. мб имеется в виду Cython?

123
А если будет яп который на половину будет питоном ...

По производительности, есть язык Nim. Я его хотел изучить но забросил. Декларирует красоту Python и скорость Си.

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

Идея не взлетает на этапе обсуждения типизации.

The Bird of Hermes
Дело не в его идее, дело в нём

Нет, дело в самом проекте. Там ни капли не реализовано из того, что написано. Там просто интерпретатор с синтаксисом языка ассемблера на интерпретируемом языке - Javascript. Вопрос: много низкоуровневых проектов на таком сможете реализовать?

The Bird of Hermes
Дело не в его идее, дело в нём

Ну незнаю, я с этим челом в лс общался, вроде норм.

КТ315
Нет, дело в самом проекте. Там ни капли не реализо...

Ну. Дело в том, что тот, кто реализовывал проект, понятия не имел, что он делает

123
Ну незнаю, я с этим челом в лс общался, вроде норм...

Я общался и в ЛС, и в его чатах. Может он в какой-то там повседневной жизни норм чел, не отрицаю. Но знает он о низком уровне ровным счётом ничего. Я бы сказал, что знания у него даже отрицательные

The Bird of Hermes
Не вижу никакой красоты в питоне

Это неважно. Там суть была в форматмровани отступами.

🦝 Katowski Kotovsky
Он говорил про процессор GA144

А, почитал, да, там совсем странная штуковина

Хорошо, что не скорость python и безопасность си

123
Хотя на такое смотрели бы негативом, вот например ...

Его начали хейтить, потому что он даже близко в теме не разбирался, нёс полную чушь и заспамил все чаты

Alex
Его начали хейтить, потому что он даже близко в те...

Не разобрался, не разбирается и не разберётся в будущем)

Alex
Хорошо, что не скорость python и безопасность си

Си опасен лишь если не уметь использовать как и любой язык... хотя о паддинги я один раз обжегся((

すずは
Си опасен лишь если не уметь использовать как и лю...

Большинство людей (даже сишников) не умеет.

The Bird of Hermes
Ассемблер куда опаснее си)

Смотря в чём. В ассемблере ты всегда явно можешь увидеть проблему. В С - нет.

123
Хотя на такое смотрели бы негативом, вот например ...

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

123
Ну незнаю, я с этим челом в лс общался, вроде норм...

а я с ним в чате кос общался, после того как он нам своё подолее хотел всучить, поспрашивал вопросики по самому языку, он нифига не ответил нормально, зато затребовал ноду в систему, чтобы его чудо работало

КТ315
Смотря в чём. В ассемблере ты всегда явно можешь у...

Ну в си несколько сложнее влезть не туда

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта