Команды переходов. Средства организации циклов. Режим Ideal icon

Команды переходов. Средства организации циклов. Режим Ideal




Скачати 76.37 Kb.
НазваКоманды переходов. Средства организации циклов. Режим Ideal
Дата03.08.2012
Розмір76.37 Kb.
ТипЛабораторная работа

ЛАБОРАТОРНАЯ РАБОТА N 10

Команды переходов. Средства организации циклов. Режим Ideal



Краткие теоретические сведения

Команда безусловной передачи управления JMP


Формат команды: JMP имя

Имя (метка) может иметь атрибут NEAR (близкая, т.е. в пределах одного и того же сегмента кода) или FAR (дальняя, т.е. такая, на которую можно переходить из других сегментов кода).

Команды условной передачи управления



В общем виде команда условной передачи управления такова:


Jx близкая метка,

где x - модификатор, т.е. A,E и другие (табл.2,3). Командам условного перехода могут предшествовать любые команды, изменяющие состояния флагов. Очень часто команды условного перехода используются после команды сравнения чисел (CMP). Причем в зависимости от интерпретации (числа со знаком или без знака) используются разные типы команд перехода, представленные в табл.2 в левой и правой графах.


Таблица 2

---------------------------------------T-------------------------

Условие перехода ¦ Следующая за CMP команда¦

¦ +-------------T-----------+

¦ ¦ для чисел ¦ для чисел ¦

¦ ¦ без знака ¦ со знаком ¦

+--------------------------------------+-------------+-----------+

¦ Приемник больше источника ¦JA (above) ¦JG (greater¦

¦ Приемник равен источнику ¦JE (equal) ¦JE ¦

¦ Приемник не равен источнику ¦JNE(not equal¦JNE ¦

¦ Приемник меньше источника ¦JB (below) ¦JL (less) ¦

¦ Приемник меньше или равен источнику ¦JBE(below or ¦JLE(less or¦

¦ ¦ equal) ¦ equal)¦

¦ Приемник больше или равен источнику ¦JAE(above or ¦JGE(greater¦

¦ ¦ equal) ¦ or equal)¦

L--------------------------------------+-------------+------------


Некоторые другие команды условного перехода представлены в табл.3.

Таблица 3

--------------T---------------------------------------T--------

¦ Команда ¦ Условие перехода ¦ Флаги ¦

+-------------+---------------------------------------+--------+

¦JC (carry) ¦ Перейти, если перенос ¦ CF=1 ¦

¦JCXZ(zero) ¦ Перейти, если значение регистра CX=0 ¦ CX=0 ¦

¦ ¦ (проверяет регистр CX, а не флаги) ¦ ¦

¦JZ (zero) ¦ Перейти, если 0 ¦ ZF=1 ¦

¦JNZ(not zero)¦ Перейти, если не 0 ¦ ZF=0 ¦

¦JNS (no sign)¦ Перейти, если знаковый разряд нулевой¦ SF=0 ¦

¦JS (sign) ¦ Перейти, если знаковый бит равен 1 ¦ SF=1 ¦

L-------------+---------------------------------------+---------


Пример

Вычислить ¦ a+x, если x>a

y=¦ 1, если x=a

¦ x, если x
; сегмент данных

.............

a dw 5

x dw 6

y dw ?

; сегмент кода

.........

mov ax,x

cmp ax,a ; x ? a

JG M1 ; если x > a, то переход на метку М1

JE M2 ; если x = a, то переход на метку М2, иначе

; переход на следующую команду

mov y,ax

JMP M3

M1:ADD ax,a ; x+a

mov y,ax

JMP M3

M2:mov y,1

M3: ...........


^ Режим Ideal (улучшенный)


В улучшенном режиме Турбо Ассемблера введен новый синтаксис некоторых выражений и операндов инструкций. Этот новый синтаксис не отличается существенно от синтаксиса MASM, но является более простой и понятной реализацией операций и ключевых слов.

Улучшенный режим содержит ряд средств, облегчающих процесс программирования:

  • строгая проверка типов в выражениях на этапе трансляции;

  • хорошо воспринимаемые выражения, заключенные в квадратные скобки и др.

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

Например:

mov ax,wordptr


приводит к выводу предупреждающего сообщения, если вы пытаетесь загрузить указатель (wordptr) в регистр (AX). Корректной будет следующая форма:


mov ax,[wordptr]


Здесь ясно, что вы загружаете содержимое ячейки, адресуемой с помощью wordptr (в текущем сегменте данных DS) в регистр AX.

Если вы хотите сослаться на смещение идентификатора в сегменте, то вы должны явно использовать операцию OFFSET, например:


mov ax,OFFSET wordptr


В улучшенном режиме идентификатор не может начинаться с точки, поэтому все директивы, которые начинаются с точки, изменены. Кроме того, изменен формат и некоторых других директив (табл.4.).


---------------------------T---------------------------

¦ Режим MASM ¦ Улучшенный режим (Ideal) ¦

+--------------------------+---------------------------+

¦ .386 ¦ P386N ¦

¦ .386C ¦ P386N ¦

¦ .386P ¦ P386 ¦

¦ .387 ¦ P387 ¦

¦ .8086 ¦ P8086 ¦

¦ .8087 ¦ P8087 ¦

¦ .CODE ¦ CODESEG ¦

¦ .DATA ¦ DATASEG ¦

¦ .DATA? ¦ UDATASEG ¦

¦ .MODEL ¦ MODEL ¦

¦ .STACK ¦ STACK ¦

¦ .STARTUP ¦ STARTUPCODE ¦

¦ .EXIT ¦ EXITCODE ¦

¦ имя ENDP ¦ ENDP [имя] ¦

¦ имя ENDS ¦ ENDS [имя] ¦

¦ имя MACRO аргументы ¦ MACRO имя аргументы ¦

¦ имя PROC тип ¦ PROC имя тип ¦

¦ имя SEGMENT аргументы ¦ SEGMENT имя аргументы ¦

¦ имя STRUC ¦ STRUC имя ¦

L--------------------------+----------------------------


Можно в одном и том же исходном файле переключаться из режима MASM в улучшенный режим и обратно так часто, насколько это необходимо. Для переключения в улучшенный режим перед использованием любых средств этого режима в исходный файл нужно включить директиву IDEAL. Аналогично можно переключаться обратно в режим MASM, задав одноименную директиву. Далее приведен пример простой программы, иллюстрирующей синтаксис улучшенного режима для сокращенного описания сегментов:


ideal

model small

dataseg

perem1 dw 5

codeseg

startupcode

mov ax,[perem1]

masm

mov bx,perem1

ideal

exitcode 0

end


^ Задания к лабораторной работе.


1. В соответствии с вариантом напишите программу на языке ассемблера для вычисления значения y. Значения y1 и y2 необходимо вычислять в подпрограммах; параметры в подпрограммы передавать через стек; результат также возвращать через стек. Используйте, где требуется, 32х-разрядные регистры. Произведите трассировку программы для проверки правильности вычислений. Исходные данные для вычисления выражений должны присутствовать в сегменте данных (a и x - числа со знаком длиной в байт). Аналогично, результаты вычислений должны быть помещены в сегмент данных.

2. Занесите в протокол:

  • исходные данные и полученные результаты вычислений в шестнадцатеричной форме, а также их местоположение в оперативной памяти и их эквиваленты в десятичной форме (для возможности проверки вычислений);

  • текст программы и ее описание;

  • содержимое стека и регистров IP,SP,BP в 4-х точках программы: 1)перед вызовом процедуры (одной), 2) после вызова, 3) перед выходом из процедуры, 4) после выхода.

3. Измените программу в соответствии с режимом Ideal и отладьте ее. Внесите в протокол те операторы, в которых произошли изменения.

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


---T----------------------------------------------------------

¦ ¦ - - ¦

¦ ¦ ¦a+x, если x>a ¦a*x, если x>10 ¦

¦1 ¦ y=y1+y2 y1=¦ y2=¦ ¦

¦ ¦ ¦2a-x, если x<=a ¦ x, если x<=10 ¦

¦ ¦ L L ¦

L--+-----------------------------------------------------------

¦ ¦ - - ¦

¦ ¦ ¦x-2, если x>=2 ¦4 , если x= 0 ¦

¦2 ¦ y=y1-y2 y1=¦ y2=¦ ¦

¦ ¦ ¦8 , если x<2 ¦a- x, если x<>0 ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦x-a, если x>a ¦a , если a>x ¦

