Дипломированных специалистов «Информатика и вычислительная техника»


Команды условного перехода и флаги



Download 12,06 Mb.
Pdf ko'rish
bet131/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   127   128   129   130   131   132   133   134   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Команды условного перехода и флаги
Мнемоническое обозначение некоторых команд условного перехода отражает на-
звание флага, с которым они работают, и имеет следующую структуру: первым идет
символ
(jump
переход), вторым — либо обозначение флага, либо символ от-
рицания
после которого стоит название флага. Такая структура команды от-
ражает ее назначение. Если символа «п» нет, то проверяется состояние флага и,
если он равен производится переход на метку перехода. Если символ «п» при-
сутствует, то проверяется состояние флага на равенство 0 и в случае успеха произ-
водится переход на метку перехода. Мнемокоды
названия флагов и усло-
вия переходов приведены в табл. 10.3. Эти команды можно использовать после
любых команд, изменяющих указанные флаги.
Таблица 10.3. Команды условного перехода и флаги
Название
флага
Переноса
PF
Нуля ZF
SF
Переполнения OF
Переноса CF
Четности PF
Нуля ZF
Знака SF
Переполнения OF
Номер бита
в регистре
1
2
6
7
11
1
2
6
7
11
Команда
условного
перехода
JC
JP
JZ
JS
JO
JNC
JNP
JNZ
JNO
Значение флага
для осуществления
перехода
CF = 0
PF 0
ZF 0
OF 0
Если внимательно посмотреть на табл. 10.2 и 10.3, видно, что многие команды
условного перехода в них эквивалентны, так как в них анализируются одинаковые
флаги.
В листинге
приведен пример программы, производящей в строке симво-
лов длиной п байт замену строчных букв английского алфавита прописными. Для
осмысленного рассмотрения этого примера вспомним ASCII-коды, соответствую-
щие этим буквам (см. главу 6). Строчные и прописные буквы в таблице ASCII упо-
рядочены по алфавиту. Строчным буквам соответствует диапазон кодов 61h-7ah,
прописным —
Для того чтобы понять идею, лежащую в основе алгоритма
преобразования, достаточно сравнить представления соответствующих прописных
и строчных букв в двоичном виде:


228 Глава
Команды передачи управления
1010
А - 0100 0001...Z - 0101 1010
Как видно из приведенного двоичного представления, для выполнения преоб-
разования
строчными и прописными буквами достаточно всего лишь ин-
вертировать 5-й бит.
Листинг
Смена регистра символов
<1>
<2> model
n equ
<6> stroka
<7>
<8> start:
<9> mov
<3>
<4>
<5>
small
100h
10
db
символов в stroka
mov
xor
mov
lea
ml: mov
cmp
jb next
cmp al,7ah
ja next
;адрес stroka в bx
;очередной символ из stroka в al
;убедиться, что код символа не меньше 61h
;если меньше, то не обрабатывать
перейти к следующему символу
что код символа не больше
;если больше, то не обрабатывать
перейти к следующему символу
5-й бит
;символ - на его место в stroka
;адресовать следующий символ
значение счетчика в сх
;если сх не 0, то переход на ml
;возврат управления операционной системе
<20>
<21> and
<22> mov
<23> next:
<24> inc bx
<25> dec
<26>
ml
<27> exit:
<28> mov
<29> int 21h
<30> end start
Обратите внимание на строку 25 листинга. Команда DEC уменьшает значение
регистра СХ на 1. Когда это значение станет равным 0, процессор по результату
операции декремента установит флаг ZF. Команда в строке 26 анализирует состоя-
ние этого флага и, пока он не равен 1 (см. табл. 10.3), передает управление на мет-
ку ml. Заметьте, что на место этой команды можно было бы поставить команду
(см. табл.
Но для анализа регистра СХ в системе команд процессора есть спе-
циальная команда, которую мы сейчас и рассмотрим.
Команды условного перехода и регистр ЕСХ/СХ
Архитектура процессора предполагает специфическое использование многих ре-
гистров. К примеру, регистр EAX/AX/AL используется как аккумулятор, а регистры
ЕВР/ВР, ESP/SP — для работы со стеком. Регистр ЕСХ/СХ тоже имеет определенное
функциональное назначение — он выполняет функции счетчика в командах
управления циклами и при работе с цепочками символов. Возможно, что функци-
онально команды условного перехода, связанные с регистром ЕСХ/СХ, правильнее
было бы отнести к этой группе команд.


Организация циклов 229
Синтаксис команд JCXZ (Jump if
is
— переход, если СХ ноль) и J ECXZ (Jump
Equal ecx Zero — переход, если ЕСХ ноль) таков:
Эти команды очень удобно использовать при организации цикла и при работе
с цепочками символов. В этой главе мы разберемся со средствами организации цик-
лов в программах на языке ассемблера и покажем работу команд JCXZ/JECXZ. Гла-
ва 12 будет посвящена цепочечным командам, где мы еще раз вернемся к коман-
дам JCXZ/JECXZ. Нужно отметить свойственное им ограничение. В отличие от других
команд условной передачи управления, команды
ECXZ могут адресовать толь-
ко короткие переходы — на -128 байт или на +127 байт от следующей за ней ко-
манды.

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   127   128   129   130   131   132   133   134   ...   357




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish