Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Assembler Вывод символа и стек https://www.cyberforum.ru/ asm-beginners/ thread1778433.html
Есть стек с цифрами, который после выводятся на экран. Необходимо до этого вывода цифр вывести символ "-" (45-ый символ в ASCII), а так как стек работает с ESP-регистром, то print 45 поганит этот регистр. Как ещё можно вывести этот символ без последствий для стека? SASM+MASM.
Разность массивов Assembler
Надо написать код вычитания, но не смог дописать. Кто может помогите дописать Т.е. 18379752 - 9534218= ? unsigned char a={1,8,3,7,9,7,5,2}; unsigned char b={0,9,5,3,4,2,1,8}; unsigned char c={0,0,0,0,0,0,0,0}; main() { _asm{
Assembler "Сократить" код программы https://www.cyberforum.ru/ asm-beginners/ thread1777421.html
Доброй ночи, уважаемые форумчане) Написал я тут одну программку несложную, но мысль одна засела в голове и так и хочется найти ответ на неё) Так вот, есть некая программа (код внизу естесна:3), и есть замысел её упростить(может даже это невозможно, хз), но проблема упирается в то, что я не знаю как) Была задумка с проверкой каждой ячейки массива 80х25 на наличие такого же символа, что мы и...
Assembler В числе N поменять местами нулевой разряд с первым, второй с третьим и т.д. Например: 01000101 -> 10001010 https://www.cyberforum.ru/ asm-beginners/ thread1777308.html
Assembler В числе x поменять пары двоичных разрядов в зеркальном порядке
Например 01 11 11 10 10, должно получиться 10 10 11 11 01.
Assembler В каждой строке прямоугольной матрицы обменять максимальные и минимальные элементы В каждой строке прямоугольной матрицы обменять максимальный и минимальный элементы строки. Определить значение и местоположение максимального элемента матрицы до и после ее преобразования. Как это можно реализовать ? https://www.cyberforum.ru/ asm-beginners/ thread1776974.html
Assembler Все положительные элементы массива поставить в обратном порядке, не нарушая расположения остальных https://www.cyberforum.ru/ asm-beginners/ thread1776967.html
Дан массив например 2 -3 5 -2 3 6 -3 Все положительные числа в массиве поставить в обратном порядке, не изменяя положения остальных элементов то есть это будет 6 -3 3 -2 5 2 -3 Как это сделать а то с ассемблером только начинаю работать
Assembler Массив: вывести следующий элемент после максимального (asm-вставки)
Помогите пожалуйста сделать задачу. нужно вывести следующий элемент после максимального. #include <conio.h> #include <iostream> #include "stdlib.h" #include <ctime> using namespace std; int main() {
Assembler Заданы два целочисленных массива, в состав массива Х включить элементы У которых нет в Х Заданы два целочисленных массива Х=(x1,x2,...,xn) и Y=(y1, y2,...,ym). B состав массива Х дополнительно включить те элементы из массива Y, которые отсутствуют в массиве X. Собственно на С проблем с задачей нет. я просто каждый элемент x сравниваю с у , но суть в том что там получается цикл в цикле , а в ассемблере луп использует есx и использовать его выходит на 1 цикл тогда как... https://www.cyberforum.ru/ asm-beginners/ thread1775788.html Assembler Проанализировать введенную строку и вывести результат https://www.cyberforum.ru/ asm-beginners/ thread1774989.html
Ввести одну из строк символьных данных: "Ананьев", "Стерехов", "Юденков", "Лебедев", "Фролов" Проанализировав введенные данные. выдать на экран 48, если Ананьев 49 если Стерехов или юденков 45 если Лебедев 50 если фролов Помогите пожалуйста, нужно чтобы компилировалась через winasm. В dosbox
Assembler Возвращение Mikl___ из бана
Предлагаю подать петицию по возврату товарища Mikl___, в строй собираем плюсы, без него портал наполовину пустой, а к модераторам писать напрямую молчат или заходят очень редко
Assembler Ввести строку символьных данных, заменить в ней символы на "5" Ввести строку символьных данных, задавая буфер 12 байт. Заменить в этой строке символы на "5" Выдать полученные символы в 17 строку, начиная с 67 позиции. Пожалуйста, помогите, в winasm надо чтобы работал https://www.cyberforum.ru/ asm-beginners/ thread1774560.html
197 / 89 / 15
Регистрация: 10.07.2016
Сообщений: 146
16.07.2016, 22:03 0

В массиве удалить элементы, меньшие среднего арифметического элементов массива - Assembler - Ответ 9376015

16.07.2016, 22:03. Показов 1571. Ответов 13
Метки (Все метки)

Ответ

Твоё решение более менее близко к оптимальному для данной задачи. Однако пройдёмся по пунктам:
1. строка 16 - обычно для этого используют XOR
2. строка 18 - указатель на массив лучше поместить в SI, открыв таким образом доступ к LODSW и заменив им строки 21,23
3. Массив объявлен как байтовый, однако в первом цикле идёт чтение двух байт (строка 21), а указатель изменяется на 1 байт (строка 23)
4. Чуть не забыл - строка 19 movzx зачем? И неплохо бы после загрузки размера массива обнулить AH (если массив байтовый) и тогда сложение слов в строке 27 имеет смысл
5. Строка 26 - эта строка приведёт к ошибке в расчётах, если сумма массива выйдет за пределы 255. Опасаться переполнения при делении в данном случае не стоит, т.к. даже если будут максимальные числа - 255 все 10 раз, получится 255*10 и если это разделить на 10 выход за пределы 255 не произойдет. В общем случае использования операции деления легко понять когда возможно переполнение - если старшая половина делимого равна или больше делителя.
6. Строка 28 - коммент не верен, т.к. целый ответ в AL, остаток AH и в строке 32 сравнение идёт правильно с AL, т.е. опять же массив байтовый, однако в строке 9 затирка слова. И кстати строка 33 переход знаковый, т.е. массив байтовый со знаком в старшем бите? Тогда нужны команды сложения и деления знаковые.
7. Строки 8-12 было бы лучше убрать и сделать
Assembler
1
2
3
4
5
m2: dec bx
cmp [bx],al
jnc m3
mov [bx],ah (который до цикла обнулён);
m3: loop m2
8. Проверку остатка от деления нужно делать 1 раз и до второго цикла: or ah,ah; je qwerty; inc al; qwerty: xor ah,ah (для затирки), т.е. если есть хоть какой-то остаток увеличиваем целый результат деления на 1 (округляем в большую сторону).
9. Ради интереса попробуй составить алгоритм без изменения указателя в массиве - строки 23,31, или с помощью mmx команд.

Вернуться к обсуждению:
В массиве удалить элементы, меньшие среднего арифметического элементов массива Assembler
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2016, 22:03
Готовые ответы и решения:

Расчет СА (среднего арифметического) отрицательных элементов массива. Заменить минимальный элемент в массиве на СА
СА- среднее арифметическое Помогите написать часть которая будет считать СА, находить...

Заменить все элементы, значение которых меньше среднего арифметического всех элементов массива на нулевые
Мое задание: Заменить все элементы, значение которых меньше среднего арифметического всех элементов...

Emu8086 элементы больше среднего арифметического удалить
data segment mas1 dw 2, 4, 6, 8, 10 mas2 dw 5 dup (?) n dw 0 s dw 0...

Заменить четные по значению элементы на значение среднего арифметического всех элементов массива
Задание такое: Заменить четные по значению элементы на значение среднего арифметического всех...

13
16.07.2016, 22:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2016, 22:03
Помогаю со студенческими работами здесь

В массиве определить количество элементов меньших среднего арифметического значения
В массиве Х определить количество элментов меньших среднего арифметического значения.

Подсчитать количество элементов, которые больше среднего арифметического массива
Задание такое: нужно написать программу, которая формирует массив из 3-х столбцов и 5-ти строк....

Числа, большие среднего арифметического, заменить на первое значение в массиве
может быть я немножко не туда, но вот в чем дело, у меня дана задача на паскале, нужно сделать...

Подсчет среднего арифметического массива
Компилирую программу: tasm.exe prog1.asm - все нормально. tlink.exe prog1.obj - Выдает ошибку...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru