Главная » Просмотр файлов » Пильщиков В.Н. - Упражнения по языку ассемблера MASM

Пильщиков В.Н. - Упражнения по языку ассемблера MASM (1110572), страница 2

Файл №1110572 Пильщиков В.Н. - Упражнения по языку ассемблера MASM (Пильщиков В.Н. - Упражнения по языку ассемблера MASM) 2 страницаПильщиков В.Н. - Упражнения по языку ассемблера MASM (1110572) страница 22019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

3.11 Пусть A, B и C - знаковые переменные-слова. Записать в регистр DL значение 3, 2, 1 или 0 в зависимости от того, может ли существовать треугольник с такими длинами сторон (и если да, то какого он вида - равносторонний (3), равнобедренный (2) или какой-то иной (1)) или не может (0).

3.12 Пусть N - переменная-слово (N1), а K - переменная-байт. Определить, является ли N степенью числа 3 (1, 3, 9, 27, ...). Если является, то в K записать показатель степени (N=3k), не является - записать -1.

3.13 N DB ? ; N≥1

F DW ?

Записать в F:

а) N-е число Фибоначчи (FN);

б) первое из чисел Фибоначчи, превосходящих 10000.

(Определение чисел Фибоначчи Fk: F0=F1=1, Fk=Fk-1+Fk-2.)

3.14 Пусть N и K - переменные-слова и 2<K<N. Записать в регистр BX наибольший из остатков от деления N на числа 2, 3, ..., K.

3.15 N DW ? ; N≥0

Записать в регистр CL:

а) наибольшую цифру из десятичной записи числа N;

б) количество значащих цифр из десятичной записи числа N;

в) сумму цифр из десятичной записи числа N.

3.16 X DD ? ; X≥0

Записать в регистр CL старшую (левую) значащую цифру из десятичной записи числа X.

3.17 N DW ? ; N>1

Определить, является ли N простым числом. Ответ - 1 (да) или 0 - записать в регистр BL.

3.18 N DW ? ; N>1

Записать в регистр BL количество различных простых делителей числа N.

3.19 Z DB ?

Записать в Z максимальное значение выражения (X2+Y2) mod 80 в целочисленных точках квадрата 0≤X≤99, 0≤Y≤99.

3.20 R DB ? ; 0<R<150

Записать в регистр DX количество целочисленных точек на плоскости, попадающих в круг радиуса R с центром в начале координат.

Замечание. В упражнениях 3.21-3.32 решение задачи описать в виде фрагмента программы с вводом-выводом, используя вспомогательные операции INCH, ININT, FLUSH, OUTCH, OUTINT, OUTWORD, OUTSTR и NEWLINE. Считать, что все вводимые числа "укладываются" в размер слова.

3.21 Дана последовательность из 130 попарно различных знаковых чисел. Определить наибольшее из них и его порядковый номер в последовательности.

3.22 Дана последовательность символов (отличных от точки), за которой следует точка. Определить, сбалансирована ли эта последовательность по круглым скобкам. Ответ: ДА или НЕТ.

3.23 Напечатать таблицу умножения (в десятичной системе счисления).

3.24 Дан текст следующего вида:

d1 ± d2 ± ... ± dk .

где di - цифра от 0 до 9, k≥1. Найти значение этой алгебраической суммы.

3.25 Используя только операцию OUTCH, вывести содержимое регистра AX в виде:

а) знакового десятичного числа,

б) беззнакового 16-ричного числа ("буквенные" цифры - от A до F).

3.26 Используя только операцию INCH, ввести:

а) знаковое десятичное число,

б) беззнаковое 16-ричное число ("буквенные" цифры - от A до F)

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

3.27 Дано 50 чисел, среди которых есть по крайней мере одно отрицательное. Найти наибольшее среди отрицательных чисел.

3.28 Дана последовательность из 40 чисел. Определить, у скольких чисел этой последовательности равные "соседи" (т.е. равны предыдущее и последующее числа).

3.29 Дана непустая последовательность символов (отличных от точки), за которой следует точка. Напечатать эту же последовательность:

а) заменив все 'PH' на 'F';

б) удалив все лишние пробелы (т.е. из нескольких подряд идущих пробелов оставить только один) .

3.30 Дана непустая последовательность непустых слов из больших латинских букв; между соседними словами - запятая, за последним словом - точка. Подсчитать количество слов, которые:

а) начинаются с буквы 'S';

б) оканчиваются буквой 'Z';

в) начинаются и оканчиваются одной и той же буквой.

3.31 P DW ? ; P0

Q DW ? ; Q>0

Напечатать дробь P/Q в виде вещественного числа с 5 цифрами в дробной части.

3.32 X DD ?

Напечатать значение X в виде беззнакового десятичного числа. (Обратить особое внимание на возможность переполнения в команде DIV.)

4. ИНДЕКСИРОВАНИЕ. МАССИВЫ. СТРУКТУРЫ.

4.1 X DW 500h, 600h, 700h

Пусть BX=8000h и SI=102h. Указать (в форме X+число) исполнительный адрес следующей команды:

а) DEC X+2 б) DEC X[2] в) DEC [X+2] г) DEC [X]+2

д) INC X[SI] е) INC X[SI+2] ж) INC X[SI]-2 з) INC X-2[SI]

и) NEG X[BX][SI] к) NEG X[BX+SI] л) NEG X[BX+SI+8000h]

4.2 Пусть X - имя некоторого байта памяти и BX=i и пусть требуется обнулить байт памяти с адресом X+2*i. Определить, какой из следующих фрагментов правильно решает эту задачу:

а) MOV X[BX+BX],0 б) MOV DI,BX в) ADD BX,BX

MOV X[BX+DI],0 MOV X[BX],0

4.3 Пусть X - имя некоторого байта памяти и BX=i и пусть требуется обнулить байт памяти с адресом X-i. Определить, какой из следующих фрагментов правильно решает эту задачу:

а) MOV X[-BX],0 б) MOV [X-BX],0 в) NEG BX

MOV X[BX],0

4.4 X DW 0,1,2

Пусть X обозначает ячейку памяти с адресом 100. Указать числовые значения регистров AX и BX после выполнения следующих команд:

а) MOV AX,X б) MOV AX,X+2 в) MOV SI,2 г) LEA SI,X

LEA BX,X LEA BX,X+2 MOV AX,X[SI] MOV AX,2[SI]

LEA BX,X[SI] LEA BX,2[SI]

4.5 С помощью одной команды LEA реализовать следующее действие:

а) увеличить значение регистра BX на 10;

б) уменьшить значение регистра BX на 10;

в) записать в регистр AX значение регистра DI;

г) записать в регистр SI значение регистра BX, увеличенное на 1.

4.6 X DB 400 DUP(?)

Y DW 400 DUP(?)

Определить, какая величина должна находиться в регистре BX, чтобы выражение X[BX] определяло адрес 20-го от начала элемента массива X, если нумерация элементов этого массива начинается с:

а) 0 б) 1 в) 10 г) -10

Ответить на аналогичные вопросы для массива Y и выражения Y[BX].

4.7 Z DB 61 DUP(?) ; Z[0..60]

Пусть в регистре BX находится величина i, а в регистре DI - величина j (10i,j30). Указать адресные выражения, с помощью которых можно сослаться на элемент массива Z с индексом:

а) i б) i-10 в) j+10 г) j+i-1 д) 42 е) 0

4.8 X DB ?

Y DW ?

Указать, какие из следующих конструкций являются допустимыми формами записи операндов команд, а какие - нет и почему.

а) X[SI-1] б) X[1-BX] в) Y[DI]-2 г) 2-Y[DI]

д) BX[AX] е) AX[BX] ж) SI+2 з) X[BH]

и) [X] к) [5] л) X[5] м) 5[X]

н) [Y-X] о) Y-X[DI] п) X-Y[BX] р) X+Y[SI]

с) X[BX]+2[SI] т) X[SI]+2[DI ] у) [DI]X ф) Y[DI]

4.9 X DB 50 DUP(?) ; X[0..49]

Пусть в регистре BX находится адрес некоторого элемента массива X (т.е. X+i, где i - число от 0 до 49). Требуется в этом же регистре получить индекс (i) этого элемента. Определить, какая из следующих групп команд правильно решает эту задачу:

а) SUB BX,X б) SUB BX,[X] в) LEA AX,X г) LEA BX,-X[BX]

SUB BX,AX

4.10 Описать подходящий массив и, используя команду XLAT, решить следующую задачу: в регистре DH находится число от 2 до 19; требуется записать 1 в регистр AL, если число DH простое, и записать 0 иначе.

4.11 Q DB 256 DUP(?) ; Q[0..255] of 0..255

Считая, что в регистре AL находится число i от 0 до 255, реализовать присваивание Q[Q[i]]:=i.

4.12 X DW 100 DUP(?) ; числа со знаком

Решить следующую задачу:

а) записать в регистр AX число нулевых элементов массива X;

б) записать в регистр AX наименьший элемент массива X;

в) обнулить все отрицательные элементы массива X;

г) заменить на 1 первый нулевой элемент массива X;

д) изменить знак у первого элемента массива X, отличного от 1.

4.13 N EQU 100

Y DB N DUP(?) ; Y[0..N-1]

Считая, что все элементы массива Y неотрицательны и попарно различны, поменять местами наибольший и 20-й элементы этого массива.

4.14 Z DW 30 DUP(?) ; Z[0..29], числа со знаком

Решить следующую задачу:

а) обнулить последний положительный элемент массива Z;

б) если во второй половине массива Z есть элементы, равные 1, то первый из них заменить на 45;

в) поменять знак у всех элементов массива Z с четными индексами.

4.15 X DW 100 DUP(?)

Решить следующую задачу:

