Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Assembler .exe в .com как переделать из .exe в .com подскажите пожалуйста. .model small .stack 100h .data rows dw ? cols dw ? array db 10*10 dup (?) ;массив vector db 10 dup (?) ; вектор для результата https://www.cyberforum.ru/ asm-beginners/ thread1639576.html Переставить местами соседние элементы массива с четными и нечетными индексами Assembler
В одномерном массиве переставить местами соседние элементы с четными и нечетными индексами.
Assembler Определить количество чисел между первым и последним нулём в массиве Выручайте! Дан массив, нужно узнать сколько чисел между первым и последним 0. https://www.cyberforum.ru/ asm-beginners/ thread1639094.html Assembler Запись числа в последовательности little endian https://www.cyberforum.ru/ asm-beginners/ thread1639011.html
Двубайтовое слово x (рассмтриваем его как число без знака) записано в памяти компьютера как последовательность байтов 19,100. Какое будет значение х если запись осуществлялась в последовательности little endian? Правильный ответ: 25619. Подскажите пажалуйста каким-обзаразом решается это задание? Может кто знает хорошие ссылки, где можно почитать об этом????????????????????????
Вычисление чисел Фибоначчи Assembler
Добрый день, решал задачку по вычислению чисел Фибоначчи. Вот, что получилось: mov ecx, 7 mov eax, 0 mov ebx, 1 L1: add eax, ebx xchg eax, ebx loopd L1
Assembler Пересылка элементов исходного массива https://www.cyberforum.ru/ asm-beginners/ thread1638485.html
Доброго времени суток! нужна программа, похожую, к сожалению, не нашел, которая осуществляет пересылку элементов исходного массива (символьной строки s1) в другую область памяти (второй символьной строки s2), изменяя их порядок. Порядок элементов в строке s2 по отношению к строке s1: 3-2-1-8-7-6-5-4 То есть, предусматривается перенос 1-го элемента строки s1 в 3-й элемент строки s2, 2-й - в...
Assembler Неведомая ошибка https://www.cyberforum.ru/ asm-beginners/ thread1638449.html
Name Program1 .286 n1=(offset x2 - offset x1)/ type x1 ;кол-во элементов первого массива n2=(offset y1 - offset x2)/ type x2 ;кол-во элементов второго массива Data segment ;Описание массива x1 DD 1234h,12345h,123456h,1234567h,12345678h,123h x2 DD 1abch,0abbccddh,1abcdh,0abcdeh,0abcdefh,0adcbfeh ;Описание реультата
Assembler Поменять местами два числа из разных сегментов данных используя цепочечные команды
Здравствуйте! Помогите пожалуйста с цепочечными командами. Была лаба и дали задание сделать тоже самое, только с регистрами DS:SI, ES: DI и цепочечными командами. Почитала, ужаснулась%-) и въехать не могу:wall:. Помогите плииз. name ex_swap ; начало программного модуля ; Определение сегмента данных _data1 segment para public 'DATA' i dw 5 _data1 ends _data2 segment para public...
Assembler Выводит неверно символ https://www.cyberforum.ru/ asm-beginners/ thread1638383.html
Программа показывает число, месяц, день недели. Но почему-то неверно показывает 2 символ числа(вместо 14, 1№). И еще вопрос, как сделать чтобы выводило сразу на 3 языках(англ, русс, укр)? model tiny .code .startup mov al,2 mov ah,00h ;очистка екрана int 10h mov ah,04h ;отримання дня місяця int 1ah
Assembler Найти среднее арифметическое чисел Здравствуйте, уважаемые программисты! Помогите, пожалуйста, решить задачку: нужно найти среднее арифметическое чисел, которые находятся во внешнем ОЗУ, начиная с адреса 0090. Вот эти числа: 0B, 05, 0E, 04, 09, 0C, 0F. Для Вас - это простенькая задачка, а у меня вызывает трудности. Помогите, пожалуйста, решить. Спасибо. https://www.cyberforum.ru/ asm-beginners/ thread1638374.html
Пояснить тип операнда Assembler
Читаю одну книгу по masm'у. Автор перечислил типы операндов, но мне непонятными стали типы r/m8, r/m16 и r/m32. Для типа r/m8 автор приводит такое описание: r/m8 - 8-разрядный операнд, в котором закодирован один из 8-разрядных регистров общего назначения или адрес байта в памяти. Я не понял, можете объяснить такую формулировку или привести пример, когда используется такой операнд? ...
Assembler Напечатать те числа из заданных, которые делятся на 3, но не делятся на 5 Даны натуральные знаковые числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5. Нужна помощь с решением. .386 .model flat, stdcall option casemap :none include \masm32\include\windows.inc include \masm32\include\masm32.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc include \masm32\include\debug.inc https://www.cyberforum.ru/ asm-beginners/ thread1637914.html
1 / 1 / 1
Регистрация: 30.01.2014
Сообщений: 22
15.01.2016, 21:22  [ТС] 0