¦3 ¦ y=y1*y2 y1=¦ y2=¦ ¦

¦ ¦ ¦5 , если x<-a ¦a* x, если a<=x ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦2-x, если x<2 ¦a-1, если x
¦ 4¦ y=y1+y2 y1=¦ y2=¦ ¦

¦ ¦ ¦ a+3, если x>=2 ¦a*x-1,если x>=a ¦

¦ ¦ ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦ |x|,если x<0 ¦a+x, если x mod 3 = 1¦

¦5 ¦ y=y1-y2 y1=¦ y2=¦ ¦

¦ ¦ ¦x-a , если x>=0 ¦ 7, в остальных ¦

¦ ¦ L L случаях ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦x mod 4, если x>a ¦a*x, если x/a>3 ¦

¦6 ¦ y=y1+y2 y1=¦ y2=¦ ¦

¦ ¦ ¦ a , если x<=a ¦ x, если x/a<=3¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦4-x, если |x|<3 ¦2, если x четное ¦

¦7 ¦ y=y1+y2 y1=¦ y2=¦ ¦

¦ ¦ ¦ a+x, в остальных ¦a+2, в остальных ¦

¦ ¦ L случаях L случаях ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦4*x, если x<=4 ¦7,если x нечетное¦

¦8 ¦ y=y1+y2 y1=¦ y2=¦ ¦

¦ ¦ ¦ x-a, если x>4 ¦x/2+a, в остальн.¦

¦ ¦ L L случаях ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦a*x,если x mod 3 = 2 ¦a-x, если a>x ¦

¦9 ¦ y=y1*y2 y1=¦ y2=¦ ¦

¦ ¦ ¦9, в остальных ¦a+2 , если a<=x ¦

¦ ¦ L случаях L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦a+|x|,если x>a ¦a*3, если a>3 ¦

¦10¦ y=y1-y2 y1=¦ y2=¦ ¦

¦ ¦ ¦a-7, если x<=a ¦ 11, если x<=3 ¦

¦ ¦ L L ¦

L--+-----------------------------------------------------------

¦ ¦ - - ¦

¦ ¦ ¦10+x, если x>1 ¦2, если x>4 ¦

¦11¦ y=y1 mod y2 y1=¦ y2=¦ ¦

¦ ¦ ¦|x|+a,если x<=1 ¦x, если x<=4 ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦15+x, если x>7 ¦3 , если x>2 ¦

¦12¦ y=y1/y2 y1=¦ y2=¦ ¦

¦ ¦ ¦|a|+9,если x<=-7 ¦|x|-5,если x<=2 ¦

¦ ¦ L L ¦

---T----------------------------------------------------------

¦ ¦ - - ¦

¦ ¦ ¦3+x, если x=a ¦|a|, если a
¦13¦ y=y1*y2 y1=¦ y2=¦ ¦

¦ ¦ ¦a-x, если x<>a ¦|a|-x,если x<=10 ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦2x+a,если x>2 ¦|x|+1,если x>0 ¦

¦14¦ y=y1-y2 y1=¦ y2=¦ ¦

¦ ¦ ¦2x+1, если x<=2 ¦a-1 , если x<= 0 ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦8+|x|, если x<1 ¦3 , если x=a ¦

¦15¦y=y1 mod y2 y1=¦ y2=¦ ¦

¦ ¦ ¦|a|*2,если x>=1 ¦a+1 , если x<>a ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦4+x, если x<=3 ¦|a|-2,если x>a ¦

¦16¦ y=y1+y2 y1=¦ y2=¦ ¦

¦ ¦ ¦ a*x, если x<3 ¦ x, если x<=a ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦a+|x|,если x<0 ¦7 , если x<3 ¦

¦17¦ y=y1-y2 y1=¦ y2=¦ ¦

¦ ¦ ¦x-a, если x>=0 ¦ a, если x>=3 ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦7+x, если x<3 ¦1 , если x>5 ¦

¦18¦y=y1 mod y2 y1=¦ y2=¦ ¦

¦ ¦ ¦|a|+x если x>=3 ¦ a+x, если x<=5 ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦-5, если x>4 ¦|a|, если x>a ¦

¦19¦ y=|y1|+y2 y1=¦ y2=¦ ¦

¦ ¦ ¦x-a , если x<=4 ¦ 9 , если x<=a ¦

¦ ¦ L L ¦

L--+-----------------------------------------------------------

¦ ¦ - - ¦

¦ ¦ ¦2*x, если x<5 ¦3 , если x<0 ¦

¦20¦ y=y1*y2 y1=¦ y2=¦ ¦

¦ ¦ ¦|a|+x если x>=5 ¦ a+x, если x>=0 ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦3,если x mod 3 = 1 ¦ a/x,если x<>0 ¦

¦21¦ y=y1+|y2| y1=¦ y2=¦ ¦

¦ ¦ ¦x-a, в остальных ¦ 4 , если x=0 ¦

¦ ¦ L случаях L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦|x|+|a|, если x<0 ¦3 , если a=x ¦

¦22¦ y=y1-y2 y1=¦ y2=¦ ¦

¦ ¦ ¦x*a, если x>=0 ¦ a-x, если a<>x ¦

¦ ¦ L L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦2*x, если |x|>4 ¦9 , если x=0 ¦

¦23¦ y=y1+y2 y1=¦ y2=¦ ¦

¦ ¦ ¦4+a, в остальных ¦ a/x, если x<>0 ¦

¦ ¦ L случаях L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦x,если x mod 4 <>2 ¦a-x, если x

¦24¦ y=y1*y2 y1=¦ y2=¦ ¦

¦ ¦ ¦a+x, в остальных ¦ a*x, если x>=a ¦

¦ ¦ L случаях L ¦

+--+----------------------------------------------------------+

¦ ¦ - - ¦

¦ ¦ ¦12 , если x<12 ¦2 , если x>2 ¦

¦25¦ y=y1/y2 y1=¦ y2=¦ ¦

¦ ¦ ¦x+1, если x>=12 ¦ a+x, если x<=2 ¦

¦ ¦ L L ¦

L--+-----------------------------------------------------------

Схожі:

Команды переходов. Средства организации циклов. Режим Ideal iconПовідомлення удк 658. 016/. 018 А. В. Л юлёв 1 Интерпретация фазовых переходов в экономических системах
В данной статье проанализирована возможность применения физических фазовых переходов для экономики, а также предложен алгоритм определения...
Команды переходов. Средства организации циклов. Режим Ideal iconПанели инструментов
Большинство кнопок дублирует наиболее часто употребляемые команды, доступные в меню. Для вызова команды, связанной с кнопкой, необходимо...
Команды переходов. Средства организации циклов. Режим Ideal iconТема №11. Психогеометрия технология формирования управленческой команды
...
Команды переходов. Средства организации циклов. Режим Ideal iconЧастина 2 наукові повідомлення
В данной статье проанализирована возможность применения физических фазовых переходов для экономики, а также предложен алгоритм определения...
Команды переходов. Средства организации циклов. Режим Ideal iconТема Природа менеджмента внутри организации Внутриорганизационный менеджмент
Под внутренней средой организации понимают ситуационные факторы внутри организации. Так как организации представля­ют собой созданные...
Команды переходов. Средства организации циклов. Режим Ideal iconОбезболивающие средства
Обезболивающие средства (болеутоляющие средства, анальгетики) – это лекарственные вещества, которые подавляют болевую чувствительность,...
Команды переходов. Средства организации циклов. Режим Ideal iconЛабораторная работа №3 Объявление и инициализация простых типов данных. Представление данных в памяти компьютера
Непосредственные данные, представляющие собой числовые или символьные значения, являющиеся частью команды. Непосредственные данные...
Команды переходов. Средства организации циклов. Режим Ideal iconМіж авторитаризмом та демократією: політичний режим в Україні після “Помаранчевої революції”
Демократизацію І поступальний рух України до консолідованої демократії. У статті обґрунтовується думка про те, що зі зміною влади...
Команды переходов. Средства организации циклов. Режим Ideal iconВартазарян Е. А., студентка Северо-Кавказский федеральный университет внутренний контроль как важнейший элемент в управлении хозяйственной деятельностью организации
Руководство организации заинтересовано в контроле за эффективностью работы отдельных структурных подразделений организации, добросовестностью...
Команды переходов. Средства организации циклов. Режим Ideal iconСнотворные средства
Снотворные средства – это лекарственные вещества, угнетающие цнс и способствующие наступлению сна
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи