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


Ассемблер тілі машиналық кодпен қалай байланысқан?



бет52/141
Дата26.09.2023
өлшемі3.68 Mb.
#478578
1   ...   48   49   50   51   52   53   54   55   ...   141
КОМПЬЮТЕРЛІК ЖҮЙЕЛЕР АРХИТЕКТУРАСЫ

Ассемблер тілі машиналық кодпен қалай байланысқан?
Біріншіден, машиналық код – бұл компьютердің орталық процессорында түсінікті және олар орындайтын іс-әрекетті анықтайтын сандардың жиыны. Мысалы, IA-32 тобындағы бар- лық Intel процессорларында өзара үйлесімді машиналық код бо- лады. Машиналық код тек қана екілік сандардан тұрады. Екін- шіден, ассемблер тілі қолданушыға түсінікті операторлардың жиынынан тұрады. Әрбір оператор процессор орындайтын әре- кеттердің қысқа тізімінен басталады, мысалы, ADD (қосу), MOV (жөнелту), SUB (азайту) немесе CALL (шақыру). Ассемб- лер тілі машиналық кодпен байланысты. Әрбір ассемблер ті- лінің операторына машиналық кодтың бір командасы сәйкес ке- леді.
Ассемблер тілінің жоғары деңгей тілдерімен C++ немесе Java байланысы қандай? Бұл тілдердің ассемблермен және ма- шиналық кодпен ешқандай бірмәнді сәйкестігі жоқ. Мысалы, C++ тіліндегі бір оператор ассемблер тілінің бірнеше оператор- ларына немесе бірнеше машиналық командаға трансляциялана- ды. Екілік санау жүйесіндегі машиналық кодты түсіну қиын болғандықтан, оның орнына ассемблер тіліндегі эквивалентті операторларын қарастырамыз. Төмендегі мысалды қарастырып көрейік:
Х және У бүтін мәнді айнымалылар болсын,
X = (У + 4) *3.
Трансляциялау нәтижесінде төмендегі ассемблерлік коман- далардың жиыны алынады. Назар аударатынымыз, жоғары дең- гей тілінің бір операторына ассемблер тілінің бірнеше команда- лары сәйкес келеді, себебі соңғысы тікелей машиналық кодпен байланысты.
mov еах, У; ЕАХ регистріне СЫЗБА айнымалының мәнін жүктеу;
add eax,4; ЕАХ регистріне 4 санын қосу;
mov ebx,3; ЕВХ регистріне 3 санын жүктеу;
110
imul ebx; ЕАХ регистрінің мәнін ЕВХ регистрінің мәніне кө- бейту;
mov Х, еах; ЕАХ регистрінің мәнін X айнымалысына жөнел- ту (сақтау).
Программалау тұрғысынан қарағанда регистрлер – әдеттегі
стандартты аттары бар, орталық процессорда орналасқан айны- малылар. Әдетте регистрлер процессорда командаларды орын- дау барысында бір операнд ретінде қолданылады. Осы мысал арқылы біз C++ тілінің артықшылығын немесе қуаттылығын айқындау емес, тек бір операторға ассемблер тілінің бірнеше ко- мандасы сәйкес болатынын көрсеткіміз келді. Сонымен, ассемб- лер тілі машиналық кодпен бірмәнді байланысқан.


Достарыңызбен бөлісу:
1   ...   48   49   50   51   52   53   54   55   ...   141




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

    Басты бет