Size: a a a

Ассемблер

2020 May 12

sl

skavy lastname in Ассемблер
Вопрос новичка, подскажите пожалуйста. При написании программы на ассемблере под windows, какие есть варианты перехвата вводимых символов с клавиатуры? Верно ли я понимаю, что кроме работы через WIN API вариантов как таковых нет?
источник

RM

Ricardo Milos in Ассемблер
Ребята, помогите пожалуйста. Завтра экзамен, а я до сих пор не понимаю задачи:
- рандомный генератор чисел (из изначально определенного числа чисел)
- мин, макс (integers)
- медиана
- средн знач
- сумма
- геометр сумма
И floats (сумма, ср знач)
Если не хотите мне обьяснять лично, скиньте пожалуйста инфу почитать, я сам разберусь. Я новичок в ассемблере, прошу не гневайтесь. Спасибо за понимание.
источник

A

Azrael in Ассемблер
skavy lastname
Вопрос новичка, подскажите пожалуйста. При написании программы на ассемблере под windows, какие есть варианты перехвата вводимых символов с клавиатуры? Верно ли я понимаю, что кроме работы через WIN API вариантов как таковых нет?
Ну для работы с системными функциями, скорее всего, ничего лучше Вы не найдёте
источник

sl

skavy lastname in Ассемблер
Azrael
Ну для работы с системными функциями, скорее всего, ничего лучше Вы не найдёте
Да я сейчас вычитал в книгах, что работать с аппаратурой на прямую можно в DOS, в windows уже есть ограничения - кольца, уровни привилегий.
источник

A

Azrael in Ассемблер
skavy lastname
Да я сейчас вычитал в книгах, что работать с аппаратурой на прямую можно в DOS, в windows уже есть ограничения - кольца, уровни привилегий.
Да, есть
источник

A

Azrael in Ассемблер
Но тут чат, не хакеров, а программистов
источник

A

Azrael in Ассемблер
Касательно ассемблера под хакинг читайте Касперски
источник

A

Azrael in Ассемблер
И ring изучайте
источник

sl

skavy lastname in Ассемблер
Azrael
И ring изучайте
А почему его?
источник

A

Azrael in Ассемблер
Не его, а их) Потому что кольца это как раз Ваш вопрос))
источник

sl

skavy lastname in Ассемблер
Azrael
Не его, а их) Потому что кольца это как раз Ваш вопрос))
понял, думал Язык Ring
источник

A

Azrael in Ассемблер
skavy lastname
понял, думал Язык Ring
Хехе, нет, конечно
источник

q

quavo in Ассемблер
вообще хотел поинтересоваться, для каких целей используете ассемблер?
источник

q

quavo in Ассемблер
я сюда пришел так, некоторые вопросы задать, т.к. по курсу  немного прохожу ассемблер и были вопросы
источник

q

quavo in Ассемблер
но вот интересно, что вообще люди делают
источник

A

Aleksandr in Ассемблер
этот вопрос тут часто задают
источник

A

Aleksandr in Ассемблер
кто-то для низкоуровневых операций и оптимизации, кто-то для развлечения
источник

ST

Saenro T in Ассемблер
Винде не обязательно знать в каком кольце она вертится😉
источник

A

Azrael in Ассемблер
quavo
вообще хотел поинтересоваться, для каких целей используете ассемблер?
По специальности (Кибербезопасность) часто сталкиваюсь с необходимостью оптимизаций, хаков и т.д.
+ ещё имею дело с микроконтроллерами, а Си не тру, поэтому Асм
источник

楽園松本 in Ассемблер
Ricardo Milos
Ребята, помогите пожалуйста. Завтра экзамен, а я до сих пор не понимаю задачи:
- рандомный генератор чисел (из изначально определенного числа чисел)
- мин, макс (integers)
- медиана
- средн знач
- сумма
- геометр сумма
И floats (сумма, ср знач)
Если не хотите мне обьяснять лично, скиньте пожалуйста инфу почитать, я сам разберусь. Я новичок в ассемблере, прошу не гневайтесь. Спасибо за понимание.
1) простейший генератор смотри здесь: https://ru.m.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D0%B3%D1%80%D1%83%D1%8D%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4;

2) min и max -- последовательно идём по массиву и проверяем каждое число -- оно больше чем max или меньше, чем min? Начальное значение для min = max = n[0];

3) медиана -- сортируем массив по возрастанию. Если массив имеет нечётное количество элементов, то берём центральный элемент med = n[size / 2], если чётное количество, то среднее med = (n[size / 2] + n[size / 2 + 1]) / 2;

4) среднее значение: суммируем все элементы и делим на size;

5) сумма - ну это ясно;

Регистр AX аккумулятор - в нём считаешь сумму add ax, [si].  SI - указывает на начало массива (mov si, offset array); не забываем увеличивать SI после каждой итерации (на 1 для байта; на 2 для слова - add si, 2). Регистр CX - количество повторений: mov cx, size.

Mov si, offset array (устанавливаем начало массива)
Mov ax, 0 (обнуляем аккумулятор)
Mov cx, size
Again:
 Add ax, [si]
 Add si, 2 (следующий элемент массива - слово)
 Loop Again (повторение)

Ret (конец программы)

Изучи div, mul, add, sub.
Cmp и ja / jb.
источник