я не совсем правильно выразилась, сейчас пример кода скину
C-- уже есть, не надо такого "хорошего" языка
не, не такой, меня неверно поняли
Вот пример: #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
Препроцессор с комментариями и эскейпы в строках уже есть в gas. Заменить # на точку, и будет совсем gas.
нет. во-первых, регистры в газе нужно указывать с %, во-вторых, нужно всегда указывать опсайз, причём с нестандартизированными именами, например dword = long, что вообще не катит. и ещё много такого.
ставишь интел синтаксис и не нужно указывать
это скорее костыль. речь идёт о том, что включено по умолчанию
к тому же это не единственный аргумент
Добавлю про дворд. Тут ещё неизвестно, что более стандартизированное. В армах дворд 64 бита, поначалу очень неудобно.
речь о х86 бтв
а в некоторой древности слово вообще может быть 36 бит
блин мы о текущей реальности говорим
это про тушу мамонта, которого уж лет 20 выкинуть хотят?
хм. а как часто реально используются при программировании те таблицы про которые ты гворишь? не уж то эта вся идея существует чтоб осуществить твои потребности работы с таблицами?
Чарльз Мур под старость выкинул фортель. Видите ли у него в процессоре 18 битные регистры.
поэтому куча софта ещё на х86? оси, проги, да много всего. туша только что убитого мамонта, когда научились разводить скот, тогда уж
1. в самописных осях - обычное дело, это literally инструкция процессора такая, не я её придумала 2. нет, совершенно. я и в других ассемблерах могу с ними работать
спрошу по другому. какой % от всего кода что пишется на асме занимает работа с тиблицами? (как много опроектов ОС?)
много. и эти инструкции всегда пишутся на асме. даже если это инлайн в С/С++, это всё ещё асм.
а вбей 'asm' и дай скрин
всё ещё много
и ты игнорировал тот факт, что в высокоуровневых языках нет работы с таблицами, она пишется на асме
Три строки с инлайн-асмом на проект. Плюс ещё всякая мелочь, строк 50 всего.
могу сказать так, в ос, в которой всё пытаюсь нормально переделать, таблицы используются 3(4) раза: инициализация реалмод, протектмод, переключение контекста и при создании потока для tls
ага. "теперь для удобного написания надо написать свой асм с сишным препроцессором"
и почему бы и нет? если это удобно, то зачем заранее отказываться от самого концепта?
эти инструкции скоро сам интел будет выпиливать вмести со всем 16битным режимом
ну так настройка таблиц есть не только при переходе из реалиода в протмод
карты в руки, мне лишь не понятна концепция всего этого действия, вот и попросил более подробней описать словами перспективу всего этого
нет. это далеко не единственное отличие. прошу быть в контексте, прежде чем писать необдуманное.
А что ещё, кроме решёточек?
префиксы стандартизированы, пуш всегда пуш, дае когда просто число кладёшь, препроц мощный, на уровне fasm, синтаксис схожий с С - лично моя пререгатива
а пример хелловорда можно как это будет выглядеть?
да, если никто не против, напишу его для x86 realmode MBR
а потом для win32 х86
думаю, одного примера хватит. + я не на винде
здесь у всех в привычке читать только первый аргумент?
Макросы в gas есть свои плюс ещё сишный препроцессор сверху.
Это может быть совершенно нормальным и оправданным современным решением, но мне интересно про какую именно машину речь
Он говорил про процессор GA144
шутка? да вроде нет. есть такой компиль
Блин, я хотел когда-то изобрести такой, чтоб он был чем-то средним между ассемблером и си, а оказалось что уже есть, блин ( С-- был шуткой которую придумал я, а оказалось что реальность другая, что не солнце крутиться вокруг планеты, а планета вокруг солнца (
Неплохая идея, это может даже дать "новую" жизнь ассемблеру.
А если будет яп который на половину будет питоном и ассемблером, то это вообще взорвет интернет.
Так СиПайтон уже есть
Тогда появиться фраза "сишние ставки в ассемблере"
CPython - это и есть питон. мб имеется в виду Cython?
По производительности, есть язык Nim. Я его хотел изучить но забросил. Декларирует красоту Python и скорость Си.
Хотя на такое смотрели бы негативом, вот например чел который придумал asmx и пытался добиться этаки симбиоза между ассемблером и высокоур яп, но его начали люто хейтить, по этому идея такая себе.
Идея не взлетает на этапе обсуждения типизации.
Дело не в его идее, дело в нём
y него вообще низкоуровнего не было, там "asm" был на джс написан
Нет, дело в самом проекте. Там ни капли не реализовано из того, что написано. Там просто интерпретатор с синтаксисом языка ассемблера на интерпретируемом языке - Javascript. Вопрос: много низкоуровневых проектов на таком сможете реализовать?
Ну незнаю, я с этим челом в лс общался, вроде норм.
Ну. Дело в том, что тот, кто реализовывал проект, понятия не имел, что он делает
Ну есть такое, да.
Я общался и в ЛС, и в его чатах. Может он в какой-то там повседневной жизни норм чел, не отрицаю. Но знает он о низком уровне ровным счётом ничего. Я бы сказал, что знания у него даже отрицательные
Не вижу никакой красоты в питоне
Это неважно. Там суть была в форматмровани отступами.
А, почитал, да, там совсем странная штуковина
Хорошо, что не скорость python и безопасность си
Его начали хейтить, потому что он даже близко в теме не разбирался, нёс полную чушь и заспамил все чаты
Не разобрался, не разбирается и не разберётся в будущем)
Си опасен лишь если не уметь использовать как и любой язык... хотя о паддинги я один раз обжегся((
Ассемблер куда опаснее си)
Большинство людей (даже сишников) не умеет.
Смотря в чём. В ассемблере ты всегда явно можешь увидеть проблему. В С - нет.
его за другое начали хейтить, он сделал полную хрень которую везде пропихнуть хотел, не зная нифига.
а я с ним в чате кос общался, после того как он нам своё подолее хотел всучить, поспрашивал вопросики по самому языку, он нифига не ответил нормально, зато затребовал ноду в систему, чтобы его чудо работало
node.js: KolibriOS port 💀
Ну в си несколько сложнее влезть не туда
Обсуждают сегодня