EXERSISE (Ассемблер - упражнения), страница 2
Описание файла
Файл "EXERSISE" внутри архива находится в папке "Ассемблер - упражнения". Текстовый-файл из архива "Ассемблер - упражнения", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр 2 страницы текстового-файла онлайн
4.7 n - переменная-слово (n>=1), а k - байтовая переменная. Опреде-
лить, является ли n степенью числа 3 (1, 3, 9, 81, ...). Если является,
то в k записать показатель степени (n=3^k), не является - записать -1.
4.8 n - переменная-слово с положительным значением, а d - байтовая
переменная. Записать в d старшую (левую) значащую цифру (как символ) из
десятичной записи числа n.
4.9 Значением переменной-слова n является четырехзначное число (от
1000 до 9999). Определить, есть ли в десятичной записи этого числа цифра
5. Если есть, в регистр si записать 1, если нет - записать 0.
4.10 Ввести 120 символов и вывести их по 10 символов в строке.
4.11 Для ввода задана последовательность следующего вида:
d1d2...dk.
где di - цифра от 0 до 9 и k>=1. Вычислить значение этой алгебраической
суммы и вывести его.
4.12 Для ввода задана последовательность любых символов (кроме точ-
ки), за которой следует точка. Проверить, правильно ли сбалансирована эта
последовательность по круглым скобкам, и выдать ответ: СБАЛАНСИРОВАНА или
НЕ СБАЛАНСИРОВАНА.
4.13 Для ввода задана последовательность любых символов (кроме точ-
ки), за которой следует точка. Вывести эту же последовательность, но без
лишний пробелов, т.е. из нескольких подряд идущих пробелов оставить толь-
ко один.
4.14 Для ввода задана непустая последовательность непустых слов из
латинских букв, причем соседние слова отделены запятой, а за последним
словом указана точка. Определить, сколько слов в этой последовательности
начинаются и оканчиваются одной и той же буквой, и вывести это число.
4.15 Вывести значение регистра bx в виде четырехзначного шестнадцати-
ричного беззнакового числа.
4.16 Распечатать таблицу умножения (в десятичной системе).
Глава 5. МАССИВЫ. СТРУКТУРЫ.
Модификация адресов, запись модифицируемых адресов. Реализация переменных
с индексами, обработка массивов. Команды lea И xlat. Структуры: описание
типов и переменных, доступ к полям структур.
УПРАЖНЕНИЯ.
5.1 x db 400 dup(?)
y dw 400 dup(?)
Какая величина должна находиться в регистре bx, чтобы выражение x[bx] оп-
ределяло адрес 20-го по порядку элемента массива x, если нумерация эле-
ментов этого массива начинается: с 0; с 1; с 10; с -10?
Ответить на аналогичные вопросы для массива y и выражения y[bx].
5.2 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?
5.3 x db ?
y dw ?
Определить, какие из указанных ниже конструкций являются допустимыми фор-
мами записи адресов операндов команд, а какие - нет и почему.
1) x[si-1] 2) x[1-bx] 3) y[di]-2 4) 2-y[di]
5) bx[ax] 6) ax[bx] 7) si+2 8) x[bh]
9) [x] 10) [5] 11) x[5] 12) 5[x]
13) [y-x] 14) y-x[di] 15) x-y[bx] 16) x+y[si]
17) x[bx]+2[si] 18) x[si]+2[di] 19) [di]x 20) y[di]
5.4 x dw 10
Укажите значения регистров ax и bx после выполнения следующих команд:
lea bx,x
mov ax,[bx]
lea bx,[bx]
5.5 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
5.6 Описать подходящий массив и, используя команду xlat, решить сле-
дующую задачу: в регистре dh находится число от 2 до 19; требуется запи-
сать 1 в регистр al, если число dh простое, и записать 0 иначе.
5.7 x dw 30 dup(?) ;числа со знаком
Решить следующие задачи:
а) Поменять знак у первого отрицательного элемента массива x.
б) Обнулить последний положительный элемент массива x.
в) Если во второй половине массива x есть элементы, равные 1, то пер-
вый из них заменить на 45.
5.8 n dw ? ;0<=n<=9999
s db 4 dup(?) ;символьная строка
а) Записать в s десятичные цифры n (например: n=304 -> s='0304').
б) Решить обратную задачу.
5.9 x db 100 dup(?) ;x[0..99]
y dw 100 dup(?) ;y[0..99]
Заполнить массивы x и y по правилу: x[i]:=i, y[i]=i.
5.10 x dw 100 dup(?)
Определить, сколько элементов массива x имеют равных соседей (предыдущий
и следующий элементы совпадают). Ответ записать в регистр al.
5.11 y db 40 dup(?)
Если левая и правая половины массива y совпадают, то в регистр al запи-
сать 1, а иначе записать 0.
5.12 k equ 65
x db k dup(?)
y db k dup(?)
По числовому массиву x заполнить массив y согласно следующему правилу:
все отрицательные элементы массива x записать в начало массива y, а все
остальные - в конец y (в любом порядке).
5.13 Проверить на равенство строки s1 и s2
s1 db 60 dup(?)
s2 db 49 dup(?)
при условии, что пробелы не учитываются, и записать ответ 1 (равны) или 0
в регистр al.
5.13 x db 500 dup(?)
Перенести в конец массива x все его нулевые элементы, сохранив взаимное
расположение остальных элементов.
5.14 n equ 10000
s db n dup(?)
Используя подходящий вспомогательный массив, размер которого не должен
зависеть от величины n, определить за один просмотр символьной строки s,
какая из малых латинских букв чаще всего встречается в ней, и записать
эту букву (любую, если их несколько) в регистр al.
5.16 Определить, есть ли в 45-байтовом массиве x хотя бы два одинако-
вых элемента, и записать ответ 1 (есть) или 0 в регистр al.
5.17 n equ 50
x db n dup(?) ;числа без знака
Упорядочить элементы массива x по неубыванию с помощью метода "пузырька".
(В этом методе последовательно сравниваются пары соседних элементов
(первый со вторым, второй с третьим, третий с четвертым и т.д.) и, если в
паре элементы не упорядочены (первый из них больше второго), они перес-
тавляются местами; в конце концов максимальный элемент окажется на своем
месте - в конце массива. Далее эти действия повторяются, но уже без учета
последнего элемента, затем - без учета двух последних элементов и т.д.
Массив упорядочен, если при очередном просмотре пар не было сделано ни
одной перестановки либо в последний раз сравнивались всего два элемента.)
5.18 lw db 150 dup(12 dup(?))
Рассматривая lw как массив из 150 слов по 12 символов в каждом, решить
следующие задачи:
а) Подсчитать количество симметричных слов в этом массиве. Ответ запи-
сать в регистр al.
б) Определить, есть ли в массиве lw хотя бы два одинаковых слова, и
записать ответ 1 (есть) или 0 в регистр al.
5.19 С помощью массива меток реализовать следующий оператор варианта