All streams
Search
Write a publication
Pull to refresh
0
0.1
Перикл Фемиди @pfemidi

Домосед

Send message
А если официально разлочить бутлоадер (последние модели самсунгов позволяют сделать это официально, через меню), то Knox уходит безвозвратно? И его после уже никак не вернуть?
Да, привычки, согласен. Но раз в массовость вошло, раз с младых ногтей учат что приёмник слева, а источник справа, то это значит что это уже лет с пяти как минимум именно интуитивно. Не знаю как там у тех кто пишет справа налево (арабы, евреи и т.д.), но у всех остальных интуитивно «i = 5», а не «5 = i».
Ну да, согласен. Про int 18h я как-то забыл уже. Посыпаю голову пеплом.
Либо грузит OS, либо пишет «Press any key to reboot...», ждёт любую клавишу и делает jmp 0xf000:0xfff0. Просто зависать ему негоже.
Вот именно, на интуитивном уровне. Интуитивно как раз и ожидается что «i = 5», а не «5 = i».
Я же говорил:
У ассемблера именно x86...

И речь тут не идёт про процессоры с r0...r15. Вернее про DEC'овские процессоры. Потому как на ARM тоже r0...r15, но там направление приёмник-источник тоже привычное большинству народа, как на x86, i.e. сначала приёмник, а после источник. Привычное именно большинству народа сейчас, а не малой кучке динозавров (правда я и сам не молод), которые начинали с DEC ALGOL, COBOL, PL/I и им привычнее сначала источник, а после приёмник.
У ассемблера именно x86 есть только один правильный вариант написания и это от Intel. Наличие же вырвиглазного синтаксиса AT&T это прихоть GNU'шно-DEC'овского мира, которые почему-то считают (тут перехожу на high level language) что «int 5 = i;» это более естественно чем «int i = 5;»
Про линковщик в примере на C:

• test.elf: имя входного файла (соответствующий платформе формат хранения исполняемых файлов. Windows: PE, Linux: ELF)
• -o: генерация объектного кода.
• test.o: имя выходного файла объектного кода.

слова «входной» и «выходной» надо бы поменять местами.
В данном случае оригинальные названия идентификаторов никак не восстановить. Но зачем нужны именно оригинальные названия идентификаторов? Если сам код, вся логика и работа всё равно получается полностью аналогичные оригинальному? Какая разница что в оригинале переменная называлась j, а тут согласно логике её обозвали i?
Не только из-за них. Появляются программы, которым вынь да положь что-то посвежее иначе они вообще отказываются работать. Вот и приходится. Пока держусь на Windows Seven, которую всеми правдами и неправдами сделал похожей на XP в части UI и с ужасом думаю что когда-нибудь придётся переползать на этот ужасный UI Windows 10, на который смотреть без крови из глаз невозможно.
Где-то я подобное уже видел… Точно, sickfar уже публиковал свой цикл OS1: примитивное ядро на Rust для x86 в марте прошлого года. И тоже активно ссылался на блог Филиппа Оппермана.
Что-то мне это напоминает, эта «наивысшая надёжность»… Подумал и вспомнил.
enum Result<T, E> {
    Ok(T),
    Err(E),
}

Это же Rust'овский метод работы с возвращаемыми значениями!
Как минимум того, что он только для Windows.
Но «Build your own X» есть везде. Я как только вижу что первый в очередном списке «ценных GitHub-репозиториев» это «Build your own X», так сразу же deja vu и возникает.
Или у меня глюк, или список одних и тех же (с небольшими изменениями) «ценных GitHub-репозиториев» я вижу на хабре практически каждый месяц.
А версию 1.45.2, вышедшую почти неделю назад, 3 августа, так и не анонсировали.
pfemidi:
Там же есть исполняемые файлы :-) Правда только под Windows. Поэтому я тоже не смог посмотреть Mash в действии.

Под wine Mash IDE не пошло, позволило создать простейший hello.mash:

uses <crt>

proc main():
    println(“Hello world!”)
end


но при попытке его откомпилировать выдало штук 10 абсолютно пустых окон «Error» без какого-либо содержимого в них и зависло. Выручил pkill на процесс wine.

Вызов:

./mashc.exe hello.mash hello.out

создал мне hello.out с набором команд какого-то судя по всему внутреннего ассемблера:

[...]
word vtable__methodname 41
word vtable__methodaddr 42
@global.arg_counter
@global.this
@global.temp
word global.zero 0
word global.one  1
str global.raised "ERaisedException"
pushc global.zero
peek  global.arg_counter
pop
[...]


Попробовал напустить на него:

./asm.exe console hello.out hello

в результате создался бинарник hello, но что с ним делать дальше ума не приложу, svmc без параметров просто выводит:

./svmc.exe
MASH!
Stack-based virtual machine.
Version: 0.2
Using: svmc.exe <svmexe file> [args]


а будучи запущен с параметром, с этим самым hello:

./svmc.exe hello

вообще ничего не делает, просто запускается, ничего не пишет и вываливается обратно в терминал.
В доке написано:
Циклы while & whilst

Это самые обычные циклы while, только у whilst — проверка условия осуществляется после итерации цикла.

То есть насколько я понял whilst делает то же самое, что и repeat...until во Free Pascal и Delphi. Ну а while аналогичен while из Free Pascal и Delphi.

Information

Rating
3,996-th
Location
Москва и Московская обл., Россия
Registered
Activity