Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПС(2)16.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
116.74 Кб
Скачать
  1. В какой последовательности сохраняется и извлекается содержимое регистров мп в подпрограмме?

Ответ: Сохраняется и извлекается содержимое регистров МП в подпрограмме по принципу: последний зашел, первый вышел (FIFO) (First input, first output).

  1. Как будет выполняться программа, если вместо команды popf в ней будет записана команда nop?

Ответ: POPF – чтение содержимого регистра признаков из стека;

NOP -- отсутствие операции, т.е. МП остановит действия по выполнению программы, до тех пор пока не поступит новая операция для выполнения.

Лабораторная работа 4

Программная реализация деления

целых двоичных чисел

ЦЕЛЬ РАБОТЫ: освоение способов программной реализации деле­ния целых двоичных чисел.

вар.

Делимое

Делитель

16

69

6

а) с явным счетчиком

cdseg segment 'code'

assume cs:cdseg

org 100h

start:

mov ax,69 ; делимое

dltl equ 6 ; делитель (константа)

mov dx,0 ; chastnoe

mov bx,0 ; ostatok

mov cx,16 ; счётчик

m0:

sal ax,1 ;сдвиг делимого влево

rcl bx,1 ;с переносом старшего бита в остаток

sub bx,dltl ; вычитаем из остатка делитель

jns m1 ; если рез-т отрицательный, то

add bx,dltl ; vosst ostatok

m1:

cmc ;invert cf

rcl dx,1 ; получаем очередной разряд частного

loop m0 ; если деление не закончено, то идём на m0

int 20h

cdseg ends

end start

Частное 11, остаток 3.

б) С неявным счетчиком:

cdseg segment 'code'

assume cs:cdseg

org 100h

start:

mov ax,69 ; delimoe

mov cx,6 ; delitel

mov dx,1 ; chastnoe

mov bx,0 ; ostatok

m0:

sal ax,1 ;сдвиг делимого влево

rcl bx,1 ;с переносом старшего бита в остаток

sub bx,cx ; вычитаем из остатка делитель

jns m1 ; если рез-т отрицательный, то

add bx,cx ; vosst ostatok

m1:

cmc ;invert cf

rcl dx,1 ; получаем очередной разряд частного

jnc m0 ; если деление не закончено, то идём на m0

int 20h

cdseg ends

end start

Частное 11, остаток 3.

Контрольные вопросы:

    1. На чем основан алгоритм программы деления чисел?

Ответ: Процесс деления заключается в многократных сдвигах влево и сложении в дополнительном коде. При организации автоматического процесса деления все операции должны выполнятся явно.

    1. Чем отличается программы 1 и 2?

Ответ: Отличие программ с явным счетчиком (1) и с неявным (2) в том, что назначение регистра СХ в них различно. В первом случае в регистр СХ записывается величина, которую отчитывает счетчик, а во втором случае значение делителя.

    1. Каким образом организуется образование цифры частного в программах 1 и 2?

Ответ: В программах 1,2 разряды частного при делении чисел на машине определяются (начиная со старшего) путем последовательного вычитания делителя из остатка, полученного от предыдущего вычитания. Если остаток после вычитания получается положительный, в разряд частного записывается 1, если отрицательный, то 0. На практике обычно отрицательный остаток не записывается, просто делитель дополнительно сдвигается на один разряд вправо и вычитается из последнего положительного остатка.