М. З. Якубова техника ғылымдарының кандидаты, доцент


Циклдердің жұмысымен танысу



бет76/141
Дата26.09.2023
өлшемі3.68 Mb.
#478578
1   ...   72   73   74   75   76   77   78   79   ...   141
КОМПЬЮТЕРЛІК ЖҮЙЕЛЕР АРХИТЕКТУРАСЫ

3.8. Циклдердің жұмысымен танысу
Жұмыстың мақсаты: программадағы циклдердің құрылы- мымен және іске асырылуымен таныстыру.
Қысқаша теориялық мәліметтер
Кез келген программалау тілінде программаның қандай да бір бөлігін көп рет орындауға мүмкіндік беретін циклдер – ең ыңғайлы құрылымдардың бірі. 86 МП командалар жүйесінде циклдер loop (тұзақ) командасының көмегімен іске асырылады. Көп жағдайларда циклдегі қадамдар саны СХ регистріндегі мә- ліметтермен анықталады, сондықтан максималды қадамдар са- ны 64 К анықталады. Циклдерді пайдалану орындалатын прог- рамманың кодын азайтады. Ассемблерде жалпы жағдайда кез келген цикл шартты көшу ретінде жазылады.
LOOР командасы арқылы циклдерді ұйымдастыру (Бі- рінші әдіс)
Loop командасы (ағыл. тұзақ) СХ (санағыш) регистріндегі
мән үшін декрементті орындай отырып, көрсетілген белгіге алға немесе кейін сол программалық сегментте - 128... + 127 байт аралығында көшеді. Әдетте белгі цикл денесінің бірінші сөйле- мінің алдына орналасады, ал loop командасы циклдің соңғы ко- мандасы болып есептеледі. СХ регистрінің мәні – таңбасыз бү- тін сан, сондықтан циклге енгізілген топтардың қайталануының
147

80-сурет. Программаның орындалу нәтижесі
148
максималды саны – 65536 (егер көшу алдындағы мәні СХ=0). Команда процессордың флагына әсер етпейді.

Команда

Атқаратын қызметі

Процессор

LOOP белгі

Циклді ұйымдастыру

8086

Ассемблер тіліндегі циклдік көшулерді ұйымдастырудың қарапайым мысалы:

org 100h

; СОМ – файлдың басы

begin:

; программа кодының басталу белгісі

mov cx,10

; CX регистріне (санағыш) қайталану санын енгіземіз (са- нау 10-нан бастап 0-ге дейін)

Label1:

; белгіні құрамыз (Label – белгі)

mov ah,9

; АН регистріне 9 жолды жылжытамыз

mov dx,offset String

Мәліметтер сегментінің басталуынан салыстырмалы String белгісінің ығыстырылуын DX регистріне орналасты- рады

int 21h

; «жолды шығару» функциясы

loop Label1

; loop операторы CX бірге азайтады, егер ол нөлге тең бол- маса, Label1 жолына көшеді

ret

; «программаны аяқтау» функциясы

string db 'SALEM
$сызба

; баспаға берілетін мәліметтердің жолы

end begin

; программа кодының аяқталу белгісі

149


Достарыңызбен бөлісу:
1   ...   72   73   74   75   76   77   78   79   ...   141




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет