Гайд Немного про assembler

Начинающий
Статус
Оффлайн
Регистрация
22 Июл 2022
Сообщения
90
Реакции[?]
6
Поинты[?]
6K
я начинаю ток изучать чутка asm и C++.Решил выложить сюда эту тему.Раньше этого тут не видел и когда учил тут нечего не нашел .

add сложение через него можно менять флаги на примере знаю ток jz - jnz (jz вроде если 0 )
mov- так скажем помещает содержимое источника в приемник. флаги не меняет
приведу этого пример на python так как он легкий для понимания.
допустим есть переменная a=10
b=0
потом пишем mov b,a
cmp позволяет сравнивать. Вроде точно не знаю
Использоваться в этих случаях могут: Области памяти, регистры общего назначения, значения
push - помещает в стек
Стек - структура которая хранит важную информацию о программе.
На этом все .Не ругаите сильно я сам еще ток начинаю и написал все то что выучил
Забыл добавить регистры

EAX
ECX
EDX
EBX
ESP
EBP
ESI
EDI
EIP
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,605
Реакции[?]
607
Поинты[?]
48K
если тебе реально хочется выучить ассемблер - бери в руки godbolt.org и беги разбираться, например, как стек работает, и нахрена столько инструкций чтоб одну маленькую процедуру вызвать

а так молодец хвалю за врайтап
 
Начинающий
Статус
Оффлайн
Регистрация
22 Июл 2022
Сообщения
90
Реакции[?]
6
Поинты[?]
6K
если тебе реально хочется выучить ассемблер - бери в руки godbolt.org и беги разбираться, например, как стек работает, и нахрена столько инструкций чтоб одну маленькую процедуру вызвать

а так молодец хвалю за врайтап
ну я ток начинаю.И вот ошибка решил тут написать статью так как тут 0 про асм пишут почти.Спасибо за совет
 
Murasaki
Разработчик
Статус
Оффлайн
Регистрация
18 Мар 2020
Сообщения
430
Реакции[?]
869
Поинты[?]
205K
add сложение через него можно менять флаги на примере знаю ток jz - jnz (jz вроде если 0 )
ну эт не совсем флаги, это jz/jnz это прыжки с условием, aka jcc, но в целом да, add влияет на ефлаги
поизучай детально стек, ефлаги, и в целом для чего служит каждый регистр в х32
проще в учении было бы, если ты помимо теории подтягивал и практику, смотря на то, как инструкции влияют на другие регистры, стек, ефлаги и т.д.
 
Начинающий
Статус
Оффлайн
Регистрация
22 Июл 2022
Сообщения
90
Реакции[?]
6
Поинты[?]
6K
ну эт не совсем флаги, это jz/jnz это прыжки с условием, aka jcc, но в целом да, add влияет на ефлаги
поизучай детально стек, ефлаги, и в целом для чего служит каждый регистр в х32
проще в учении было бы, если ты помимо теории подтягивал и практику, смотря на то, как инструкции влияют на другие регистры, стек, ефлаги и т.д.
я ради практики решаю как рас каждый день разные крякми.Спасибо за советы
 
Начинающий
Статус
Оффлайн
Регистрация
22 Июл 2022
Сообщения
90
Реакции[?]
6
Поинты[?]
6K
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,605
Реакции[?]
607
Поинты[?]
48K
Начинающий
Статус
Оффлайн
Регистрация
8 Апр 2023
Сообщения
245
Реакции[?]
26
Поинты[?]
30K
вот ты ахуеешь когда узнаешь что и в режиме 64 битов используются 32 битные регистры
Вау, спасибо за объяснение. Думал в начале зарофлить про AX, но передумал, теперь вижу что зря (((
 
Начинающий
Статус
Оффлайн
Регистрация
7 Ноя 2023
Сообщения
28
Реакции[?]
18
Поинты[?]
21K
я начинаю ток изучать чутка asm и C++.Решил выложить сюда эту тему.Раньше этого тут не видел и когда учил тут нечего не нашел .

add сложение через него можно менять флаги на примере знаю ток jz - jnz (jz вроде если 0 )
mov- так скажем помещает содержимое источника в приемник. флаги не меняет
приведу этого пример на python так как он легкий для понимания.
допустим есть переменная a=10
b=0
потом пишем mov b,a
cmp позволяет сравнивать. Вроде точно не знаю
Использоваться в этих случаях могут: Области памяти, регистры общего назначения, значения
push - помещает в стек
Стек - структура которая хранит важную информацию о программе.
На этом все .Не ругаите сильно я сам еще ток начинаю и написал все то что выучил
Забыл добавить регистры

EAX
ECX
EDX
EBX
ESP
EBP
ESI
EDI
EIP
Ну, cmp просто из первого операнда вычитает второй и если результат вычитания 0 то zf 1 ну если не 0 то zf 0 отсюда и переходы jz ну и так далее
вот ты ахуеешь когда узнаешь что и в режиме 64 битов используются 32 битные регистры
О да 64 битный регистр rflags в котором старшие 32 бита тупо резервд, а младшие такие же как в eflags ВОТ ОН АХУЕЕТ ОТ ТАКОГО ДИФЕРЕНСА АРХИТЕКТУР
 
Сверху Снизу