X86 ассемблер тілі
Автор: annelonalbek03 • Июнь 22, 2023 • Контрольная работа • 2,656 Слов (11 Страниц) • 177 Просмотры
ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ СӘТБАЕВ УНИВЕРСИТЕТІ
автоматика и информационные технологии институты
программная инженерия кафедрасы
[pic 1]
СӨЖ
№ | Жұмысты орындау сапасы | Баға диапазоны | Орындалған % |
1 | Орындалған жоқ | 0% | |
2 | Орындалды | 0-50% | |
3 | Материялдық өзіндік жүйелендіру | 0-10% | |
4 | Талап етілген көлемде және көрсетілген мерзімде орындау | 0-5% | |
5 | Қосымша ғылыми әдебиеттерді пайдалану | 0-5% | |
6 | Орындаған тапсырманың ерекшелігі | 0-10% | |
7 | СӨЖ-ді қорғау | 0-20% | |
Қорытынды: | 0-100% |
Оқытушы: Марғұлан Қабылжан
Студент: Оңалбек Әнел
Мамандығы: computer science
Алматы 2023 ж
X86 ассемблер тілі-1972 жылдың сәуірінде енгізілген Intel 8008-ге дейін үйлесімділіктің белгілі бір деңгейін қамтамасыз ететін кері үйлесімді ассемблер тілдерінің отбасы. x86 үшін нысан кодын жасау үшін құрастыру тілдері қолданылады x86 процессорлар класы. Барлық құрастыру тілдері сияқты, ол компьютердегі CPU түсінетін және орындай алатын негізгі нұсқауларды ұсыну үшін қысқа мнемотехниканы қолданады. Компиляторлар кейде жоғары деңгейлі бағдарламаны машина кодына аударған кезде аралық қадам ретінде құрастыру кодын жасайды. Бағдарламалау тілі ретінде қарастырылатын ассемблерлік кодтау машинаға тәуелді және төмен деңгей болып табылады. Ассемблер тілдері әдетте шағын, нақты уақыттағы ендірілген жүйелер немесе ядро операциялық жүйесі және құрылғы драйверлері сияқты егжей-тегжейлі және уақытты қажет ететін қолданбалар үшін пайдаланылады.
Регистрлер
x86 процессорларында екілік деректер қоймасы ретінде пайдалануға болатын регистрлер жиынтығы бар. Деректер регистрлері мен мекен-жайлар жиынтықта жалпы регистрлер деп аталады. Әрбір регистрдің барлығы жасай алатын нәрсеге қосымша арнайы мақсаты бар:
AX көбейту / бөлу, жолды жүктеу және сақтау
move үшін BX индексінің регистрі
жол операцияларына арналған CX есептегіші және ауысады
IN және OUT үшін DX порт мекенжайы
SP стектің жоғарғы жағын көрсетеді
BP стек жақтауының негізін көрсетеді
SI ағындық операциялардағы көзді көрсетеді
DI ағындық операциялардағы тағайындалған орынды көрсетеді
Жалпы регистрлермен қатар қосымша қол жетімді:
IP нұсқаулығының көрсеткіші
FLAGS
64k сегментінің қай жерде басталатынын анықтайтын сегмент регистрлері (CS, DS, ES, FS, GS, SS) (80286 және одан бұрынғы FS және GS жоқ)
қосымша кеңейту регистрлері (MMX, 3DNow!, SSE және т.б.) (тек Pentium және одан кейінгі нұсқалары).
IP регистрі код сегментіндегі келесі Нұсқаулықтың жадының жылжуын көрсетеді (ол Нұсқаулықтың бірінші байтына нұсқайды). Бағдарламашы IP регистріне тікелей қол жеткізе алмайды.
X86 регистрлерін MOV нұсқаулары арқылы пайдалануға болады. Мысалы, Intel синтаксисінде:
mov ax, 1234h; 1234hex (4660d) мәнін AX регистріне көшіреді
mov bx, ax; AX регистрінің мәнін BX регистріне көшіреді
Орындау режимдері
X86 процессорлары x86, Real Mode, Protected Mode, Long Mode, Virtual 86 Mode және system Management Mode үшін бес жұмыс режимін қолдайды, олардың кейбір нұсқаулары бар, ал басқалары жоқ. 16 биттік нұсқаулар жиынтығы 16 биттік x86 процессорларында қол жетімді, атап айтқанда 8086, 8088, 80186, 80188 және 80286. Бұл нұсқаулар нақты режимде барлық x86 процессорларында және 16 биттік қорғалған режимде қол жетімді. (80286 және одан әрі) қорғалған режимге қатысты қосымша нұсқаулар бар. 80386 және одан кейінгі нұсқаларында 32 биттік нұсқаулар (кейінгі кеңейтімдерді қоса) барлық режимдерде, соның ішінде нақты режимде де қол жетімді; бұл процессорлар V86 режимін және 32 биттік қорғалған режимді қосады, олардың функцияларын басқару үшін осы режимдерде қосымша нұсқаулар берілген. Кейбір арнайы нұсқаулары бар SMM кейбір Intel i386sl, i486 және одан кейінгі процессорларда қол жетімді. Сонымен, ұзын режимде (AMD Opteron және одан кейінгі) 64 биттік нұсқаулар мен басқа регистрлер де бар. Командалар жиынтығы әр режимде бірдей, бірақ жадтың адрестелуі мен сөз өлшемі әр түрлі, бұл әр түрлі бағдарламалау стратегияларын қажет етеді.
...