а) определить, у скольких элементов массива X равные соседи (предыдущий и последующий элементы), и записать ответ в регистр AL;

б) элементы массива X циклически сдвинуть на 2 позиции вправо;

в) если левая и правая половины массива X совпадают, то обнулить последний элемент этого массива.

4.16 S DB 200 DUP(?)

T DB 200 DUP(?)

Рассматривая S и T как символьные массивы (строки), решить следующую задачу:

а) все цифры строки S записать в начало строки T, а остальные символы - в конец (в любом порядке);

б) проверить на равенство строки S и T при условии, что пробелы не учитываются, и записать ответ 1 (равны) или 0 в регистр AL;

в) перенести в конец строки S все ее пробелы, сохранив взаимный порядок следования остальных символов;

г) определить, есть ли в строке S хотя бы два одинаковых символа, и записать ответ 1 (есть) или 0 в регистр AL.

4.17 LW DB 150 DUP(12 DUP(?))

Рассматривая LW как массив из 150 слов по 12 символов в каждом, решить следующие задачи:

а) подсчитать количество симметричных слов в этом массиве и записать ответ в регистр AL;

б) определить, упорядочены ли слова этого массива по алфавиту (по неубыванию), и записать ответ 1 (да) или 0 в регистр AL;

в) определить, есть ли в массиве LW хотя бы два одинаковых слова, и записать ответ 1 (есть) или 0 в регистр AL.

4.18 N DW ? ; 0N9999

S DB 4 DUP(?) ; символьная строка из цифр

Требуется:

а) записать в S десятичные цифры N (например: N=304  S='0304');

б) решить обратную задачу.

4.19 A DD 40 DUP(?) ; числа без знака

Заменить начальный элемент массива A на максимальный элемент массива.

4.20 X DB 100 DUP(?) ; X[0..99]

Y DW 100 DUP(?) ; Y[0..99]

Решить следующую задачу:

а) заполнить массивы X и Y по правилу: X[i]:=i, Y[i]=i;

б) записать в регистр DH количество элементов массива X, для которых выполняется условие X[i]>i (считать X[i] числами без знака).

4.21 Для ввода задана непустая последовательность малых латинских букв, за которой следует точка. Используя подходящий вспомогательный массив, определить (ответ напечатать):

а) сколько различных букв входит в эту последовательность;

б) какая из букв чаще всего встречается в этой последовательности (если таких букв несколько, выбрать любую).

4.22 N EQU 1000

X DB N DUP(?)

K DW ? ; 0<K<N

Используя подходящий вспомогательный массив, циклически сдвинуть элементы массива X на K позиций влево.

4.23 Для ввода дана непустая последовательность символов (отличных от точки), за которой следует точка и в которой не более 1000 символов. Ввести эти символы и распечатать их в обратном порядке, удалив предварительно все большие гласные русские буквы (А, Е, И, О, У, Ы, Э, Ю, Я).

4.24 Пусть в регистрах SI и DI находятся начальные адреса двух (непересекающихся) областей памяти из 20 слов в каждой. Решить следующую задачу:

а) обнулить все слова первой из этих областей (SI);

б) записать в каждое слово первой области его адрес;

в) сравнить содержимое обеих областей и записать ответ 1 (равны) или 0 в регистр AL.

4.25 N EQU 100

X DB N DUP(?) ; числа со знаком

Y DB ?

Считая, что элементы массива X упорядочены по возрастанию, определить, есть ли в X элемент, равный Y, и записать ответ 1 (есть) или 0 а в регистр AX.

При решении задачи использовать метод бинарного поиска (деления пополам): сравнить Y со средним (или около него) элементом массива X; если они равны, то поиск закончить; если Y меньше (больше) среднего элемента, то далее рассматривать только левую (правую) половину массива, применив к ней этот же метод.

4.26 N EQU 100

X DW N DUP(?) ; числа со знаком

Упорядочить массив X по неубыванию (X1X2X3...), используя следующий метод сортировки:

а) сортировка выбором: найти максимальный элемент массива и переставить его с последним элементом; затем этот же метод применить ко всем элементам, кроме последнего (он уже находится на своем окончательном месте); и т.д.

б) сортировка обменом (метод пузырька): последовательно сравнивать пары соседних элементов массива (X1 с X2, X2 с X3 и т.д.) и, если первый элемент пары больше второго, то переставлять их; тем самым наибольший элемент окажется в конце массива; затем этот же метод применить ко всем элементам, кроме последнего; и т.д.

в) сортировка вставками: пусть первые k элементов уже упорядочены по неубыванию; взять (k+1)-й элемент и разместить его среди первых k элементов так, чтобы упорядоченными оказались уже k+1 первый элемент; этот метод применять при k от 1 до N-1.

4.27 DATE STRUC ; дата

Y DW 1997 ; год

M DB ? ; номер месяца

D DB ? ; число

Характеристики

Тип файла
Документ
Размер
214 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6363
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее