TASK_ASM (1000388)

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

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

1. ОПИСАНИЕ ДАННЫХ. ПЕРЕСЫЛКИ.

1.1 Для каждой из указанных директив выписать эквивалентную ей директиву, где начальное значение переменной записано в 16-ричном виде.

а) A DB 17 б) B DB 15 в) V DB 255 г) G DB 150

д) D DB -17 е) E DB -1 ж) J DB -106 з) Z DB -128

и) I DW 17 к) K DW -17 л) L DW -1 м) M DW 256

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

а) A DB 0Ah б) B DB 0A5h в) V DB 7Fh г) G DB 80h

д) D DB 101b е) E DW 0FFFEh ж) J DW 7Fh з) Z DW 80h

1.3 A DW 1020h

B DD 10203040h

Указать в 16-ричном виде значения байтов с адресами: A и A+1; B, B+1, B+2 и B+3.

1.4 Описать переменную D размером в двойное слово с начальным значением 216.

1.5 Записать более простым способом директиву

C DB '5'+1

1.6 Описать переменную-слово X, начальным значением которой является:

а) адрес этой же переменной;

б) адрес следующего слова памяти;

в) адрес предыдущего слова памяти.

1.7 A DB 0,1,2

B DB 3,4,5,6

Указать значения байтов с адресами: A+1, B+2, A+4 и B-1.

1.8 Описать байтовый массив PRIM из 7 элементов, начальными значениями которых являются первые семь простых чисел (2, 3, 5 и т.д.).

1.9 Выписать все возможные варианты (кроме тех, где указываются коды букв) описания символьного массива S, начальными значениями элементов которого являются первые три большие буквы русского алфавита.

1.10 Описать массив X из 85 элементов-слов со следующими начальными значениями:

а) первые 40 элементов имеют значение 10, следующие 20 элементов - значение '*', остальные - без начального значения;

б) средний элемент имеет значение 1, а все остальные - значение 0.

1.11 Описать байтовую матрицу M размера 30x50, в каждой строке которой первые 47 элементов имеют значение -1, а последние три - значение 'q'.

1.12 S DB 'ABCD'

W DW 10 DUP(?)

Указать значения выражений TYPE S и TYPE W.

1.13 K EQU 90

X DB K+10 DUP((K+9)/3 DUP(?))

Сколько всего байтов занимает массив X?

1.14 N EQU 30

Описать байтовую единичную матрицу E размера NxN.

1.15 Воспользоваться подходящей директивой EQU и предложить более короткий вариант записи директивы

S DB "abcdefhg=abcdef+k"

1.16 Указать начальные значения элементов массивов 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

1.17 N EQU 10

X DB ?

Y DW ?

Разделить следующие конструкции на три группы: 1) на константные выражения, 2) на адресные выражения и 3) на неправильные выражения.

а) Y+Y-X б) Y+(Y-X) в) (X-Y)/2 г) X-Y/2

д) Y-N е) N-Y ж) 2*N+1 з) 2*X+1

Замечание. В упражнениях 1.18-1.22 требуется выписать команды, решающие указанные задачи.

1.18 A DB 3 DUP(?)

Рассматривая эту переменную как массив A[1..3]:

а) присвоить A[1]:=1, A[2]:=2, A[3]:=3;

б) циклически сдвинуть на 1 позицию влево элементы массива A.

1.19 A DW ?,?

B DW ?,?

X DD ?

Y DD ?

Переменной A присвоить значение (два слова) переменной B, а переменной X - значение переменной Y.

1.20 Q DD ?

Переменной Q присвоить значение 75535. (Вспомогательные переменные не использовать.)

1.21 X DB ?

Y DB ?

Поменять местами значения переменных X и Y.

1.22 Z DW ?

Поменять местами байты слова Z.

1.23 A DW -73

B DW ?

Указать в 16-ричном виде значение переменной B после выполнения следующих команд:

MOV AX,A

MOV BYTE PTR B,AH

MOV BYTE PTR B+1,AL

1.24 B DB ?

W DW ?

Среди перечисленных команд указать те, что записаны с ошибкой.

а) MOV BP,SP б) MOV AX,BL в) MOV DX,'*' г) MOV CH,500

д) MOV BX,B е) MOV SI,W+1 ж) MOV W,SI+1 з) MOV B,BYTE PTR CX

и) MOV B,80h к) MOV B,W-B л) MOV B,-130 м) MOV W,W+2

н) XCHG AH,AL о) XCHG W,CX п) XCHG B,B+1 р) XCHG W,15

2. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ.

2.1 Указать значения регистра AL (в виде десятичного числа без знака) и флагов CF и ZF после выполнения следующей пары команд:

а) MOV AL,100 б) MOV AL,100 в) MOV AL,100 г) MOV AL,100

ADD AL,100 ADD AL,156 SUB AL,90 SUB AL,190

2.2 Указать значения регистров AH и AL (в виде десятичных чисел без знака) и флагов CF и ZF после выполнения следующих команд:

а) MOV AH,0 б) MOV AH,0 в) MOV AH,255 г) MOV AH,20

MOV AL,160 MOV AL,160 MOV AL,255 MOV AL,10

ADD AL,60 ADD AL,160 ADD AL,1 SUB AL,16

ADC AH,3 ADC AH,3 ADC AH,0 SBB AH,0

2.3 Указать значения регистра BH (в виде десятичного числа со знаком) и флагов OF и SF после выполнения следующей пары команд:

а) MOV BH,80 б) MOV BH,80 в) MOV BH,-80 г) MOV BH,-80

ADD BH,40 ADD BH,50 ADD BH,-40 ADD BH,-50

д) MOV BH,80 е) MOV BH,-80 ж) MOV BH,80 з) MOV BH,-80

ADD BH,-40 ADD BH,40 SUB BH,100 SUB BH,50

2.4 Указать значения регистра CL (в виде как знакового, так и беззнакового десятичных чисел) и флагов CF, OF, SF и ZF после выполнения следующей пары команд:

а) MOV CL,128 б) MOV CL,-10 в) MOV CL,246 г) MOV CL,40

ADD CL,128 ADD CL,-40 ADD CL,216 SUB CL,100

2.5 Указать исходное значение регистра AL (любое из возможных), при котором после выполнения команды ADD AL,2 флаги имели бы следующие значения:

а) CF=1, OF=0, SF=0 б) CF=0, OF=1, SF=1

2.6 Доказать следующие утверждения:

а) Если операнды команды ADD интерпретировать как знаковые числа, то флаг OF получает в этой команде значение 1 тогда и только тогда, когда эти числа имеют один и тот же знак, а у результата команды - иной знак.

б) Если операнды команды SUB x,y интерпретируются как знаковые числа и x<y, то после выполнения этой команды флаги OF и SF обязательно будут иметь разные значения (OFSF).

в) После выполнения команды ADD флаги никогда не будут иметь следующие значения:

в1) CF=OF=SF=1; в2) CF=0, OF=1, SF=0;

г) После выполнения команды SUB возможны следующие значения флагов: CF=OF=SF=1.

2.7 X DB ?

Требуется записать в регистр CL значение переменной X, увеличенное на 2. Определить, какой из следующих двух фрагментов правильно решает эту задачу:

а) MOV CL,X б) MOV CL,X+2

ADD CL,2

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

а) SUB BH,'A' б) ADD BH,'a'-'A' в) MOV BH,BH-'A'+'a'

ADD BH,'a'

2.9 A EQU 7

X DB ? ; 0X80

Реализовать наименьшим числом команд следующее присваивание:

а) X:=3*X б) X:=2*(A+X)+6

2.10 Указать (в 16-ричном виде) значение регистра AX после выполнения следующих команд:

а) MOV AL,80h б) MOV AL,80h в) MOV AL,7Fh г) MOV AL,80h

MOV BL,2 MOV BL,2 CBW CBW

MUL BL IMUL BL

Замечание. В упражнениях 2.11-2.20 требуется выписать команды, решающие указанную задачу.

2.11 A DB ?

B DW ?

Записать в B число, равное по величине числу из A, при условии, что:

а) A - число без знака;

б) A - число со знаком.

2.12 N DB ? ; число без знака

K DW ?

Вычислить: K=N*(N+1)/2

2.13 A DW ? ; число со знаком

B DW ?

Вычислить: B=(A div 1000) * (A mod 1000)

2.14 Пусть A, B, C и X - знаковые байтовые переменные, а Y - переменная типа DWORD. Вычислить: Y=A*X2+B*X+C

2.15 N DW ? ; 1N365

WD DB ?

Записать в WD номер дня недели (1 - понедельник, ..., 7 - воскресенье), на который приходится N-й день года, считая, что 1 января этого года - понедельник.

2.16 Пусть H, M и S - байтовые переменные, а T - переменная типа DWORD. Считая, что от начала суток прошло H часов (0H<24), M минут и S секунд (0M,S<60), определить, сколько всего секунд прошло от начала суток к этому моменту времени. Ответ записать в T.

2.17 Пусть T - переменная размером в двойное слово, а H, M и S - байтовые переменные. Считая, что прошло T секунд (0T<86400) от начала суток, определить, сколько полных часов (H), минут (M) и секунд (S) прошло к этому моменту времени.

2.18 Пусть D1, D2 и N - байтовые переменные. Считая, что значения D1 и D2 - это символы-цифры (от "0" до "9"), записать в N число, десятичная запись которого составлена из этих цифр (D1 - левая цифра).

2.19 N DW ? ; 100N999

Записать в N число, полученное выписыванием в обратном порядке десятичных цифр исходного числа из N (например, 125  521).

2.20 X DD ?

Y DD ?

Z DD ?

W DD ?,?

Реализовать следующие операции над "длинными" числами:

а) Z=X+Y (считать, что сумма укладывается в двойное слово);

б) Z=X-Y (считать XY);

в) W=X*Y (считать X и Y беззнаковыми числами).

2.21 A DB ?

B DW ?

Среди перечисленных команд указать те, что записаны с ошибкой:

а) ADD BX,'*' б) SUB AL,400 в) ADC BH,BL г) SBB AX,BL

д) ADD BX,B е) SUB CX,A ж) ADC B,'B' з) SUB A,BYTE PTR B

и) CBW AL к) MUL AL л) DIV 100 м) DEC A+1

3. ПЕРЕХОДЫ. ЦИКЛЫ. ВВОД-ВЫВОД.

3.1 X DB 206 ; (-50)

Определить, будет ли сделан переход на метку MET при выполнении следующих команд:

а) CMP X,210 б) CMP X,210 в) CMP X,-40 г) CMP X,-40 д) CMP X,216

JA MET JE LAB JG MET JL MET JL MET

JB MET

3.2 X DW ? ; число со знаком

Определить, какой из следующих фрагментов правильно реализует оператор

if X>80 then X:=X-1 else X:=X+1

а) CMP X,80 б) CMP X,80 в) CMP X,80 г) CMP X,80

JLE M JG M JLE M JNG M

DEC X DEC X DEC X DEC X

M: INC X JMP L JMP L JMP L

M: INC X M: INC X M: INC X

L: L: L:

3.3 Упростить (записать меньшим числом команд) следующий фрагмент:

а) CMP AH,0 б) CMP AH,0 в) L: ADD AX,AX г) L: ADD AX,AX

JE M JL M1 DEC BX DEC CX

JG M JMP M CMP BX,0 CMP CX,0

NEG AH M1: NEG AH JE M JNE L

M: M: JMP L

M:

3.4 Пусть X и Y - знаковые байтовые переменные, а L - метка. Реализовать следующие условные переходы:

а) if (X>2) or (Y<10) then goto L;

б) if (X>2) and (Y<10) then goto L

3.5 Пусть X, Y, Z и W - знаковые переменные-слова. Реализовать следующее присваивание:

а) Y:=abs(X) б) Z:=min(X,Y) в) W:=max(X+10,2*Y,8-Z)

3.6 В регистре BL находится число от 0 до 15. Записать в BL код соответствующей шестнадцатиричной цифры как символа (в качестве "буквенных" цифр использовать большие латинские буквы от 'A' до 'F').

3.7 X DD ?

Y DD ?

Рассматривая значения X и Y как беззнаковые числа, реализовать условный переход на метку LESS, если X<Y.

3.8 N DW ? ; 0N999

Определить, содержит ли десятичная запись числа N цифру 5. Ответ - 1 (содержит) или 0 - записать в регистр DL.

3.9 Пусть Y - переменная-слово со значением от 1 до 2100. Определить, является ли год Y високосным, и в регистр CL записать 1, если является, и 0 в противном случае. (По "новому стилю" високосными считаются года, кратные 4, однако из всех годов, кратных 100, високосными являются лишь кратные 400: 1700, 1800 и 1900 - невисокосные, 2000 - високосный).

3.10 Пусть H, M и S - байтовые переменные, причем 0H<24, 0M,S<60. Рассматривая H, M и S соответственно как число полных часов, минут и секунд, прошедших к некоторому моменту суток, присвоить этим переменным значения, соответствующие моменту, на 1 секунду большему. (Учесть смену суток.)

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 Дана последовательность символов (отличных от точки), за которой следует точка. Определить, сбалансирована ли эта последовательность по круглым скобкам. Ответ: ДА или НЕТ.

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

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

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

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

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

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

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

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