ПОЗНАВАТЕЛЬНОЕ Сила воли ведет к действию, а позитивные действия формируют позитивное отношение Как определить диапазон голоса - ваш вокал
Игровые автоматы с быстрым выводом Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими Целительная привычка Как самому избавиться от обидчивости Противоречивые взгляды на качества, присущие мужчинам Тренинг уверенности в себе Вкуснейший "Салат из свеклы с чесноком" Натюрморт и его изобразительные возможности Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д. Как научиться брать на себя ответственность Зачем нужны границы в отношениях с детьми? Световозвращающие элементы на детской одежде Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия Как слышать голос Бога Классификация ожирения по ИМТ (ВОЗ) Глава 3. Завет мужчины с женщиной 
Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д. Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу. Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар. | Арифметические команды в Ассемблере ЛАБОРАТОРНАЯ РАБОТА N4 Программирование арифметических операций. Изучение основ работы с TURBO DEBUGGER Цель работы Применение команд арифметических операций при разработке программ; Практическое освоение основных функций TURBO DEBUGGER. 2. Рекомендуемая литература Assembler. Учебник для вузов. 2-е изд. /В. И. Юров – СПб.: Питер, 2005. с. 165-181. К. Г. Финогенов. Основы языка Ассемблера. – М.: Радио и связь, 2000. с. 40-54, 197-280. Подготовка к работе 3.1. Изучить методические указания и рекомендованную литературу. 3.2. Подготовить ответы на контрольные вопросы. 4. Контрольные вопросы 4.1. Формат команды «сложить», ее операнды. 4.2. Формат команды «вычесть», ее операнды. 4.3. Формат команды «умножить», ее операнды. 4.4. Формат команды «делить», ее операнды. 4.5. Каков диапазон беззнаковых чисел допустим в программах 16-ти разразрядного микропроцессора? 4.6. Каков диапазон чисел со знаком допустим в программах 16-ти разразрядного микропроцессора? 4.7. Какую информацию содержат арифметические флаги операций? 4.8. Какие флаги устанавливаются при выполнении команд «сложить» и «вычесть». 4.9. Какие флаги устанавливаются при выполнении команд «умножить» и «делить». 4.10.Как выполнить сложение (вычитание) двух операндов, находящихся в памяти? 4.11. Как выполнить умножение двух операндов, находящихся в памяти? 4.12. Как выполнить деление двух операндов, находящихся в памяти? 4.13. С числами какой системы счисления может работать Ассемблер? 4.14. Найдите ошибки в нижеприведенных командах: MOV AL, E4h; ADD 64, BL; MUL 3Fh; MOV DS, 3F3Fh. Порядок выполнения работы 5.1. Используя текстовый редактор, создать и отредактировать исходный модуль программы Prog_4.asm, которая вычисляет значение Х в соответствии с заданием. Номер функции и значения переменных A, B, и C взять из таблицы 4.1. Значение переменной D берётся равным последней цифре номера зачётной книжке. Таблица 4.1 – Варианты заданий № варианта | Функция | Данные | A | B | C | |  | 64h | 14h | -4 | |  | 16h | -50 | 1Bh | |  | | 111b | 48h | |  | | 150h | | |  | 5Ah | 55h | 11h | |  | -5 | | – | |  | A1h | -150 | FB0h | |  | Fh | | 10h | |  | | | -15 | |  | | E2h | | |  | | 26h | -10 | |  | BFh | 14h | | |  | | Fh | | |  | 99h | D9h | | |  | Ch | | | После выполнения операции деления, в дальнейших операциях учитывать только частное. ;Program_4 _ Арифметические операции | Data SEGMENT | ; Открыть сегмент данных | A DB 1 | ;Инициализировать | B DB 2 | ;переменные A, B, C, D, X | C DB 3 | | D DB 4 | | X DW ? | | Data ENDS | ;Закрыть сегмент данных | Ourstack SEGMENT Stack | ;Открыть сегмент стека | DB 100h DUP (?) | ;Отвести под стек 256 байт | Ourstack ENDS | ;Закрыть сегмент стека | ASSUME CS:Code, DS:Data, SS:Ourstack | ;Назначить сегментные ;регистры | Code SEGMENT | ;Открыть сегмент кодов | Start: mov AX, Data | ;Инициализировать | mov DS, AX | ;сегментный регистр DS | xor AX, AX | ; очистить регистр AX | | | Здесь должны быть команды вычисления | арифметического выражения | mov AX, 4C00h | ; Завершить программу | int 21h | ; с помощью DOS | Code ENDS | ;Закрыть сегмент кодов | END Start | ;Конец исходного модуля. | 5.2. Используя компилятор Турбо Ассемблера tasm.exe и компоновщик tlink.exeс соответствующими ключами, создать файл prog_4.exe. 5.3. Загрузите программу в отладчик и в окне CPU произведите трассировку программы (пошаговое выполнение) нажатием клавиши F8. На каждом шаге контролируйте содержимое регистров и флагов. Запишите вычисленное значение частного и остатка. Результаты пошагового выполнения сведите в таблицу 4.2 и сделайте по ним соответствующие выводы. 5.4.Определите начальные и конечные адреса сегментов кода, данных и стека составленной программы prog_4.exe.Вычислите длину сегментов указанной программы в байтах. Составьте и нарисуйте образ программы в памяти ЭВМ. 5.5.Отчитаться о проделанной работе преподавателю. 5.6. Составьте отчет, который должен содержать: - листинг программы Prog_4 с комментариями; - таблицу 4.2 с результатами исследования отладки программы; - рисунок образа программы Prog_4 в памяти ЭВМ; - данные файлов *.map и вычисленные начальные и конечные адреса сегментов программы и их длины; Таблица 4.2 – Результаты выполнения программы Вариант | № строки | Команда Ассемблера | Машинный код | Длина машинного кода, байт | Логический адрес в памяти | Состояние регистров и флагов | | | | | | AX= , BX= , CX= , DX= , SP= , BP= , SI= , DI= , DS= , SS= , CS= , ES= . CF= , ZF= , SF= , OF= , PF= , AF= . | | | | | | AX= , BX= , CX= , DX= , SP= , BP= , SI= , DI= , DS= , SS= , CS= , ES= . CF= , ZF= , SF= , OF= , PF= , AF= . | . . . . . | | | | | | Значение переменной X: частное = остаток = | ОБЩИЕ СВЕДЕНИЯ Арифметические команды в Ассемблере В язык Ассемблера входят пять групп арифметических команд: команды преобразования типов, команды двоичной арифметики, десятичной арифметики, вспомогательные команды и прочие команды с арифметическим принципом действия. Далее рассмотрим команды двоичной арифметики. Микропроцессор 80Х86 может работать как с числами со знаком, так и с числами без знака. Соответственно, если используются числа со знаком, то они могут быть или положительные или отрицательные. При этом под знак отводится самый старший разряд двоичного числа: 0 – положительное число; 1 – отрицательное. Поэтому диапазон значений двоичного числа зависит от его размера и трактовки старшего бита числа. Таблица 4.3 – Диапазон значений двоичных чисел Размерность поля | Целое без знака | Целое со знаком | Байт | 0…255 | -128…+127 | Слово | 0…65535 | -32768…+32767 | Двойное слово | 0…4294967295 | -2147483648…+2147483647 | |