ВУЗ:
Составители:
4
1. Команда MOV и арифметические команды
В нижеследующих примерах следует не только показать результат (число в регистре), но и уметь
объяснить, как именно была написана программа, доказать её правильность.
1. Вычислить значение выражения (53+8)*2 + (150-60)/3. Полученный результат
записать в регистр DX. Ответ: 152.
2. Вычислить значение выражения (1260-450)/2 + 310*3. Полученный результат
записать в регистр SI. Ответ: 1335.
3. Вычислить значение выражения (176 / 2 + 23*3) - (125-50)/3. Полученный результат
записать в регистр BX. Ответ: 132.
4. Вычислить значение выражения (786+35)*3 + (125-50)/5. Полученный результат
записать в регистр DI. Ответ: 2478.
5. Вычислить значение выражения (5684 / 4 + 357 / 3 + 245 / 5)*3. Полученный
результат записать в регистр CX. Ответ: 4767.
6. Вычислить значение выражения (25*7 - 31*2 + 11*3)/2. Полученный результат
записать в регистр BL. В регистр BH записать 0. Ответ: 73.
7. Вычислить значение выражения 150 /3 + 78 / 2 + 365 / 5. Полученный результат
записать в регистр CL. В регистр CH записать 0. Ответ: 162.
8. Вычислить значение выражения (35 / 7)*(78 / 2)-190. Полученный результат
записать в регистр BH. В регистр BL записать 0. Ответ: 5.
9. Вычислить значение выражения (81 / 9)*(65 / 5)-110. Полученный результат
записать в регистр CH. В регистр CL записать 0. Ответ: 7.
10. Вычислить значение выражения 150 / 5 - 35 / 7 + 210 / 3. Полученный результат
записать в регистр DL. В регистр DH записать 0. Ответ: 95.
2. Команды логических операций, сдвигов, выделение битовых полей
В задачах нижеследующего раздела в качестве исходного значения предполагается байт, условно
названный здесь DataByte, который может быть предварительно записан (командой MOV) в один
из регистров МП либо вводиться из какого-либо порта (2 или 3) на вкладке «Ввод-вывод» системы
AsmEd. Студент должен разработать программу, которая выделяет данные из указанных бито-
вых
полей (каждое такое поле рассматривается как целое без знака), производит над ними указан-
ные действия и выводит результат либо в заданный регистр МП, либо в один из портов (2 или 3).
Систему тестов к каждой задаче разрабатывает преподаватель. Один тест дан для примера.
1. В исходном байте DataByte биты 0…3 содержат двоичный код, который обозначим
как А, биты 4…5 - код, который обозначим как В, биты 6…7 - код, который обозна-
чим как С. Вычислить А+2*В+2*С. Тест: ввод - 51h, вывод - 5.
2. В исходном байте DataByte биты 0…2 содержат двоичный код, который обозначим
как А, биты 3…5 - код, который обозначим как В, биты 6…7 - код, который обозна-
чим как С. Вычислить А-В+2*С. Тест: ввод - 8Fh, вывод - 10 (0Ah).
3. В исходном байте DataByte биты 0…1 содержат двоичный код, который обозначим
как А, биты 2…5 - код, который обозначим как В, биты 6…7 - код, который обозна-
чим как С. Вычислить В-A*С. Тест: ввод - BEh, вывод - 11 (0Bh).
4. В исходном байте DataByte биты 0…4 содержат двоичный код, который обозначим
как А, биты 5…6 - код, который обозначим как В, бит 7 - код, который обозначим
как С. Вычислить А+В+С. Тест: ввод - C7h, вывод - 10 (0Ah).
5. В исходном байте DataByte биты 0…2 содержат двоичный код, который обозначим
как А, биты 3…6 - код, который обозначим как В, бит 7 - код, который обозначим
как С. Вычислить В-A+С. Тест: ввод - D6h, вывод - 5.
4 1. Команда MOV и арифметические команды В нижеследующих примерах следует не только показать результат (число в регистре), но и уметь объяснить, как именно была написана программа, доказать её правильность. 1. Вычислить значение выражения (53+8)*2 + (150-60)/3. Полученный результат записать в регистр DX. Ответ: 152. 2. Вычислить значение выражения (1260-450)/2 + 310*3. Полученный результат записать в регистр SI. Ответ: 1335. 3. Вычислить значение выражения (176 / 2 + 23*3) - (125-50)/3. Полученный результат записать в регистр BX. Ответ: 132. 4. Вычислить значение выражения (786+35)*3 + (125-50)/5. Полученный результат записать в регистр DI. Ответ: 2478. 5. Вычислить значение выражения (5684 / 4 + 357 / 3 + 245 / 5)*3. Полученный результат записать в регистр CX. Ответ: 4767. 6. Вычислить значение выражения (25*7 - 31*2 + 11*3)/2. Полученный результат записать в регистр BL. В регистр BH записать 0. Ответ: 73. 7. Вычислить значение выражения 150 /3 + 78 / 2 + 365 / 5. Полученный результат записать в регистр CL. В регистр CH записать 0. Ответ: 162. 8. Вычислить значение выражения (35 / 7)*(78 / 2)-190. Полученный результат записать в регистр BH. В регистр BL записать 0. Ответ: 5. 9. Вычислить значение выражения (81 / 9)*(65 / 5)-110. Полученный результат записать в регистр CH. В регистр CL записать 0. Ответ: 7. 10. Вычислить значение выражения 150 / 5 - 35 / 7 + 210 / 3. Полученный результат записать в регистр DL. В регистр DH записать 0. Ответ: 95. 2. Команды логических операций, сдвигов, выделение битовых полей В задачах нижеследующего раздела в качестве исходного значения предполагается байт, условно названный здесь DataByte, который может быть предварительно записан (командой MOV) в один из регистров МП либо вводиться из какого-либо порта (2 или 3) на вкладке «Ввод-вывод» системы AsmEd. Студент должен разработать программу, которая выделяет данные из указанных бито- вых полей (каждое такое поле рассматривается как целое без знака), производит над ними указан- ные действия и выводит результат либо в заданный регистр МП, либо в один из портов (2 или 3). Систему тестов к каждой задаче разрабатывает преподаватель. Один тест дан для примера. 1. В исходном байте DataByte биты 0…3 содержат двоичный код, который обозначим как А, биты 4…5 - код, который обозначим как В, биты 6…7 - код, который обозна- чим как С. Вычислить А+2*В+2*С. Тест: ввод - 51h, вывод - 5. 2. В исходном байте DataByte биты 0…2 содержат двоичный код, который обозначим как А, биты 3…5 - код, который обозначим как В, биты 6…7 - код, который обозна- чим как С. Вычислить А-В+2*С. Тест: ввод - 8Fh, вывод - 10 (0Ah). 3. В исходном байте DataByte биты 0…1 содержат двоичный код, который обозначим как А, биты 2…5 - код, который обозначим как В, биты 6…7 - код, который обозна- чим как С. Вычислить В-A*С. Тест: ввод - BEh, вывод - 11 (0Bh). 4. В исходном байте DataByte биты 0…4 содержат двоичный код, который обозначим как А, биты 5…6 - код, который обозначим как В, бит 7 - код, который обозначим как С. Вычислить А+В+С. Тест: ввод - C7h, вывод - 10 (0Ah). 5. В исходном байте DataByte биты 0…2 содержат двоичный код, который обозначим как А, биты 3…6 - код, который обозначим как В, бит 7 - код, который обозначим как С. Вычислить В-A+С. Тест: ввод - D6h, вывод - 5.
Страницы
- « первая
- ‹ предыдущая
- …
- 2
- 3
- 4
- 5
- 6
- …
- следующая ›
- последняя »