GNU. Эмулятор вычисления

Содержание

Слайд 2

Сложение и вычитание кодов

Команда сложения:
ADD R1,R2
Схема работы команды:
R1=R1+R2

Команда вычитания:
SUB R1,R2
Схема работы команды:
R1=R1-R2
Гдe

Сложение и вычитание кодов Команда сложения: ADD R1,R2 Схема работы команды: R1=R1+R2
Ri- Регистр

Слайд 3

Пример сложения

Требуется выполнить сложение
A=B+C
При B=7810 и С=-3410
A=4410

Для эмулятора требуется 16ричная система исчисления

Пример сложения Требуется выполнить сложение A=B+C При B=7810 и С=-3410 A=4410 Для
!

Псевдо код программы сложения:
AL <= 78
BL <= -34
AL= AL + BL
конец

Слайд 4

Перевод кодов в разные системы исчисления

Для получения кодов чисел используем программу «Калькулятор»

Перевод кодов в разные системы исчисления Для получения кодов чисел используем программу
MS Windows

1. Запустите эмулятор и откройте строку поиска MS Windows, отыщите нужное приложение.

2. Вызовите калькулятор

Слайд 5

Перевод кодов в разные системы исчисления

3. Переведите калькулятор в режим «Программист», используя

Перевод кодов в разные системы исчисления 3. Переведите калькулятор в режим «Программист», используя команду меню «Вид»
команду меню «Вид»

Слайд 6

Перевод кодов в разные системы исчисления

Выберите кодировку символов один байт

Установите нужную систему

Перевод кодов в разные системы исчисления Выберите кодировку символов один байт Установите
исчисления:
Hex - шестнадцатеричная
Dec - десятичная
Осt – восьмеричная
Bin - двоичная

Используйте цифровые клавиши для набора нужного кода.
При смене системы исчисления код будет автоматически переведен в новую систему.
Смена знака кода ±

Слайд 7

Перевод кодов в разные системы исчисления

2. Переключаем Dec на Hex режим.
3. Используя

Перевод кодов в разные системы исчисления 2. Переключаем Dec на Hex режим.
команду «Копировать» копируем нужное число и помещаем в редактор эмулятора

1. Вводим в калькуляторе число в десятичной системе

Слайд 8

Перевод кодов в разные системы исчисления

Аналогично поступаем с числом -34
Вводим число в

Перевод кодов в разные системы исчисления Аналогично поступаем с числом -34 Вводим
режиме Dec, меняем знак

Переходим в режим Hex и копируем число в эмулятор

Слайд 9

Программа сложения кодов

Сохраните программу в Вашей папке как sum2.asm

Упражнение №1. Выполните программу

Программа сложения кодов Сохраните программу в Вашей папке как sum2.asm Упражнение №1.
в пошаговом режиме, результат в регистре AL

Слайд 10

Допустимый диапазон кодов

Диапазон допустимых значений для целых чисел в десятичной системе составит

Допустимый диапазон кодов Диапазон допустимых значений для целых чисел в десятичной системе
величину -128 до +127.
В шестнадцатеричной системе этот диапазон примет значение от 80 до 7F.

Слайд 11

Переполнение

Для отслеживания состояния переполнения используется бит O(Overflow) регистра SR процессора.
До

Переполнение Для отслеживания состояния переполнения используется бит O(Overflow) регистра SR процессора. До
организации перехода в программе при переполнении используются команда JO и JNO.

JO my_label ;O=1 -Переполнение
JNO my_label ;O=0 – Нет переполнения

Слайд 12

Задания

Упражнение №1. Требуется написать программу sumcontrol.asm для вычисления суммы с постоянным числом

Задания Упражнение №1. Требуется написать программу sumcontrol.asm для вычисления суммы с постоянным
1010=0A16.

AL <= 0
Выполнять:
AL=AL+0A
если бит о = 1 переход Стоп
переход Выполнять
Стоп:
Конец

Слайд 13

Контроль знака кода

При выполнении вычитания контроль знака числа производится с помощью бита

Контроль знака кода При выполнении вычитания контроль знака числа производится с помощью
S(Sign) регистра состояния. Он выставляется в единицу, если было получено отрицательное число при вычитании.

Слайд 14

Знак кода

Команды JS и JNS служат для организации переходов при необходимости учета

Знак кода Команды JS и JNS служат для организации переходов при необходимости
знака кодов – результатов операции.

Формат команд:
JS my_label ;При S=1
JNS my_label ;При S=0

Слайд 15

Задания

Упражнение №2.
Контроль отрицательного результата, программа sigcontrol.asm. Сравнить два числа в регистрах

Задания Упражнение №2. Контроль отрицательного результата, программа sigcontrol.asm. Сравнить два числа в
процессора CL и AL. Если код в CL меньше чем в AL вывести на VDU сообщение YES иначе вывести сообщение NO. Контрольные значения:
AL=F (15)
CL=A (10)

Слайд 16

Псевдо код программы

Перейти begin
“YES”
“NO”
begin:
AL<= F | 15
CL <= A |

Псевдо код программы Перейти begin “YES” “NO” begin: AL CL Сравнить CL
10
Сравнить CL c AL
Если S= 1 перейти на ok
Перейти no
ok:
Вывод “YES”
Перейти fin
no:
Вывод “NO”
fin:
КОНЕЦ

Слайд 17

Умножение и деление

Команда умножения:
MUL R1,R2
Схема работы команды:
R1=R1*R2

Команда деления:
DIV R1,R2
Схема работы команды:
R1=R1/R2

Умножение и деление Команда умножения: MUL R1,R2 Схема работы команды: R1=R1*R2 Команда

Слайд 18

Умножение и деление

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

Умножение и деление Операндами команды являются регистры. В качестве второго операнда можно
код.
Результат деления – целое число, дробная часть усекается !!!

Деление значения в регистре на число 11.
DIV CL,0B ;CL=CL/0B

Слайд 19

Логические команды

AND A1,A2
OR A1,A2
XOR A1,A2

Схема работы команд:
A1=A1 Command A2
Использование команд:

Использование команд:
Command R,N

Логические команды AND A1,A2 OR A1,A2 XOR A1,A2 Схема работы команд: A1=A1
;N-код
Command R1,R2; R-регистр

Слайд 20

Контроль активности битов

Упражнение №3. Требуется определить активность 3 бита регистра DL. Маска

Контроль активности битов Упражнение №3. Требуется определить активность 3 бита регистра DL.
бита равна 1002=416. Выведите контрольные сообщения на VDU:
Find! (найден)
Not find!(не найден)
Программный код проверки активности бита:

Код проверки активности бита:
push DL;регистр в стек
AND DL,4;Маска бита
jz no ;Z=1
jmp next ;Бит установлен
no:
;Бит не установлен

next:
pop DL;Извлечь регистр

Слайд 21

Установка активности битов

Упражнение №4. Требуется активизировать пятый бит регистра AL. Начальное значение

Установка активности битов Упражнение №4. Требуется активизировать пятый бит регистра AL. Начальное
кода в регистре равно нолю. Маска бита 100002=1610=1016. Проверьте значение кода в регистре до установки бита и после. Выведите контрольные сообщения на VDU.

Команда установки бита:
OR AL,10

Слайд 22

Шифрование кодов и обнудение

Операция XOR по отношению к битам обладает свойством обратимости,

Шифрование кодов и обнудение Операция XOR по отношению к битам обладает свойством
что делает ее пригодной для шифрования байтов.

;Шифрование
MOV AL,A ;1010
MOV BL,2 ;0010 – Ключ
XOR AL,BL

;Дешифрование
XOR AL,BL

Обнуление с помощью команды XOR регистр вытекает из ее таблицы истинности.

Слайд 23

Сдвиг битов

Сдвиговые команды:
SHL R – Выполнение левого сдвига в регистре.
SHR R –

Сдвиг битов Сдвиговые команды: SHL R – Выполнение левого сдвига в регистре.
Выполнение правого сдвига в регистре.

Сдвиговые операции позволяют увеличивать или уменьшать в два раза значения в регистре.

Упражнение №6. Требуется получить куб цифры 2. Псевдо код программы:

AL<=01
CL<=03
Выполнять:
левый сдвиг AL
CL=CL-1
если Z не 1 то Выполнять
конец

Слайд 24

Задания для самостоятельной работы

Контрольное задание №1. Программа perebor.asm
Дана последовательность десятичных чисел:

Задания для самостоятельной работы Контрольное задание №1. Программа perebor.asm Дана последовательность десятичных
10,20,30,40,50,1,4,4,100,110.
Вычислить сумму чисел до получения переполнения.
Сумму поместить в регистр AL
При выборе очередного числа из памяти на VDU выводить символ, соответствующий прочитанному коду
При переполнении вывести контрольное сообщение ERROR !

Слайд 25

Задания для самостоятельной работы

Контрольное задание №2.
Поместить в регистр BL, число 12510. Написать

Задания для самостоятельной работы Контрольное задание №2. Поместить в регистр BL, число
программу decrement.asm для последовательного уменьшения значения числа с шагом 2. При получении отрицательного значения вычисления прекратить и вывести контрольное сообщение STOP !

Контрольное задание №3. Программа fact.asm Вычислить факториал числа 4. Контрольное значение 2410