Считывание со стандартного ввода и вывод в унарной системе счисления - Assembler - Ответ 8625280

15.01.2016, 21:22. Показов 4051. Ответов 5
Метки (Все метки)

Ответ

R71MT, о-ёй.. многое мне еще изучить предстоит.. спасибо большое!
**********
Вот полный текст задания:
Кликните здесь для просмотра всего текста
Печать числа

Задание: написать программу на ассемблере NASM, которая посимвольно считывает со стандартного ввода целое число и печатает его на страндратный вывод в унарной системе счисления с использованием символа ‘*’. При появлении на стандартном вводе символа отличного от цифры вывести результат и завершить работу программы. Если числе не было введено, то считать, что ввели нуль.
Указания к выполнению: для проверки условия о том, что символ является цифрой можно воспользоваться тем фактом, что ASCII коды цифр образуют непрерывный ряд от ‘0’ до ‘9’. Таким образом, проверку того, что символ является цифрой можно свести к проверке, что его ASCII код лежит в диапазоне от ‘0’ до ‘9’. Опишем алгоритм перевода последовательности цифр в целое число:
1. изначально положим результат равным нулю;
2. прочитаем следующий символ;
3. если символ не является цифрой, то напечатать ответ и выйти;
4. иначе умножим результат на 10 и прибавим к нему прочитанную цифру;
5. перейти к шагу 2.
Рассмотрим работу алгоритма на примере входной последовательности ‘123’:
1. положим result := 0
2. прочитаем ‘1’
3. result := 10*result + 1 ; result = 1 4. прочитаем ‘2’
5. result := 10*result + 2 ; result = 12 6. прочитаем ‘3’
6. прочитаем '3'
7. result := 10*result + 3 ; result = 123 8. конец ввода, выходим
Чтобы перевести ASCII код цифрового символа в соответствующее ему число, следует вычесть из него код символа ‘0’.
Требования: исходный код решения должен содержать в комментариях описание программы, автора, дату создания и необходимые пояснения. При оформлении исходного кода использовать однообразный стиль расстановки пустых строк и выравнивания строчек программы. В качестве имён меток следует использовать короткие понятные названия на английском языке. Программа должна корректно обрабатывать разные входные данные: корректное число, некорректное число, отсутсвие входных данных,
большое число ( < 232).


И еще парочка
Кликните здесь для просмотра всего текста
Сумма чисел

Задание: написать на ассемблере NASM программу, которая читает со стандартного ввода два целых числа, раздeлённых пробелом, и печа- тает на стандартный поток вывода их сумму в десятичной системе счисления. В случае, если на стандартном вводе появляются иные символы кроме цифр и пробельных символов, то вывести сообщение об ошибке "ERROR" и завершить работу программы.

Указания: для чтения чисел использовать результат первой работы. Для печати числа в десятичной системе счисления его необходимо предварительно перевести в строку цифр. Чтобы последовательно получить все цифры числа начиная с младшего разряда можно воспользоваться следующим алгоритмом:
1. Поместить в A число;
2. Вычислить остаток от деления А на 10;
3. Поместить в A частное от деления его на 10;
4. Перейти к шагу 2.

Для печати цифр числа на экран, необходимо получить их ASCII код. Для этого можно прибавить к цифре код символа ‘0’.
Для печати цифр в правильном порядке (от старшего разряда к младшему) их предварительно необходимо будет сохранить в оперативной памяти в обратном порядке, а затем вывести на экран по одному символу. Для выделения необходимого блока оперативной памяти можно использовать неинициализированную память из секции .bss.

Кликните здесь для просмотра всего текста
Подпрограммы

Задание: оформить решение второй лабораторной работы с использованием подпрограмм. Результат должен включать в себя главную программу и две вспомогательные подпрограммы:
∙ ввод целого числа;
∙ вывод целого числа.

В первой подпрограмме использовать для возврата результата регистр eax. Вторая подпрограмма должна принимать один целочисленный параметр — число, которое необходимо вывести. Передачу парамеров организовать через стек. Обе подпрограммы должны восстановить значения всех регистров, кроме eax для подпрограммы вывода числа, в то состояние, в котором они были до вызова. Для сохранения значений регистров (включая регистр флагов) использовать стек процессора. Для передачи параметров использовать соглашение по вызову подпрограмм, применяемое в языке C.

Указания: для корректной работы подпрограммы вывода числа необходимо использовать локальную память для резервирования места под хранение цифр. В данной лабораторной работе не использовать секцию неинициализированных данных для выделения памяти. Размер каждого параметра программы по возможности стоит выравнивать по границе двойного слова (4 байта), поскольку функции по работе со стеком могут оперировать только кратными машинному слову объемами памяти. Для адресации параметров программы и локальных переменных исполь- зовать регистр ebp с предварительно сохраненным значением верхушки стека.

Кликните здесь для просмотра всего текста
Системные вызовы

Задание: переписать результат лабораторной работы No 3 заменив все используемые макросы на системные вызовы. Разбить все решение на несколько файлов с исходным кодом по числу используемые подпрограмм.
В результате в программе должны быть следующие файлы:
1. основная программа;
2. подпрограмма для чтения символа с клавиатуры;
3. подпрограмма для вывода символа на экран;
4. подпрограмма для чтения целого числа;
5. подпрограмма для печати целого числа;
6. подпрограмма для завершения работы.

Не прошу их делать за меня, но буду крайне рад, если вы направите меня в нужную сторону Спасибо

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

Умножение чисел в унарной системе счисления
Напишите нормальный алгоритм Маркова, реализующий умножение в унарной системе.Вид входного...

Упорядочить последовательность чисел, заданных в унарной системе счисления
Упорядочить последовательность чисел, заданных в унарной системе счисления. Помогите разобраться с...

Программа для машины Поста в унарной системе счисления
Помогите пожалуйста Требуется написать для машины Поста программу вычитания двух натуральных...

Скопировать число, записанное в унарной системе счисления (машина Поста)
Машина поста! Спасите!) Скопировать число, записанное в унарной системе счисления. Каретка...

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

Машина Тьюринга для чисел в унарной системе счисления div 2 и mod 2
Написать две машины тьюринга. X div 2 и X mod 2, где x- число в унарной сс.

Машина Тьюринга. Поделить нацело пополам число, записанное в унарной системе счисления
Поделить нацело пополам число, записанное в унарной системе счисления.

Машина Тьюринга. Найти произведение двух натуральных чисел m и n, заданных в унарной системе счисления
Здравствуйте. Помогите, пожалуйста, решить 1)Найти произведение двух натуральных чисел m и n,...

Считывание из стандартного потока ввода
Доброго времени суток . Столкнулся вот с такой проблемой . Есть функция , которая считывает со...

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