ВУЗ:
Составители:
8
7. Разные задачи
1. Дан байт в пределах от 0 до FFh (выполнить ввод из порта № 2). Выдать на дисплей
как целое число со знаком в пределах от -128 до +127.
2. Дано целое число в пределах 0…40. Возвести это число в куб и результат оставить в
регистре АХ.
3. Дан байт, представляющий собой число в стандартном двоичном коде. Преобразо-
вать его в код Грея или какой-либо другой (см. таблицу). Использовать для преобра-
зования команду XLAT.
Двоичный код Код Грея Код со сдвигом 3 Код «два из пяти»
0 0 0 0 0 0 0 1 1 11000
0 0 1 0 0 1 1 0 0 00011
0 1 0 0 1 1 1 0 1 00101
0 1 1 0 1 0 1 1 0 00110
1 0 0 1 1 0 1 1 1 01001
1 0 1 1 1 1 0 0 0 01010
1 1 0 1 0 1 0 0 1 01100
1 1 1 1 0 0 0 1 0 10001
4. Дан байт или слово, размещённые в регистрах AL или AX соответственно. Написать
подпрограмму (процедуру), выводящую их на виртуальный дисплей как десятичное
целое без знака. Число должно быть выдано на первую (верхнюю) строку дисплея,
причём начальная позиция его расположения должна передаваться в подпрограмму
через регистр BL (если BL = 0 - вывод с левого верхнего угла). Подпрограмма долж-
на быть объявлена с помощью директив PROC и ENDP, вызываться командой CALL
и возвращать управление в вызвавшую программу по команде RET. Примечание.
Внимательно изучите тексты программ HexToDec.asm и PrintNumber.asm, находя-
щиеся в папке Examples системы программирования AsmEd.
5. Необходимо разработать программное обеспечение для карманной электронной иг-
рушки, умеющей отгадывать календарные даты (дни рождения). Человек загадывает
календарную дату, умножает число (номер дня в месяце = X) на 12, прибавляет но-
мер месяца (Y) и результат сообщает отгадчику. Так, при дате 10 января будет сооб-
щён результат 12X+Y = 12*10 + 1 = 121. Отгадчик должен действовать по следую-
щему алгоритму: определить остаток R от деления результата на 12, и тогда при R=0
имеем Y=12, в противном случае Y=R. Теперь, зная Y, уже легко найти X: из сооб-
щённого результата вычитаем Y и то, что получилось, делим на 12.
В нашем примере Y = 121 mod 12 = 1 (январь), X = (121-1)/12 = 10 (число), та-
ким образом, дата 10 января отгадана.
Написать программу, работающую в качестве отгадчика. Человек вводит резуль-
тат своих подсчётов в порт № 2. Программа выдаёт отгаданную дату на виртуальный
дисплей в следующем формате: XX.YY, в нашем примере - 10.01. Использовать под-
программу вывода числа, разработанную при решении предыдущей задачи (№ 4).
8 7. Разные задачи 1. Дан байт в пределах от 0 до FFh (выполнить ввод из порта № 2). Выдать на дисплей как целое число со знаком в пределах от -128 до +127. 2. Дано целое число в пределах 0…40. Возвести это число в куб и результат оставить в регистре АХ. 3. Дан байт, представляющий собой число в стандартном двоичном коде. Преобразо- вать его в код Грея или какой-либо другой (см. таблицу). Использовать для преобра- зования команду XLAT. Двоичный код Код Грея Код со сдвигом 3 Код «два из пяти» 000 000 011 11000 001 001 100 00011 010 011 101 00101 011 010 110 00110 100 110 111 01001 101 111 000 01010 110 101 001 01100 111 100 010 10001 4. Дан байт или слово, размещённые в регистрах AL или AX соответственно. Написать подпрограмму (процедуру), выводящую их на виртуальный дисплей как десятичное целое без знака. Число должно быть выдано на первую (верхнюю) строку дисплея, причём начальная позиция его расположения должна передаваться в подпрограмму через регистр BL (если BL = 0 - вывод с левого верхнего угла). Подпрограмма долж- на быть объявлена с помощью директив PROC и ENDP, вызываться командой CALL и возвращать управление в вызвавшую программу по команде RET. Примечание. Внимательно изучите тексты программ HexToDec.asm и PrintNumber.asm, находя- щиеся в папке Examples системы программирования AsmEd. 5. Необходимо разработать программное обеспечение для карманной электронной иг- рушки, умеющей отгадывать календарные даты (дни рождения). Человек загадывает календарную дату, умножает число (номер дня в месяце = X) на 12, прибавляет но- мер месяца (Y) и результат сообщает отгадчику. Так, при дате 10 января будет сооб- щён результат 12X+Y = 12*10 + 1 = 121. Отгадчик должен действовать по следую- щему алгоритму: определить остаток R от деления результата на 12, и тогда при R=0 имеем Y=12, в противном случае Y=R. Теперь, зная Y, уже легко найти X: из сооб- щённого результата вычитаем Y и то, что получилось, делим на 12. В нашем примере Y = 121 mod 12 = 1 (январь), X = (121-1)/12 = 10 (число), та- ким образом, дата 10 января отгадана. Написать программу, работающую в качестве отгадчика. Человек вводит резуль- тат своих подсчётов в порт № 2. Программа выдаёт отгаданную дату на виртуальный дисплей в следующем формате: XX.YY, в нашем примере - 10.01. Использовать под- программу вывода числа, разработанную при решении предыдущей задачи (№ 4).
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »