Совершено верно. Для этого надо понимать, что делает код и осилить 2000 страниц стандартаЯ в курсе, я о том, что при разработке нужно в первую очередь думать о корректной работе софта, а не о скорости исполнения или количестве аллокаций.
Совершено верно. Для этого надо понимать, что делает код и осилить 2000 страниц стандартаЯ в курсе, я о том, что при разработке нужно в первую очередь думать о корректной работе софта, а не о скорости исполнения или количестве аллокаций.
Охренел с рекомендации - изучать досовский асм. Это вообще как? Это все равно что совет изучать линуксовский ц++. Писец такое увидеть на ночь глядя. Почему то, вспомнился наш любимый Инде, который в каком то из инсепшенов лет наверное 5 назад пизданул что стоит сосредоточить усилия на изучении архитектуры х64 потому что за ней будущее.Решил запилить некий "roadmap" из статьи Кваки, приправив своими никому не нужными пунктами. На мой взгляд, получилось миленько.
Помимо документа здесь, я закинул еще на мегу, может кому-то пригодится без ватермарки.
Посмотреть вложение 30729
До вас даже не дошло. Хорошо разжую - асм это язык программирования, сильно зависит от архитектуры процессора, бывает асм например для зилог80, НО НЕ БЫВАЕТ асм под дос, виндовс и тд, асм это асм, операционка это операционка. Мягкое и теплое не надо путать. Код на асме под винду на арм будет сильно не похож на код на асме под ту же винду на х64. Конструктивное предложение - думайте прежде чем давать советы. Про расширения команд для нт даже спросить боюсь, че это такое.Врывайся сразу в NT со всеми возможными расширениями команд, что уж там. Если есть более конструктивные предложения или критика, а не приплетание анклавозависмого - милости прошу, я не против.
То есть, мой поясняющий пример про линуксовский ц++ вам через монитор тоже не почитался. Допереть имхо было не сложно но вы не справились, наверное n времени не хватило. Давайте уже жгите про расширения осемблерных команд в NT, будем врываться и поднимать скилл.Не обязан читать ваши мысли через монитор, да и не умею я, вроде.
Изначально имелось ввиду изучение асма, тыкая его палкой в досовском эмуляторе. Конечно, я извиняюсь, если возникли недопонимание в этом плане, тут тоже моя оплошность. Однако, до этого можно (как я думаю) допереть самому через n кол-во времени.
Странная придирка, конечно.
Да ладно не парься, я же так по дружески. А вообще за совет кодить на асме под дос надо бить.Ну и душнила же ты, друг![]()
На самом деле - довольно таки хорошее предложение, если человек банально не сможет осилить хотя бы минимальные знания о том как устроены программы на Dos написанные на ASM (хотя бы на уровне работы с регистрами 8/16/32 (64 - можно для начала оставить в покое)) то ему совсем не следует лезть в написание Malware и засорять рынок низкокачественным ПОДа ладно не парься, я же так по дружески. А вообще за совет кодить на асме под дос надо бить.
НО НЕ БЫВАЕТ асм под дос, виндовс и тд, асм это асм, операционка это операционка.
Чьорт, я это не только помню, но и юзал активно...Не буду устраивать холиваров тем более что не с кем. Ну какие могут быть холивары с теми кто советует откопать говно мамонта что то под него делать, откопать мёртвые компиляторы, откопать мёртвые отладчики, дайте ка вспомню что я там юзал под досом - turbo debugger, avputil.com, deglucker, последний кстати мог в прот моде даже как то работать но корявенько, ах да вроде и софт айсом можно было что то делать, и вроде бы как даже в dos dpmi(int31h) он себя норм чувствовал.
Ну так не проходите мимо, пните умных советчиков. Ведь реально надо пиздить за такие советы.Чьорт, я это не только помню, но и юзал активно...
Ещё "удалось" недавно пощупать Open Watcom Debugger. После Olly и x64dbg - это было больно.
Какой ассемблер посоветуете учить, после С? В интернетах вроде хорошие отзывы о FASM. По масму кстати недавно книга вышла "The Art of 64-Bit Assembly", через нее можно выучить современный масм, а не под досИ да не используйте масм, это во первых говно, во вторых дохлое.
Фасм. Но фасм\масм это не ассемблеры а компиляторы. Ц изучать не советую, учите плюсы не тратьте время на то что давно устарело.Какой ассемблер посоветуете учить, после С? В интернетах вроде хорошие отзывы о FASM. По масму кстати недавно книга вышла "The Art of 64-Bit Assembly", через нее можно выучить современный масм, а не под дос
в каком месте масм дохлый? Я лично за масм. В фасме плюс в более мощном макроязыке, и только.И да не используйте масм, это во первых говно, во вторых дохлое.
А еще фасм идет с сорцами и умеет вот так =)в каком месте масм дохлый? Я лично за масм. В фасме плюс в более мощном макроязыке, и только.
уметь то умеет, вопрос в том, где оно нужно, кроме HG ?и умеет вот так =)
AT&T синтаксис в GAS'е - вот это тошнотная херня, а разница в синтаксисах других ассемблеров не настолько критичны. На да, я за FASM, тк зачем выбирать меньшее, если можно выбрать большее.Масм синтаксис тошнотен, но это конечно вкусовщина
Ну камон, ещё раз повторюсь, изучать асм под Дос - исключительно для того что бы понять как всё работает, офк дальше нужно смотреть на актуальную версию win и смотреть как там всё прямо сейчас дергается в WinApi/Nt/etc...И да не используйте масм, это во первых говно, во вторых дохлое.
То есть речь о проектах, где существенная часть реализована на Си или Плюсах. Разве интринсики https://docs.microsoft.com/en-us/cp...-listing-of-intrinsic-functions?view=msvc-160 не покрывают 99% в подобных сценариях? На асме получается несколько файликов, так там не важно, какой синтакисис, надо будет, так и GNU as сойдет. К примеру, в ontl из более 100 тысяч строк всего 95 в файлах *.asm. Это не малвара, но достаточно низкоуровневая библиотека, реализует в т.ч. рантайм плюсов (правда, несколько устаревшего стандарта).1. интеграция с visual studio, берешь и пишешь там асм код, а студия компилирует. Да, понятно что можно слинковать и фасмовский объектник, но все же масм тут удобней.
.386
.model flat
?catchguardhandler@cxxrecord@cxxruntime@ntl@@SA?AW4disposition@exception@nt@3@PAUrecord@563@PAUregistration@563@PAUcontext@63@PAUdispatcher_context@563@@Z PROTO SYSCALL
.safeseh ?catchguardhandler@cxxrecord@cxxruntime@ntl@@SA?AW4disposition@exception@nt@3@PAUrecord@563@PAUregistration@563@PAUcontext@63@PAUdispatcher_context@563@@Z
; Example of making 32-bit PE program as raw code and data
format PE GUI
entry start
section '.text' code readable executable
start:
push 0
push _caption
push _message
push 0
call [MessageBoxA]
push 0
call [ExitProcess]
section '.data' data readable writeable
_caption db 'Win32 assembly program',0
_message db 'Hello World!',0
section '.idata' import data readable writeable
dd 0,0,0,RVA kernel_name,RVA kernel_table
dd 0,0,0,RVA user_name,RVA user_table
dd 0,0,0,0,0
kernel_table:
ExitProcess dd RVA _ExitProcess
dd 0
user_table:
MessageBoxA dd RVA _MessageBoxA
dd 0
kernel_name db 'KERNEL32.DLL',0
user_name db 'USER32.DLL',0
_ExitProcess dw 0
db 'ExitProcess',0
_MessageBoxA dw 0
db 'MessageBoxA',0
section '.reloc' fixups data readable discardable ; needed for Win32s
Вон те две строчки выше входят в множество "всё"... и? Как же оно работает?Ну камон, ещё раз повторюсь, изучать асм под Дос - исключительно для того что бы понять как всё работает
; fasm example of writing 16-bit COM program
org 100h ; code starts at offset 100h
use16 ; use 16-bit code
display_text = 9
mov ah,display_text
mov dx,hello
int 21h
int 20h
hello db 'Hello world!',24h