Информатика. Ассемблер для процессора I8086

Информатика, Ассемблер для процессора I8086


Заказать
ЛАБОРАТОРНАЯ РАБОТА № 1
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ, ВЫВОД СИМВОЛОВ,
ВЫВОД ДВОИЧНЫХ ЧИСЕЛ
Цель работы
Целью настоящей работы является первоначальное знаком-
ство с программой Debug — важнейшим помощником разработ-
чика программ на языке Ассемблер. С помощью этой программы
производится анализ и заполнение ячеек регистровой и опера-
тивной памяти, осуществляется пошаговое выполнение програм-
мы. Другая цель: знакомство с некоторыми инструкциями Ас-
семблера, выполняющими арифметические операции, знакомство
с инструкциями программного прерывания, с инструкциями пе-
ресылки данных, операторами сдвигов, операторами циклов.
В процессе выполнения работы решается практически важ-
ная задача вывода чисел на экран, осуществляется вывод на экран
двоичного числа в виде последовательности единиц и нулей.
Для успешного выполнения лабораторной работы № 1 нуж-
но изучить из пособия [1] темы 3. ПРОГРАММИРОВАНИЕ
АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ, 4. ВЫВОД СИМВОЛОВ НА
ЭКРАН, 5. ВЫВОД НА ЭКРАН ДВОИЧНЫХ ЧИСЕЛ. Для фор-
мирования строк символов и вывода их на экран воспользуйтесь
значениями из таблицы 1 и таблицы 2.

Таблица 1 — Коды ASCII

Символ 16-рич.
ASCII код
Символ 16-рич.
ASCII код
Символ 16-рич.
ASCII код
Символ 16-рич.
ASCII код
20 8 38 Р 50 H 68
! 21 9 39 Q 51 I 69
“ 22 : 3A R 52 J 6A
# 23 ; 3B S 53 k 6B
$ 24 < 3C T 54 L 6C
% 25 = 3D U 55 M 6D
& 26 > 3E V 56 n 6E
‘ 27 ? 3F W 57 o 6F
( 28 @ 40 X 58 p 70
) 29 A 41 Y 59 q 71
* 2A B 42 Z 5A r 72
8

Символ 16-рич.
ASCII код
Символ 16-рич.
ASCII код
Символ 16-рич.
ASCII код
Символ 16-рич.
ASCII код
+ 2B C 43 [ 5B s 73
, 2C D 44 \ 5C t 74
– 2D E 45 ] 5D u 75
. 2E F 46 ^ 5E v 76
/ 2F G 47 _ 5F w 77
0 30 H 48 ` 60 x 78
1 31 I 49 a 61 y 79
2 32 J 4А b 62 z 7A
3 33 K 4В c 63 { 7B
4 34 L 4C d 64 | 7C
5 35 M 4D e 65 } 7D
6 36 N 4E f 66 ~ 7E
7 37 O 4F g 67 DEL 7F

Таблица 2 — Коды букв русского алфавита
Символ Код(16) Символ Код(16) Символ Код(16) Символ Код(16)
А 80 Р 90 а А0 р Е0
Б 81 С 91 б А1 с Е1
В 82 Т 92 в А2 т Е2
Г 83 У 93 г А3 у Е3
Д 84 Ф 94 д А4 ф Е4
Е 85 Х 95 е А5 х Е5
Ж 86 Ц 96 ж А6 ц Е6
З 87 Ч 97 з А7 ч Е7
И 88 Ш 98 и А8 ш Е8
Й 89 Щ 99 й А9 щ Е9
К 8А Ъ 9А к АА ъ ЕА
Л 8В Ы 9В л АВ ы ЕВ
М 8С Ь 9C м AC ь EC
Н 8D Э 9D н AD э ED
О 8E Ю 9E о AE ю EE
П 8F Я 9F п AF я EF
Окончание табл. 1
9
Задание
Разработать с помощью Debug программу, выполняющую
вывод на экран текстового сообщения и последующее вычисле-
ние выражения:
Y=[(Х1+Х2)ХЗ–Х4]/Х5,
где Х1—Х5 — десятичные целые числа, выбранные в соответст-
вии с номером варианта из таблицы 3.
Результат вычисления выражения программа помещает в
регистры AX и DX. Нужно вывести эти результаты в двоичной
системе счисления.
Структура выходного сообщения программы:
“Программа вычисления выражения Y=[(Х1+Х2)ХЗ–Х4]/Х5, где
X1=..., X2=..., X3=..., X4=..., X5=...”
AX=0011110111000101 DX=0000000000010101
Промежуточные результаты можно будет наблюдать при
запуске программы в debug, выполняя пошаговое выполнение
инструкций.
Вместо точек должны выводиться заданные числа (в шест-
надцатеричной системе).
Таблица 3 — Варианты заданий к лабораторной работе № 1

вари-
анта
X1 X2 X3 X4 X5

вари-
анта
X1 X2 X3 X4 X5
1 275 361 15 2250 10 11 427 135 14 3221 15
2 413 228 14 4353 13 12 327 393 13 1929 12
3 199 328 16 3833 11 13 562 248 11 2520 17
4 355 436 13 4318 20 14 682 133 10 3563 22
5 359 537 11 5413 15 15 269 331 18 4151 14
6 227 199 19 2873 12 16 361 483 13 5621 22
7 436 327 13 3315 18 17 568 329 17 6209 21
8 521 263 12 2544 21 18 249 325 15 4683 16
9 324 391 17 4561 19 19 189 459 19 5394 19
10 614 134 17 8236 23 20 288 274 18 4815 20
10
Примечание 1. Загрузка в регистры заданных чисел (преоб-
разованных вручную в шестнадцатеричную систему) должна
производиться только с помощью инструкций MOV.
Примечание 2. Рекомендуется выполнить проверку резуль-
тата выполнения программы путем сравнения его с результатом
ручного счета. Так как при ручном счете используется десятич-
ная система счисления, то перед сравнением результатов их не-
обходимо записать в одной и той же системе.
Отчет по лабораторной работе должен содержать:
1. Титульный лист — форма титульного листа представлена
в Приложении 4.
2. Задание на лабораторную работу. В задании должен быть
указан номер варианта и представлены исходные данные из таб-
лицы 3.
На проверку необходимо отправить каталог LAB1, в кото-
рый нужно поместить:
1. Исполнимый файл программы, то есть файл с расширени-
ем .com. Имя файла может быть выбрано по Вашему усмотре-
нию, но придерживайтесь правил именования файлов для DOS —
имя должно состоять не более чем из 8 символов.
2. Отчет к лабораторной работе, выполненный с помощью
редактора Word.
11
ЛАБОРАТОРНАЯ РАБОТА № 2
ВВОД-ВЫВОД ЧИСЕЛ, ПРОГРАММИРОВАНИЕ
НА АССЕМБЛЕРЕ
Цель работы
В процессе выполнения работы решается практически важ-
ная задача вывода чисел на экран и их ввода с клавиатуры. Дан-
ная задача решается в следующей последовательности. Во-
первых, рассматривается задача вывода на экран шестнадцате-
ричных чисел. Во-вторых, рассматривается ввод шестнадцате-
ричных чисел с клавиатуры.
В ходе работы производится знакомство с очень важными
понятиями флагов состояния, стека и процедуры. Изучаются ин-
струкции для работы с этими объектами, а также инструкции
сдвига, цикла, условных переходов и некоторые другие.
Для успешного выполнения лабораторной работы № 2 нуж-
но изучить из пособия [1] темы: 6. ВЫВОД НА ЭКРАН ЧИСЕЛ В
ШЕСТНАДЦАТЕРИЧНОЙ ФОРМЕ, 9. ВВОД С КЛАВИАТУРЫ
ШЕСТНАДЦАТЕРИЧНЫХ ЧИСЕЛ.
Одной из целей работы является развитие навыков алгорит-
мизации задач и отладки программ.
До сих пор нашим единственным помощником при написа-
нии и отладке машинных программ была системная программа
Debug. Мы и далее будем широко использовать Debug при отлад-
ке своих программ. Что касается написания программы, то тут
помощь Debug явно недостаточна, и процесс написания сколько-
нибудь сложной программы скорее всего продлится очень долго.
По этой причине мы переходим к написанию программ на языке
ассемблера.
Целью выполнения данной работы является получение на-
чальных навыков по разработке программ на языке ассемблера. А
именно — рассматриваются псевдооператоры, позволяющие раз-
рабатывать простые ассемблерные программы, а также произво-
дится первоначальное знакомство с системными программами
(EDIT, NASM), обеспечивающими преобразование программы на
языке ассемблера в машинную программу.
Для этого из пособия [1] изучите темы и выполните все за-
дания к ним 11. ПРОСТЫЕ ПРОГРАММЫ НА АССЕМБЛЕРЕ,
12
12. ОСНОВНЫЕ ОПЕРАТОРЫ АССЕМБЛЕРА, 13. Пример про-
граммы на ассемблере, 14. ВЫВОД НА ЭКРАН ДЕСЯТИЧНЫХ
И ШЕСТНАДЦАТЕРИЧНЫХ ЧИСЕЛ.
Задание
Разработать на ассемблере и отладить программу, которая
выполняет:
1) ввод с клавиатуры двух 4-значных шестнадцатеричных
чисел (для ввода с клавиатуры можно использовать любые чис-
ла), которые записываются в качестве содержимого регистров BP
и DI;
2) вывод на экран содержимого регистров, заполненных на
шаге 1, в виде шестнадцатеричных чисел;
3) вывод на экран содержимого регистров, заполненных на
шаге 1, в виде десятичных чисел;
4) вывод на экран содержимого регистров, заполненных на
шаге 1, в виде двоичных чисел.
Пример информации на экране:
ВВЕДИТЕ СОДЕРЖИМОЕ РЕГИСТРА BP AD56<Enter>
ВВЕДИТЕ СОДЕРЖИМОЕ РЕГИСТРА DI 7F09<Enter>
ЧИСЛА В ШЕСТНАДЦАТЕРИЧНОЙ СИСТЕМЕ
(BP) = AD56 (DI) = 7F09
ЧИСЛА В ДЕСЯТИЧНОЙ СИСТЕМЕ
(BP) = 44374 (DI) = 32521
ЧИСЛА В ДВОИЧНОЙ СИСТЕМЕ
(BP) = 1010110101010110 (DI) = 0111111100001001
Примечание 1. Файловая структура программы должна
включать два файла типа .asm. В одном из них содержатся глав-
ная подпрограмма и тексты выводимых сообщений. Все осталь-
ные процедуры содержатся во втором файле.
Примечание 2. Все процедуры должны иметь вводные и те-
кущие комментарии.
Примечание 3. Рекомендуется дополнительно разработать
процедуру, выполняющую ввод шестнадцатеричного числа в
16-битный регистр, процедуру вывода содержимого такого реги-
13
стра в шестнадцатеричном виде, а также процедуру вывода со-
держимого 16-битного регистра в десятичной системе счисления
и в двоичной системе счисления.
Для того чтобы реализовать вывод на экран чисел в деся-
тичной системе счисления, воспользуйтесь алгоритмом вывода
десятичного числа из [1].
Примечание 4. При реализации вывода второй и третьей
шестнадцатеричных цифр числа, сдвигу числа вправо должен
предшествовать его сдвиг влево. Для выполнения сдвига влево
используйте инструкцию SHL («Shift Left» — логический сдвиг
влево). Использование этой инструкции аналогично SHR. Вы-
полнение SHL имеет такой же эффект, как и умножение на два,
четыре, восемь и так далее, в зависимости от числа (соответст-
венно единицы, двойки или тройки), хранящегося в СL.
Примечание 5. Для получения на экране достаточно хорошей
формы представления информации выполняйте вывод промежу-
точных пробелов. Число пробелов определяйте опытным путем.
Отчет по лабораторной работе № 2 должен содержать:
1. Титульный лист — форма титульного листа представлена
в Приложении 4.
2. Задание на лабораторную работу, для ввода с клавиатуры
можно использовать любые числа.
3. Дерево подпрограмм. Пример дерева подпрограмм приве-
ден в приложении 3 (рис. 4).
4. Файловую структуру программы. Примеры файловой
структуры программы приведены в [1] рис. 56 и 57.
На проверку необходимо отправить каталог LAB2, в кото-
рый нужно поместить:
1. Исходный файл программы, то есть файл с расширением
.asm. Имя файла может быть выбрано по Вашему усмотрению, но
придерживайтесь правил именования файлов для DOS — имя
должно состоять не более чем из 8 символов.
2. Исполнимый файл программы, то есть файл с расширени-
ем .com
3. Отчет к лабораторной работе, выполненный с помощью
редактора Word.
14
3 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ПОДГОТОВКЕ
К КОНТРОЛЬНЫМ РАБОТАМ
КОНТРОЛЬНАЯ РАБОТА № 1
ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В ЭВМ И ЭЛЕМЕНТЫ
ЯЗЫКА АССЕМБЛЕРА
Контрольная работа № 1 компьютерная и выполняется в
диалоге с контролирующей программой. Ниже приводятся при-
меры решений заданий и методические рекомендации по их вы-
полнению.
Задание 1. Получить двоичное представление заданного це-
лого десятичного числа.
Указания. Для преобразования десятичного числа в двоич-
ное можно использовать метод вычитаний.
Пример. Получить двоичное представление десятичного
числа 5000.
Решение. Выполним вычитания:
_ 5000
4096 (бит 12)
_904
512 (бит 9)
_ 392
256 (бит 8)
_ 136
128 (бит 7)
_ 8
8 (бит 3)
0
15
Заполним биты двоичного числа, начиная с младшего:
1001110001000 (ответ).
Задание 2. Найти разность двух заданных положительных
двоичных чисел.
Указания. Вычитание двух положительных чисел следует
выполнить сложением первого из них с дополнением второго
(отрицательного) числа. Прежде чем получать дополнение отри-
цательного числа, необходимо исходное положительное число
дополнить слева незначащими нулями до байта или слова (в за-
висимости от величины числа). Иначе — знаковый бит числа (бит
7 для байта, бит 15 для слова) будет отсутствовать.
Пример. Найти разность двоичных чисел 1010100100111 и
110010010011001.
Решение. Расширим второе число до 16 бит:
0110010010011001. Найдем дополнительный код этого же числа,
но взятого со знаком «–» :
1) инвертируем все биты: 1001101101100110
2) прибавляем 1: + 1
1001101101100111
Суммируем первое число с полученным дополнением:
1010100100111
+ 1001101101100111
1011000010001110 (ответ)
Задание 3. Найти разность двух заданных положительных
шестнадцатеричных чисел. (Из большего числа вычесть мень-
шее.)
Указания. Вычитание шестнадцатеричных чисел выполняет-
ся аналогично вычитанию десятичных чисел с той лишь разни-
цей, что занимаемая из старшего разряда единица, в текущем
разряде составляет не 10, а 16 единиц.
16
Пример. Найти разность шестнадцатеричных чисел A74F и
8E5C.

Решение: _A74F
8E5C
18F3 (ответ).
Задание 4. Пусть в данный момент времени некоторые ре-
гистры содержат:
(регистр 1) =XXXXh, . . ., (регистр n) = XXXXh
Каков (в шестнадцатеричной системе) физический адрес
ячейки ОП, содержащей:
1) младший байт следующей исполняемой на ЦП инструк-
ции;
2) младший байт вершины стека;
3) байт данных, обрабатываемый текущей инструкцией [ин-
струкция].
Указания. Для получения физического адреса искомой
ячейки необходимо просуммировать содержимое соответствую-
щего регистра сегмента, умноженное на 16 (10h), с содержимым
регистра, в котором находится внутрисегментное смещение.
Пример. Пусть в данный момент времени некоторые реги-
стры содержат:
. . . . (DS) = 3FA5h . . . (BX) = 4A84h
Найти физический адрес ячейки ОП, содержащей байт дан-
ных, обрабатываемый текущей инструкцией: MOV [BX], AL
Решение.
R = (DS) x 16 + (BX) = 3FA5 x 10h + 4A84 = 3FA50 + 4A84 =
= 444D4 (ответ).

Задание 5. Пусть в данный момент времени некоторые ре-
гистры содержат:
(регистр 1) =XXXXh, . . ., (регистр n) = XXXXh
17
Каково будет содержимое указателя команды (или указателя
стека) в результате выполнения следующих машинных инструк-
ций [инструкции с указанием их длины].
Указания. Каждая выполняемая инструкция обработки дан-
ных влияет на содержимое указателя команды IP в соответствии
со своей длиной, а инструкция передачи управления — в соот-
ветствии со своим адресом перехода.
На указатель стека SP влияют только некоторые инструк-
ции, а именно: PUSH, POP, CALL, RET, INT, IRET, PUSHF,
POPF. При этом следует учесть, что стек «растет» в сторону
меньших адресов.
Пример. Пусть в данный момент времени некоторые реги-
стры содержат:
. . . (SP) = FE4A .
Каково будет содержимое указателя стека после выполне-
ния следующих инструкций:
PUSH AX (длина 1 байт)
PUSH BX (длина 1 байт)
RET (длина 1 байт)
CALL 200h (длина 3 байта)
Решение. Инструкции PUSH и CALL добавляют в стек по
одному слову (2 байта), а инструкция RET берет слово из стека.
Следовательно, длина стека увеличится на 4 байта. Новое содер-
жимое регистра SP:
(SP) = FE4A – 4 = FE46 (ответ).

Задание 6. Записать содержимое (в шестнадцатеричной сис-
теме) заданного регистра, полученное в результате выполнения
следующих операторов ассемблера [операторы].
Указания. Для подготовки к выполнению задания рекомен-
дуется использовать информацию о логических операторах.
18
Пример. Записать содержимое регистра BX, полученное в
результате выполнения операторов:
MOV BX, 0ABCDh
MOV CX, 0707h
AND BX, CX
Решение. Сначала запишем двоичное содержимое регистров
BX и CX до выполнения операции AND:
(BX) = 1010101111001101
(CX) = 0000011100000111
Выполним операцию AND и переведем результат в шестна-
дцатеричную систему:
1010101111001101
AND 0000011100000111
0000001100000101
[ 0 ][ 3 ] [ 0 ] [ 5 ] Ответ: 305.
Задание 7. Указать номер неправильного оператора переда-
чи данных в следующем списке операторов [операторы MOV].
Указание. Для подготовки к выполнению задания рекомен-
дуется использовать информацию о операторах передачи данных
и о вспомогательных псевдооператорах.
Пример. Указать номер неправильного оператора в списке:
1) MOV AX, 0FFFFh
2) MOV AL, DL
3) MOV BH, OFFSET Table
4) MOV Arg, AX
5) MOV DL, BYTE PTR Table
Решение. Неправильным является оператор 3, так как для
размещения смещения адреса (оно задается псевдооператором
OFFSET) всегда требуются 16 бит памяти, то есть слово. А длина
регистра BH — 8 битов. Ответ: 3.
19
Задание 8. Записать содержимое (в шестнадцатеричной сис-
теме) заданного регистра, полученное в результате выполнения
следующих операторов ассемблера [операторы].
Указания. Для подготовки к выполнению задания рекомен-
дуется использовать информацию о операторах сдвига.
Пример. Записать содержимое регистра AL, полученное в
результате выполнения операторов:
MOV AL, 7Ah
STC
RCR AL, 1
Решение. Определим содержимое регистра AL до выполне-
ния оператора RCR:
(AL) = 7Ah = 01111010
Оператор RCR (циклический сдвиг вправо через перенос)
выталкивает содержимое младшего бита первого операнда и по-
мещает его в флаг CF, а прежнее содержимое CF заносит в стар-
ший бит операнда. Так как оператор STC поместил в CF 1, то в
результате выполнения RCR:
(AL) = 10111101 = BDh, ответ: BD.
Задание 9. Записать содержимое (в десятичной системе) за-
данного регистра, полученное в результате выполнения следую-
щих операторов ассемблера [операторы].
Указания. Для подготовки к выполнению задания рекомен-
дуется использовать информацию об операторах условных пере-
ходов и об операторах цикла.
Пример. Записать содержимое регистра AX, полученное в
результате выполнения операторов:
XOR AX, AX
MOV BX, 20
A1: CMP BX, 10h
20
JBE Next
INC AX
DEC BX
JMP A1
Next: . . . . . . . .
Решение. В записанном фрагменте программы первые два
оператора выполняют инициализацию цикла ПОКА, а после-
дующие операторы кодируют сам этот цикл. Условием повторе-
ния цикла является условие (BX)>10h. Оператор условного пере-
хода JBE (перейти, если меньше или равно) реализует выход из
цикла. Этот оператор используется для переходов после сравне-
ния беззнаковых чисел, каковыми являются операнды оператора
CMP — (BX) и 10h.
При первом выполнении оператора CMP значение (BX)=20,
что явно больше, чем 16 (10h). В результате первого выполнения
цикла (AX)=1, а (BX)=19. В результате четвертого выполнения —
(AX)=4, (BX)=16. Это выполнение цикла является последним, так
как следующее выполнение оператора JBE реализует выход из
цикла на оператор с меткой Next.
Ответ: 4.
Задание 10. Предлагается определить длину зарезервиро-
ванного участка памяти или длину выводимого на экран сообще-
ния.
Указания. Для подготовки к выполнению задания рекомен-
дуется использовать информацию о псевдооператорах определе-
ния данных.
Пример. Указать длину (в байтах) участка памяти, резерви-
руемого следующими операторами:
Mas1 DB 10 DUP (?)
Pere DW 10, 20h, ‘Ab’
Text ‘Hello’
Решение. ОП резервируется тремя псевдооператорами. Пер-
вый оператор резервирует 10 байтов, второй — 6 байтов (3 сло-
21
ва), третий — 5 байтов. Общее число резервируемых байтов па-
мяти — 21 (ответ).
Остальные задания — на знание теории. Чтобы успешно
выполнить эти задания, внимательно изучите все разделы посо-
бия [1].
КОНТРОЛЬНАЯ РАБОТА № 2
РАЗРАБОТКА ПРОГРАММЫ НА АССЕМБЛЕРЕ
Введение
Целью выполнения данной работы является комплексная
проверка навыков программирования на языке ассемблера.
Результаты работы представляются в виде совокупности
следующих документов:
1) титульный лист;
2) дерево подпрограмм;
3) файловая структура программы;
4) блок-схемы алгоритмов процедур;
5) исходный файл (файлы) программы;
6) загрузочный модуль программы.
Пример титульного листа приведен в Приложении 4.
Пример дерева подпрограмм приведен в Приложении 3 (рис. 4).
Примеры файловой структуры программы приведены в [1]
рис. 56 и 57.
Основным требованием к блок-схемам алгоритмов процедур
является выполнение требований структурного программирова-
ния [приложение 3]. Примеры алгоритмов процедур приведены в
[1] на рис. 54.
Основным требованием к исходным модулям (файлам) про-
граммы является наличие комментариев.
Дерево подпрограмм, файловая структура программы и
блок-схемы процедур представляются в виде файлов, получен-
ных с помощью текстового редактора Word. Остальные докумен-
ты представляются в виде файлов с расширениями .asm и .com и
помещаются в папку CONTR2.
22
Варианты заданий контрольной работы № 2
Вариант 1. По запросу программы пользователь вводит с
клавиатуры последовательность целых двузначных положитель-
ных десятичных чисел, разделенных пробелами. Ввод последова-
тельности заканчивается нажатием <Enter>.
Программа выводит на экран сумму этих чисел, представ-
ленную в десятичной и шестнадцатеричной системах счисления.
Вариант 2. По запросу программы пользователь вводит с
клавиатуры целое положительное десятичное число N. По сле-
дующему запросу он вводит с клавиатуры N целых трехзначных
положительных десятичных чисел, разделенных пробелами.
Программа выводит на экран сумму этих чисел, представ-
ленную в десятичной и «троичной» системах счисления.
Вариант 3. По запросу программы пользователь вводит с
клавиатуры последовательность целых трехзначных положитель-
ных десятичных чисел, разделенных пробелами. Ввод последова-
тельности заканчивается нажатием <Enter>.
Программа выводит наибольшее число из введенных, пред-
ставленное в десятичной и «пятиричной» системах счисления.
Вариант 4. По запросу программы пользователь вводит с
клавиатуры целое положительное десятичное число N. По сле-
дующему запросу он вводит с клавиатуры N целых трехзначных
положительных десятичных чисел, разделенных пробелами.
Программа выводит наибольшее число из введенных, пред-
ставленное в десятичной и шестнадцатеричной системах счисле-
ния.
Вариант 5. По запросу программы пользователь вводит с
клавиатуры последовательность целых трехзначных положитель-
ных десятичных чисел, разделенных пробелами. Ввод последова-
тельности заканчивается нажатием <Enter>.
Программа выводит наименьшее число из введенных, пред-
ставленное в десятичной и восмеричной системах счисления.
Вариант 6. По запросу программы пользователь вводит с
клавиатуры целое положительное десятичное число N. По сле-
дующему запросу он вводит с клавиатуры N целых трехзначных
положительных десятичных чисел, разделенных пробелами.
Программа выводит наименьшее число из введенных, пред-
ставленное в десятичной и «шестиричной» системах счисления.
23
Вариант 7. По запросу программы пользователь вводит с
клавиатуры последовательность целых трехзначных положитель-
ных десятичных чисел, разделенных пробелами. Ввод последова-
тельности заканчивается нажатием <Enter>.
Программа выводит последовательность этих же чисел, но
записанных в обратном порядке и в шестнадцатеричной системе
счисления.
Вариант 8. По запросу программы пользователь вводит с
клавиатуры последовательность целых трехзначных положитель-
ных десятичных чисел, разделенных пробелами. Ввод последова-
тельности заканчивается нажатием <Enter>.
Программа выводит эти же числа на экран в порядке убыва-
ния величины числа, причем в двоичной системе счисления.
Вариант 9. По запросу программы пользователь вводит с
клавиатуры последовательность целых трехзначных положитель-
ных десятичных чисел, разделенных пробелами. Ввод последова-
тельности заканчивается нажатием <Enter>.
Программа выводит эти же числа на экран в порядке возрас-
тания величины числа, причем в «девятиричной» системе счис-
ления.
Вариант 10. По запросу программы пользователь вводит с
клавиатуры целое положительное десятичное число N. По сле-
дующему запросу он вводит с клавиатуры N целых трехзначных
положительных десятичных чисел, разделенных пробелами.
Программа выводит эти же числа на экран в порядке возрас-
тания величины числа, причем в «троичной» системе счисления.
Вариант 11. По запросу программы пользователь вводит с
клавиатуры целое положительное десятичное число N. По сле-
дующему запросу он вводит с клавиатуры N целых трехзначных
положительных десятичных чисел, разделенных пробелами.
Программа выводит последовательность этих же чисел, но
записанных в обратном порядке и в восьмеричной системе счис-
ления.
Вариант 12. По запросу программы пользователь вводит с
клавиатуры целое положительное десятичное число N. По сле-
дующему запросу он вводит с клавиатуры N целых трехзначных
положительных десятичных чисел, разделенных пробелами.
24
Программа выводит эти же числа на экран в порядке убыва-
ния величины числа, причем в шестнадцатеричной системе счис-
ления.
Вариант 13. По запросу программы пользователь вводит с
клавиатуры сообщение на русском языке, заканчивающееся сим-
волом «.» или «!».
Программа выводит на экран это же сообщение, записанное
только заглавными буквами.
Вариант 14. По запросу программы пользователь вводит с
клавиатуры сообщение на русском языке, заканчивающееся сим-
волом «.» или «?».
Программа выводит на экран это же сообщение, записанное
только строчными (малыми) буквами.
Вариант 15. По запросу программы пользователь вводит с
клавиатуры сообщение на английском языке, заканчивающееся
символом «.» или «?».
Программа выводит на экран это же сообщение, записанное
только заглавными буквами.
Вариант 16. По запросу программы пользователь вводит с
клавиатуры сообщение на английском языке, заканчивающееся
символом «.» или «!».
Программа выводит на экран это же сообщение, записанное
только строчными (малыми) буквами.
Вариант 17. По запросу программы пользователь вводит с
клавиатуры два целых четырехзначных положительных десятич-
ных числа, разделенных знаком операции «+» или «–».
Программа выводит на экран результат операции в двух
системах счисления — в десятичной и в двоичной (в дополни-
тельном коде).
Вариант 18. По запросу программы пользователь вводит с
клавиатуры два целых четырехзначных положительных десятич-
ных числа, разделенных знаком операции « * »
Программа выводит на экран результат операции умноже-
ния.
Вариант 19. По запросу программы пользователь вводит с
клавиатуры два целых четырехзначных положительных десятич-
ных числа, разделенных знаком операции « / »
25
Программа выводит на экран результат операции деления
(частное и остаток).
Вариант 20. По запросу программы пользователь вводит с
клавиатуры два целых трехзначных положительных десятичных
числа.
Программа выводит на экран сообщение о том, делится ли
первое число на второе без остатка, а затем сообщение — делится
ли без остатка второе число на первое.
Примечание 1
При вводе с клавиатуры десятичного числа следует учесть,
что получение двоичного представления такого числа выполняет-
ся иначе по сравнению с шестнадцатеричным числом. При этом
каждую очередную десятичную цифру следует умножить на вес
позиции числа, а затем просуммировать результаты умножения.
Например, при вводе 3-значного числа первая цифра умножается
на сто, вторая — на десять, а третья цифра берется без изменения.
Примечание 2
Для перевода числа из десятичной системы счисления в лю-
бую другую воспользуйтесь алгоритмом вывода на экран деся-
тичных и шестнадцатеричных чисел, тема в пособии 14. ВЫВОД
НА ЭКРАН ДЕСЯТИЧНЫХ И ШЕСТНАДЦАТЕРИЧНЫХ ЧИ-
СЕЛ.


Форма заказа

Для удобства наших клиентов, проходящих обучение на ФДО ТУСУРа, была создана данная форма заказа, с помощью которой Вы можете БЕСПЛАТНО УЗНАТЬ СТОИМОСТЬ оказания помощи в выполнении работ по тем дисциплинам, которые Вам необходимы. Если Вы хотите заказать ОПТОМ выполнение одного и более семестров, то мы предложим Вам выполнение работ под ключ по самым выгодным ценам. Пожалуйста свяжитесь с нами по следующим контактам

Помощь студентам ФДО ТУСУР
Пожалуйста, заполните все необходимые поля формы:

Ваше имя*:
Ваш город*:
Ваша страна:
Ваш E-mail*:
Сотовый:
ICQ:
Ваша учебная специальность:

Список дисциплин и работ, которые необходимо выполнить*:
Работы необходимо выполнить до:


Введите код с картинки:
код

ВНИМАНИЕ ! На работу предоставляется гарантия - т.е. мы БЕСПЛАТНО внесем в её текст все необходимые дополнения/изменения если это потребуется в будущем (в течение 6-и месяцев). Другими словами - в течение полугода Вы можете обращаться с доработками данного заказа по рецензиям преподавателя (включая просто дополнительные вопросы преподавателя) - мы всё сделаем БЕСПЛАТНО и в кратчайшие сроки (стандартное время доработки: 2-3 дня, если нужно экстренно - то 24 часа). Заказ будет дорабатываться неограниченное количество раз в рамках 6-и месяцев с момента первичного выполнения заказа, если доработки понадобятся по истечении данного срока, то они также возможны, но за дополнительную плату. Критерием защиты работы является оценка 4(хорошо), либо получение зачёта. Если Вы получите зачёт с оценкой 3(удовлетворительно) это будет считаться достижением цели. Вы не вправе требовать от нас частичный возврат средств если Вам поставят тройку, т.к. мы готовы дорабатывать заказ до четверки, если есть техническая возможность такой пересдачи.

 Я принимаю Пользовательское соглашение