|
|||
УП.01.01 Разработка программных модулей программного обеспечения для компьютерных системУП.01.01 Разработка программных модулей программного обеспечения для компьютерных систем Практическое занятие № 17
Тема: Организация циклов и разветвлений. Цель:Закрепить навыки организации циклов и ветвлений в Assembler. Оборудование: лаборатория с персональными компьютерами, компилятор и компоновщик TASM.EXE, TLINK.EXE, отладчик Turbo Debugger.
Порядок выполнения работы Теоретическая часть. Определение команды LOOP. MOV CX,<количество выполнений цикла> L1: <ТЕЛО ЦИКЛА> LOOP L1 После каждого выполнения команды LOOP значение регистра CX уменьшается на единицу. Практическая часть. 1. Модифицируйте программу обработки массива из практического занятия №16 таким образом, что бы при обработке элементов массива использовалась команда LOOP. 2. Произведите подсчет количества нулевых и ненулевых элементов массива. 3. Вычислите сумму ненулевых элементов массива. 4. Результат работы программы должен выглядеть следующим образом.
Элемент mas[0]=2 не равен 0 ! Элемент mas[1]=7 не равен 0 ! Элемент mas[2]=0 равен 0 ! Элемент mas[3]=0 равен 0 ! Элемент mas[4]=1 не равен 0 ! Элемент mas[5]=9 не равен 0 ! Элемент mas[6]=3 не равен 0 ! Элемент mas[7]=6 не равен 0 ! Количество нулевых элементов массива = 2 Количество ненулевых элементов массива = 6 Сумма ненулевых элементов массива = 28
5. Написать отчет о выполнении работы. 6. В отчете ответить на следующие вопросы: 6.1. Какое максимальное число итераций можно выполнить с помощью команды LOOP? 6.2. Как можно обойти ограничение на число итераций команды LOOP? 6.3. Какова максимальная длинна прыжка команд вида Jcc? 6.4. Как можно обойти ограничение на длину прыжка команд вида Jcc? 6.5. С помощью каких команд ассемблера можно реализовать разветвление процесса выполнения программы вида IF_THEN_ELSE, которое используется в языках высокого уровня? 7. Предоставить отчет, файл исходного текста программы *.ASM, исполняемый файл*.EXE 8. Защита отчета о проделанной работе.
|
|||
|