TASKASM1 (1109490)
Текст из файла
10.1 элемента со следующими начальны-
ми значениями:
а) первые 50 элементов имеют значение 10, следующие 20 элементов -
значение '+', остальные - без начального значения;
б) средний элемент имеет значение 1, а все остальные - значение 0.
2.7 Описать байтовую матрицу B размера 30x50, в каждой строке которой
первые 47 элементов имеют значение -1, а последние три - значение 'q'.
2.8 N EQU 10
Описать единичную матрицу E размера NxN из элементов-слов.
2.9 Воспользоваться подходящей директивой EQU и предложить более ко-
роткий вариант записи директивы
S DB "abcdefhg=abcdef+k"
2.10 Указать начальные значения элементов массивов X и Y:
A=10
B=A
C EQU A
D EQU +A
X DB A, B, C, D
A=2*A
Y DB A, B, C, D
Глава 3. ПЕРЕСЫЛКИ. АРИФМЕТИЧЕСКИЕ КОМАНДЫ.
Команды пересылки MOV и XCHG, оператор PTR. Особенности сложения и вычитания знаковых и беззнаковых чисел, установки флагов CF, OF, ZF и ZF. Ко-
сложения и вычитания (ADD, SUB, INC, DEC, NEG, ADC, SBB). Команды
умножения и деления (MUL, IMUL, DIV, IDIV). Команды CBW и CWD.
УПРАЖНЕНИЯ.
3.1 Определить, верны ли следующие утверждения:
а) Если операнды команды ADD интерпретировать как знаковые числа, то
флаг SF получает в этой команде значение 1 тогда и только тогда, когда
эти числа имеют один и тот же знак, а у результата команды - иной знак.
б) Если операнды команды SUB x,y интерпретируются как знаковые числа
и x<y, то после выполнения этой команды флаги OF и SF обязательно будут
иметь разные значения (OF<>SF).
3.2 Определить флаги CF, OF и SF после выполнения команды
ADD AL,BL
при следующих исходных значениях регистров AL и BL:
а) AL=200, BL=90
б) AL=-100, BL=30
в) AL=-100, BL=-90
3.3 X DB 3 DUP(?) ;X[0..2]
Выписать команды, циклически сдвигающие элементы массива X на один байт
влево: (x0, x1, x2) ==> (x1, x2, x0).
3.4 Y DD ?
Выписать команды, присваивающие переменной Y значение 66000. (Вспомогательные переменные не использовать.)
3.5 X DB ?
Требуется в регистр CL записать значение переменной X, увеличенное на 2.
Определить, какой из следующих двух фрагментов правильно решает эту зада-
чу:
а) MOV CL,X б) MOV CL,X+2
ADD CL,2
3.6 Пусть в регистре BH находится код какой-то большой латинской бук-
вы и требуется записать в этот регистр код одноименной малой латинской
буквы. Определить, какой из следующих двух фрагментов правильно решает
эту задачу:
а) SUB BH,'A' б) ADD BH,'a'-'A'
ADD BH,'a'
3.7 Пусть A, X и Y - знаковые байтовые переменные. Вычислить
Y = (A*X-12)^2 + (-A) div X
в предположении, что все промежуточные и окончательный результаты укладываются в размер слова.
3.8 Пусть D1, D2 и N - байтовые переменные. Считая, что значения D1 и
D2 - это символы-цифры (от "0" до "9"), записать в N число, десятичная
запись которого составлена из этих цифр (D1 - левая цифра).
3.9 Пусть H, M и S - байтовые переменные, а T - переменная размером
в двойное слово. Считая, что от начала суток прошло H часов (0<=H<24), M
минут и S секунд (0<=M,S<60), определить, сколько всего секунд прошло от
начала суток к этому моменту времени. Ответ записать в T.
3.10 Пусть T - переменная размером в двойное слово, а H, M и S - байтовые переменные. Считая, что прошло T секунд (0<=T<86400) от начала су-
ток, определить, сколько полных часов (H), минут (M) и секунд (S) прошло
к этому моменту времени.
3.11 X DD ?
Y DD ?
Z DD ?
W DD ?,?
Реализовать следующие операции над "длинными" числами:
а) Z=X+Y (считать, что сумма укладывается в двойное слово):
б) Z=X-Y (считать X>=Y);
в) W=X*Y (считать X и Y беззнаковыми числами).
Глава 4. ПЕРЕХОДЫ. ЦИКЛЫ.
Безусловный переход (близкий, прямой и косвенный), оператор SHORT. Коман-
да сравнения (CMP). Команды условного перехода (все). Команды управления
циклом (LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ). Вспомогательные операции оста-
нова программы и ввода-вывода (FINISH, INCH, ININT, FLUSH, OUTCH, OUTINT,
OUTWORD, OUTSTR, NEWLINE).
УПРАЖНЕНИЯ.
4.1 В регистре BL находится число от 0 до 15. Записать в BL код соответствующей шестнадцатеричной цифры как символа (в качестве "буквенных"
цифр использовать большие латинские буквы от 'A' до 'F').
4.2 X DD ?
Y DD ?
Рассматривая значения X и Y как беззнаковые числа, реализовать условный
переход на метку LESS, если X<Y.
4.3 Y - переменная-слово со значением от 1 до 2100. Определить, является ли год Y високосным, и в регистр CL записать 1, если является, и 0
в противном случае.
(По "новому стилю" високосными считаются года, кратные 4, однако из
всех годов, кратных 100, високосными являются лишь кратные 400: 1700,
1800 и 1900 - не високосные, 2000 - високосный).
4.4 H, M и S - байтовые переменные, причем 0<=H<24, 0<=M,S<60. Рассматривая H, M и S соответственно как число полных часов, минут и секунд,
прошедших к некоторому моменту суток, присвоить этим переменным значения,
соответствующие моменту, на 1 секунду большему. (Учесть смену суток.)
4.5 M и D - байтовые переменные (1<=M<=12 и 1<=D<=31). Рассматривая
значения этих переменных как дату некоторого дня (месяц и число) не високосного года, записать в эти переменные дату следующего дня. (Учесть смену года.)
4.6 P и Q - байтовые переменные, причем значением P является знаковое
число, а значение Q строго положительно. Рассматривая эти переменные как
дробь (рациональное число) P/Q, привести эту дробь к несократимому виду
(например, дробь (-45)/30 надо привести к виду (-3)/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 Для ввода задана последовательность следующего вида:
d1vd2v...vdk.
где 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 символов в каждом, решить
следующие задачи:
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.