Если тип не задан, по умолчанию принимается near. — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Если тип не задан, по умолчанию принимается near.

2017-11-17 377
Если тип не задан, по умолчанию принимается near. 0.00 из 5.00 0 оценок
Заказать работу

Всего можно выделить пять типов безусловных переходов (таблица 3.1).

Таблица 3.1. Типы команд безусловного перехода

Название Мнемоника Описание
внутрисегментный прямой короткий jmp short <операнд> IP ← (IP) + 8-битное смещение, определяемое операндом
внутрисегментный прямой близкий переход jmp near ptr <операнд> IP ← (IP)+16-битное смещение, определяемое операндом
внутрисегментный косвенный переход jmp <адрес операнда> IP ← 16-битный адрес перехода
Межсегментный прямой далекий переход jmp far ptr <операнд> IP ← смещение операнда в сегменте CS ← адрес сегмента, содержащего опе­ранд
Межсегментный косвенный далёкий переход jmp far ptr <адрес операнда> IP ← операнд CS ← адрес операнда +2

Условный переход

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

Все условные переходы являются короткими, т.е. адрес перехода должен отстоять не далее, чем на –128 или +127 байтов от первого байта следующей команды.

Команды условной передачи управления и проверяемые при их выполнении условия приведены в таблице 3.2.

Таблица 3.2. Инструкции условной передачи управления

Мнемокод Условие перехода
Флаги Смысл
ja/jnbe jae/jnb jb/jnae jbe/jna je/jz jne/jnz jg/jnle jge/jnl jl/jnge jle/jng jp/jpe jnp/jpo jc jnc jo jno jns js CF or ZF=0 CF=0 CF=1 CF or ZF=1 ZF=1 ZF=0 (SF xor OF) or ZF=0 SF xor OF=0 (SF xor OF)=1 ((SF xor OF) or ZF)=1 PF=1 PF=0 CF=1 CF=0 OF=1 OF=0 SF=0 SF=1 выше /не ниже и не равно выше или равно/не ниже ниже/не выше и не равно ниже или равно/не выше равно/нуль не равно/не нуль больше/не меньше и не равно больше или равно/не меньше меньше/не больше и не равно меньше или равно/не больше есть паритет/паритет четный нет паритета/паритет нечетный перенос нет переноса переполнение нет переполнения знак + знак -

Примечание:

1) термины «выше» и «ниже» применимы для сравнения беззнаковых величин (адресов);

2) термины «больше» и «меньше» используются при учете знака числа.

Циклы

Инструкция, организующая программный цикл имеет вид, представленный в листинге 3.2.

Листинг 3.1. Синтаксис использования цикла

loop[<условие повторения цикла>] <метка короткого перехода>

Инструкция loop использует содержимое регистра СХ как счетчик повторений цикла. Команда loop уменьшает содержимое регистра СХ на 1 и передает управление по адресу, определяемому меткой перехода, если содержимое СХ ≠ 0, в противном случае выполняется следующая за LOOP инструкция. Подобно условным переходам инструкции этой группы могут осуществлять только короткие передачи управления, т.е. в пределах от –128 до +127.

Добавление к инструкции loop <условие повторения цикла> позволяет ввести дополнительные логические условия на повторение цикла:

1) loope/loopz – повторять, пока ноль;

Loopne/loopnz – повторять, пока не ноль.

Проверка флага ZF осуществляется командой loop. Цикл повторяется, если содержимое СХ ≠ 0 и выполняется соответствующее условие, в противном случае выполняется следующая за loop инструкция.

Пример выполнения работы

Дан массив из десяти слов, содержащих целые числа. Требуется найти максимальное значение в массиве.

Текст решения приведен в листинге 3.2.

Data segment

Max dw?

Mass dw 10,24,76,479,-347,281,-24,70,124,97

Data ends

Code segment

Assume cs: code, ds: data

Start: mov ax, data

Mov ds, ax

Lea bx, mass; Загрузить адрес смещения массива

Mov cx, 10; Установить счетчик повторений цикла

mov ax, [bx]; Первый элемент массива в Аккумулятор

beg: cmp [bx], ax; Сравнить текущий элемент

;массива с максимальным

Jl no; он меньше

mov ax, [bx]; он больше или равен

No: inc bx; Следующий элемент

Inc bx; массива

Loop beg

Mov max, ax

Quit: mov ax,4C00h; Код завершения 0

Int 21h; Выход в DOS

Code ends

End start

Варианты заданий

Дан массив из десяти знаковых чисел (для заданий с четными номерами задается массив байт, с нечетными – массив слов). Требуется…

Блок 1.

1. Найти сумму отрицательных элементов массива.

2. Найти максимальное число в массиве. Вывести его вместе с индексом.

3. Определить количество четных элементов с четными индексами.

4. Определить количество и сумму нечетных элементов массива.

5. Определить количество отрицательных чисел кратных трем.

6. Определить количество четных элементов массива.

7. Найти минимальное число в массиве. Вывести его вместе с индексом.

8. Переписать массив в обратной последовательности.

9. Циклически сдвинуть элементы массива вправо на две позиции.

10. Посчитать количество элементов в массиве, равных 6.

11. Посчитать количество неотрицательных элементов в массиве.

12. Посчитать количество натуральных чисел в массиве.

13. Заменить все четные положительные элементы массива на 0.

14. Умножить на 2 элементы массива, значения которых от 1 до 10.

15. Найти сумму максимального и минимального элементов в массиве.

16. Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами.

17. Вычислить сумму элементов массива, расположенных между первым и вторым положительными элементами.

18. Найти сумму элементов массива, являющихся положительными и кратными 2.

19. Подсчитать количество элементов после максимального элемента в массиве.

20. Подсчитать количество элементов, расположенных до минимального элемента.

21. Подсчитать количество элементов меньше максимального на 2

22. Вычислить сумму отрицательных элементов массива, равных по модулю 4.

23. Заменить нулями все отрицательные элементы, предшествующие его максимальной компоненте (первой по порядку, если их несколько).

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

25. Определить количество элементов массива, которые меньше 10h.

Блок 2.

1. Осуществить циклический сдвиг элементов влево на одну позицию.

2. Найти сумму элементов массива, стоящих на чётных местах.

3. Вместо a1 записать наибольший элемент массива, а вместо a10 наименьший элемент массива.

4. Найти наибольший элемент из отрицательных

5. Найти наименьший элемент из положительных

6. Положительные элементы уменьшить вдвое, а отрицательные – заменить значениями их индексов.

7. Вывести элемент, который стоит за первым нулем.

8. Если элементы последовательности упорядочены строго по возрастанию, вывести единицу, иначе – ноль.

9. Если в последовательности нет нулевых элементов – вывести единицу, иначе – вывести ноль.

10. Поменять в последовательности местами наибольший элемент и элемент, стоящий на третьей позиции.

11. Первый по порядку элемент с наименьшим значением заменить его абсолютным значением.

12. Определить, каких значений в последовательности больше – единицили нулей.

13. Выяснить, имеются ли два подряд идущих нулевых элемента.

14. Выясните, имеются ли три подряд идущих элемента одного знака.

15. Все четные элементы уменьшить на единицу.

16. Определить, есть ли элементы со значением, равным 10, если есть – вывести единицу, иначе – ноль.

17. Определить, со скольких положительных чисел начинается массив.

18. Определить, имеется ли в заданном массиве хотя бы одна пара соседних чисел, являющихся взаимообратными.

19. Определите, имеется ли в массиве число, кратное 3, если да – вывести единицу, если нет – ноль.

20. Найти наибольший элемент и указать порядковый номер этого элемента.

21. Если первый элемент массива нулевой, то расположить элементы данного массива в обратном порядке, иначе, заменить последний элемент массива на ноль.

22. Поменять местами элементы, стоящие на нечётных местах, с элементами, стоящими на чётных местах (т.е 1-й поменять со 2-м, 3-й с 4-м и т.д.).

23. Найти сумму элементов, стоящих на четных местах.

24. Определить, сколько содержится в массиве чисел, равных 7.

25. Элементы, не равные нулю, уменьшить на 3, а нулевые оставить без изменений.

Блок 3.

1. Найти максимальное значение и количество элементов массива, равных ему.

2. Найти минимальное значение и сумму элементов массива, больших этого значения.

3. Найти сумму нечетных положительных чисел.

4. Найти минимальное значение среди неотрицательных элементов и количество элементов, равных ему.

5. Заменить положительные элементы массива 0.

6. Найти количество положительных чисел, кратных трем.

7. Найти максимальное значение среди отрицательных элементов.

8. Заменить нулевые элементы массива на их индексы.

9. Найти число повторений элементов, равных 5.

10. Найти количество четных положительных чисел кратных 6.

11. Удвоить значения отрицательных элементов.

12. Замены элементы массива, не большие 15, единицами.

13. Замените минимальный элемент массива его индексом.

14. Определите количество элементов, равных максимальному элементу массива.

15. Найти наибольший элемент и номер первого такого элемента, если их несколько.

16. Заменить элементы, имеющие нечетные порядковые номера, на число 100.

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

18. Найти сумму положительных элементов, больших 10.

19. Подсчитайте количество элементов, меньших 13h.

20. Найдите сумму элементов, расположенных между максимальным и минимальным числами в массиве (по абсолютной величине).

21. Заменить все нечетные отрицательные элементы массива на 3.

22. Умножить на 4 элементы массива, значения которых от 15h до 20h.

23. Вычислить сумму элементов массива, расположенных между первым и вторым положительными элементами.

24. Найти сумму элементов массива, являющихся нечетными и кратными 3.

25. Подсчитать количество элементов до максимального элемента в массиве.

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

1. Для чего нужен префикс ptr?

2. В чем отличие команд mov ax, mass и lea ax, mass?

3. В чем отличие команд mov ax, bx и mov ax, [bx]?

4. В чем отличие команд mov ax, [bp] и mov ax, [bx]?

5. В чем отличие команд mov ax, [bx+2] и mov ax [bx]+2?

6. В чем отличие команд mov ax, [bx][si] и mov ax, [si][bx]?

7. Какие существуют разновидности инструкции jmp?

8. Как организовать межсегментную передачу управления?

9. Напишите фрагмент программы условного перехода к метке, лежащей от самого перехода на расстоянии 257 байт.

10. Для организации каких вычислений служат каманды loop, loope, loopne?

11. Модифицирует ли какие-нибудь регистры команда loop?

12. Можно ли организовать цикл по счетчику, не используя команды loop?

13. Можно ли организовать цикл while с помощью одной из команд loop?

 

 


Описание лабораторной работы № 5

Установка ОЗУ

по дисциплине «Архитектура ЭВМ и вычислительных систем»

 

для специальности: «Техническое обслуживание средств вычислительной техники и компьютерных сетей»


Цель работы: Получить практические навыки установки ОЗУ различных типов на компьютер.

 

Краткая теория:

Элементы оперативной памяти типа DRAM конструктивно выполняют либо в виде отдельных микросхем в отдельных корпусах типа DIP, либо в виде модулей памяти типа: SIP (Single In-Line Package), SIMM (Single In-line Memory Module), DIMM (Dual In-line Memory Module), RIMM (Rambus In-line Memory Module). Микросхемы в корпусах типа DIP выпускались до использования модулей памяти. Эти микросхемы имеют два ряда контактов, расположенных вдоль длинных сторон чипа и загнутых вниз.

Различные корпуса DRAM. Сверху вниз: DIP, SIP, SIMM (30-контактный), SIMM (72-контактный), DIMM (168-контактный), DIMM (184-контактный, DDR)

I) Модули SIP. Модули типа SIP представляют собой прямоугольные платы с контактами в виде маленьких штырьков. Этот тип памяти в настоящее время практически не используется, так как был вытеснен модулями памяти типа SIMM.

II) Модули SIMM. Модули типа SIMM представляют собой прямоугольную плату с контактной полосой вдоль одной из сторон, модули фиксируется в разъеме поворотом с помощью защелок. Наиболее распространены 30- и 72-контактные SIMM. Широкое распространение нашли SIMM на 4, 8, 16, 32 и даже 64 Мбайт. SIMM (англ. Single In-line Memory Module) — модули памяти с однорядным расположением выводов, широко применявшиеся в компьютерных системах в 1990-е годы. Имели несколько модификаций, среди которых наибольшее распространение получили три. Первая — 30-контактный модуль, имевший объем от 256 КБайт до 16 МБайт и восьмиразрядную шину данных, дополняемую (иногда) девятой линией контроля четности памяти. Применялся в 286, 386 машинах. В случае процессоров 286, 386SX модули ставились парами, на 386DX — по четыре штуки одинаковой емкости.С приходом 486 машин, для которых эти модули надо было бы ставить по четыре (как минимум) штуки был вытеснен 72-контактным модулем SIMM, который, по существу, объединил на себе 4 30-контактных модуля с общими линиями адреса и раздельными линиями данных. Таким образом, модуль становится 32-разрядным и достаточно всего одного модуля. Объем от 1 МБайт до 128 МБайт. С появлением Pentium, по причине низкого быстродействия динамической памяти SIMM-модулей, их спецификация претерпела изменения, в результате чего более новые модули (их называли EDO) стали несовместимы со старыми (FPM), обладая немного большим быстродействием. Платы Pentium, как правило, поддерживали оба типа памяти, в то время как большинство 486 машин поддерживали только старый (FPM) тип. Отличить по внешнему виду их было невозможно и только «метод научного тыка» помогал определить их тип. Установка «неправильного» типа памяти не приводила к неисправностям — система просто не видела памяти. Так как на платах Pentium с 64-разрядной шиной данных уже 72-контактные модули потребовалось ставить парами, постепенно и их попарно «объединили», результатом чего стало появлением первых модулей DIMM.

1) 30-контактные модули

а) Разрядность шины данных: 8 бит (9 бит у модулей с контролем четности)

б) Тип применяемых микросхем динамической памяти: FPM

в) Стандартные значения объема памяти модулей: 256 Кб, 1 Мб, 4 Мб, 16 Мб

г) Шаг расположения контактных площадок — 0,1"

д) Модули типа SIPP имеют аналогичное назначение контактов и отличаются только конструктивно (контактные штырьки вместо контактных площадок)

2) 72-контактные модули

а) Разрядность шины данных: 32 бита (36 бит у модулей с контролем четности)

б) Тип применяемых микросхем динамической памяти: FPM, EDO

в) Стандартные значения объема памяти модулей: 1 Мб, 2 Мб, 4 Мб, 8 Мб, 16 Мб, 32 Мб, 64 Мб, 128 Мб

г) Шаг расположения контактных площадок — 0,05"; между выводами 36 и 37 увеличенное расстояние и вырез (ключ)

III) Модули DIMM Модули типа DIMM наиболее распространены в виде 168-контактных модулей, устанавливаемых в разъём вертикально и фиксируемых защёлками. В портативных устройствах широко применяются SO DIMM — разновидность DIMM малого размера (англ. SO — small outline), они предназначены в первую очередь для портативных компьютеров. Наиболее часто встречаются 72- и 144-контактные модули типа SO DIMM. Память типа DDR SDRAM выпускается в виде 184-контактных DIMM-модулей, а для памяти типа DDR2 SDRAM выпускаются 240-контактные модули. DIMM (англ. Dual In-line Memory Module, двухсторонний модуль памяти) — форм-фактор модулей памяти DRAM. Данный форм-фактор пришёл на смену SIMM. Основным отличием DIMM является то, что контакты, расположенные на разных сторонах модуля являются независимыми, в отличии от SIMM, где симметричные контакты, расположенные на разных сторонах модуля, замкнуты между собой и передают одни и те же сигналы. Кроме того, DIMM имеет 64 (без контроля четности) или 72 (с контролем по четности или коду ECC) линии передачи данных, в отличии от SIMM c 32 линиями. Появлению форм-фактора DIMM способствовало появление процессора Pentium, который имел 64-разрядную шину данных.

IV) DDR SDRAM (от англ. Double Data Rate Synchronous Dynamic Random Access Memory — удвоенная скорость передачи данных синхронной памяти с произвольным доступом) — тип оперативной памяти, используемой в компьютерах. При использовании DDR SDRAM достигается большая полоса пропускания, нежели в обыкновенной SDRAM, за счет передачи данных фронтe и срезу сигнала. За счет этого фактически почти удваивается скорость передачи данных, не увеличивая при этом частоты шины памяти. Таким образом, при работе DDR на частоте 100 МГц мы получим эффективную частоту 200МГц (при сравнении с аналогом SDR SDRAM). В спецификации JEDEC есть замечание, что использовать термин «МГц» в DDR некорректно, правильно указывать скорость «миллионах передач в секунду через один вывод данных».Ширина шины памяти составляет 64 бита, то есть по шине за один такт одновременно передается 8 байт. В результате получаем следующую формулу для расчета максимальной скорости передачи для заданного типа памяти: тактовая частота шины памяти x 2 (передача данных дважды за такт) x 8 (число байтов передающихся за один такт). Например, чтобы обеспечить передачу данных дважды за такт, используется специальная архитектура «2n Prefetch». Внутренняя шина данных имеет ширину в два раза больше внешней. При передаче данных сначала передаётся первая половина шины данных по переднему фронту тактового сигнала, а затем вторая половина шины данных по срезу. Кроме передачи двух данных за такт, DDR SDRAM имеет несколько других принципиальных отличий от простой памяти SDRAM. В основном они являются технологическими. Например, был добавлен сигнал QDS, который располагается на печатной плате вместе с линиями данных. По нему происходит синхронизация при передаче данных. Если используется два модуля памяти, то данные от них приходят к контроллеру памяти с небольшой разницей из-за разного расстояния. Возникает проблема в выборе синхросигнала для их считывания. Использование QDS успешно это решает. JEDEC устанавливает стандарты для скоростей DDR SDRAM, разделённые на две части: первая чипов памяти, а вторая для модулей памяти, на которых, собственно, и размещаются чип. Модули DDR SDRAM выполнены в форм-факторе DIMM. На каждом модуле расположено несколько одинаковых чипов памяти и конфигурационный чип SPD. На модулях регистровой (registered) памяти также располагаются регистровые чипы, на модулях нерегистровой (небуферизованной, unbuffered) памяти их нет.



Поделиться с друзьями:

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.031 с.