Архитектура компьютера

Введение
Теоретическая часть
    1 Архитектура компьютера
     
Лабораторный практикум
  1 Создание программы на языке ассемблера
  2 Применение функций DOS и BIOS
  3 Линейные алгоритмы
  4 Десятичная арифметика
  5 Команды передачи управления
  6 Циклы с условием
  7 Циклы со счетчиком
  8 Работа с массивами
  9 Цепочечные команды
     
Приложения
  1 Таблица кодов символов ASCII
  2 Функции DOS и BIOS
     
Гостевая книга

Лабораторная работа №3

Линейные алгоритмы

Вопросы для повторения:

  1. Какие алгоритмы называются линейными?
  2. Какие действия обычно выполняются на линейных участках алгоритмов?
  3. Что такое программа-отладчик? Назовите примеры таких программ.
  4. Для чего необходимо кодирование информации? Приведите примеры кодирования информации, которые вы применяете.
  5. Что называется ASCII-кодами?

Линейными называются такие алгоритмы, в которых все действия выполняются поочередно, друг за другом.

На линейных участках алгоритмов обычно выполняются манипуляции данными, вычисление выражений, перекодировка информации.

Команда пересылки данных:

mov <приемник>, <источник>

команда mov – команда пересылки данных, результатом ее исполнения является копирование данных из операнда <источник> в операнд <приемник>.

mov ah, 09; записать в регистр ah число 09

mov cl, ah; скопировать байт из регистра ah в ch

mov bx, cx; скопировать слово из регистра cx в регистр bx

mov ch, 0fh

mov ch, bl

Вопрос: чему будет равно содержимое регистра ch после выполнения данного участка программы?

Простейшие арифметические команды:

Команда
Описание
add <слагаемое 1>, <слагаемое 2>
Записать в операнд <слагаемое 1> значение суммы обоих операндов;
inc <операнд >
Увеличить <операнд > на единицу;
sub <операнд 1>, <операнд 2 >
Записать в операнд <операнд 1> значение разности операндов;
dec <операнд >
Уменьшить <операнд> на единицу.
mul <сомножитель 2> Умножает <сомножитель1> на <сомножитель2>
если <сомн2> - байт, то <сомн1> - регистр al (результат - слово в ax);
если <сомн2> - слово, то <сомн1> - регистр ax (результат - двойное слово в dx:ax);
div <делитель> Делит <делимое> на <делитель>
если <делитель> - байт, то <делимое> - регистр ax (результат - частное в al, остаток в ah);
если <делитель> - слово, то <делимое> - регистр овая пара dx:ax (результат - частное в ax, остаток в dx);

Отладчик Turbo Debugger

Отладчик Turbo Debugger ( TD) – оконная среда отладки программ, позволяет производить отладку программ, написанных на языках Pascal, C, assembler.

TD позволяет определить:

  • место логической ошибки (семантической);
  • причину логической ошибки.

Для использования TD необходимо выполнить следующие действия:

tasm /zi *.asm ;откомпилировать с добавлением отладочной информации
tlink / v *. obj ;скомпоновать с добавлением отладочной информации
td *. exe

Файл с исходным кодом программы должен находиться в директории отладчика.

 

Задания для выполнения

  1. Вывести на экран сумму двух введенных с клавиатуры цифр (значение вводить так, чтобы сумма была меньше 10); (10 баллов).
  2. Изучите работу отладчика TD на примере задачи из первого задания.

    Необходимо изучить:

    a). Систему меню программы TD.

    b). Выполнение программы в четырех режимах

    • режим безусловного выполнения;
    • выполнение по шагам;
    • до текущего положения курсора;
    • с установкой точек прерывания.

    c). Систему вспомогательных окон

    • CPU;
    • Dump.

Задания для самостоятельного выполнения

  1. С клавиатуры вводятся два символа. Вывести их в обратном порядке (Например: '1gg1', 'assa', '-==-'); (5 баллов);
  2. Имеется два числа (цифры) a и b. Вычислить y = 2a - b + 1; (8 баллов);
  3. Вывести на экран сумму двух любых введенных с клавиатуры цифр (сумма может быть больше 10) (12 баллов);
© Истомин А.С. ЗабГГПУ
Хостинг от uCoz