TASKASM1 (1109490)

Файл №1109490 TASKASM1 (Ассемблер - упражнения)TASKASM1 (1109490)2019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

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 символов в каждом, решить

следующие задачи:

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

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

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов лабораторной работы

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