Chapter_06 (1110558), страница 6
Текст из файла (страница 6)
Можно сказать, чтоделение "портит" определённые флаги (в частности, портятся "полезные" флаги CF,OF,ZF,SF).Для написания программ на Ассемблере нам будут нужны также следующие унарные арифметические операции.neg op1; взятие обратной величины знакового числа, op1:=-op1;inc op1; увеличение (инкремент) аргумента на единицу, op1:=op1+1;dec op1; уменьшение (декремент) аргумента на единицу, op1:=op1-1;Здесь операнд op1 может быть форматов r8, m8, r16 и m16. Применение этих команд вместосоответствующих по действию команд вычитания и сложения приводит к более компактным программам.
Необходимо, однако, отметить, что компактные команды inc op1 и dec op1 , в отличие от эквивалентных им более длинных команд add op1,1 и sub op1,1 никогда не меняютфлаг CF.1Вопросы и упражнения1.2.3.Что такое в нашей архитектуре машинное слово?Какое представление вещественного числа называется нормализованным?Используя какой-нибудь язык программирования высокого уровня (скажем, Паскаль) получитетакое значение константы A, чтобы для числа X=106 выполнялось машинное равенствоX+A=A.1Это, вероятно, получилось потому, что схемы центрального процессора, выполняющие команды inc иdec (которые, как говорят, производят инкремент и декремент своего операнда) для экономии аппаратуры используются и при выполнении некоторых других команд (например, циклов), которые не должны менять этотфлаг.154.5.6.7.8.9.10.11.12.13.Что такое вещественное значение "не число" и для чего оно нужно?Для чего может потребоваться представлять в программе целые числа одновременно в двухмашинных системах счисления – знаковой и беззнаковой?Для чего необходимы сегментные регистры?Что такое перевёрнутое представление целых чисел и для чего оно может быть нужно? Почемуна регистрах числа хранятся в обычном (не перевернутом) виде?Что такое бит размера операнда w в машинной команде?Чем адрес байта памяти в команде отличается от его физического адреса?Что такое регистр-модификатор?Что такое задание операндов команды по умолчанию? Какие операнды задаются по умолчаниюв командах целочисленного умножения и деления?Почему, в отличие от команд сложения и вычитания, необходимы различные команды для умножения и деления знаковых и беззнаковых целых чисел?Объясните, почему для реализации на языке машины оператора присваивания языка Паскальy:=x div 3 (здесь x и y – целочисленные операнды размером в слово) всегда необходимоиспользовать команду длинного, а не короткого деления..