![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Жанама адрестеу кезіндегі адресті қалыптастыру режимдері
Билет 1. Пайдаланушылар регистрлеріРегистрлер – қатынас адрес бойынша емес, аты бойынша жүргізілетін процессордың ішінде орналасқан жадының арнайы ұяшықтары. Регистрлер жинағыМикропроцессордың программалық моделі 32 регистрден тұрады. Оларды екі үлкен топқа бөлуге болады: - 16 қолданушылық регистрлер; - 16 жүйелік регистрлер. Қолданушылық регистрлер. Қолданушылық регистрлерін программа жазушы өзінің программасын жазу барысында қолдана алады. Бұл регистрлерге жататындар: - сегіз 32-битті регистрлер. Оларды программа жазушы мәліметтер мен адрестерді сақтау үшін қолдана алады (оларды сондай-ақ, жалпы міндет регистрлері деп те атайды): eax/ax/ah/al, ebx/bx/bh/bl, edx/dx/dh/dl, ecx/cx/ch/cl, ebp/bp, esi/si, edi/di, esp/sp; - алты сегменттер регистрлері: cs, ds, ss, es, fs, gs; - қалып-күй және басқару регистрлері: жалаулар регистрі eflags/flags және команданы көрсету регистрі eip/ip. Жалпы міндет регистрлері Бұл топтың барлық регистрлері өзінің «кіші» бөліктеріне қатынауға мүмкіндік береді; өздік адрестеу үшін осы регистрлердің тек кіші 16- және 8-битті бөліктерін қолдануға болады. Б±л регистрлердің үлкен 16 биті өздік объекттер ретінде р±ќсатты емес. Жалпы міндет регистрлері процессорда арифметикалыќ-логикалық құрылғының (АЛҚ) ішінде орналасатындықтан оларды АЛҚ регистрлері деп те атайды: - eax/ax/ah/al (Accumulator register) — аккумулятор. Аралық мәліметтерді сақтау үшін қолданады. Кейбір командаларда бұл регистрлерді қолдану міндетті; - ebx/bx/bh/bl (Base register) — базалық регистр. Жадыдағы қайсыбір объектінің базалық адресін сақтау үшін қолданады; - ecx/cx/ch/cl (Count register) — санауыш-регистр. Командаларда қайсыбір әрекетті қайталау үшін қолданады. Оны қолдану көбінесе сәйкес команданың жұмыс алгоритмінде айќын емес және жасырынды. Мысалы, циклды ұйымдастыратын loop командасы қайсыбір адрес бойынша орналасқан командаға басқаруды беруден басқа есх/сх регистрінің мәнін талдайды жєне бірге азайтады; - edx/dx/dh/dl (Data register) — мәліметтер регистрі. еах/ах/ ah/al регистрі сияқты бұл регистр де аралық мәліметтерді сақтайды. Кейбір командаларда оны қолдану міндетті. Келесі екі регистр тізбекшелі операцияларды қолдау үшін қолданылады, яғни бұл операциялар элементтер тізбекшелерін тізбекті түрде өңдейді, олардың әрқайсысының ұзындығы 32, 16 немесе 8 бит болады; - esі/sі (Source Іndex regіster) — таратқыш индексі. Б±л регистр тізбекті операцияларда тізбек-таратқышта элементтіњ аѓымдаѓы адресінен тұрады; - edі/dі (Destіnatіon Іndex regіster) — қабылдағыш индексі (қабылдап алушы). Тізбекті операцияларда бұл регистр тізбек-қабылдағышта аѓымдаѓы адрестен тұрады. Микропроцессордың архитектурасында программалық – аппараттық деңгейде стек атты мєліметтер құрылымы пайдаланылады. Стекпен жұмыс істеу үшін микропроцессор командалар жүйесінде арнайы командалар бар, ал микропроцессордың программалық моделінде үшін арнайы регистрлер пайдаланылады: - esp/sp (Stack Poіnter regіster) — стек көрсеткішініњ регистрі. Ағымдағы стек сегментіндегі стек төбесінің көрсеткішінен тұрады. - ebp/bp (Base Poіnter regіster) — стектіњ кадры базасыныњ көрсеткішініњ регистрі. Стек ішіндегі деректерге қатынауды өз еркінше ұйымдастыру үшін арналған. 2. Жадыда операндтарды адрестеудің негізгі түрлері.Жадыда операндтарды адрестеудіњ негізгі түрлері. Адрестеудіњ барлыќ т‰рлерініњ мақсаты — процессорѓа тиімді адрес деп аталатын 16 биттік тањбасыз мєнді есептеуге кµмектесу. Тиімді адрес, cs, ds, es, ss тµрт сегменттік регистрлердіњ бірімен адрестелетін базалыќ сегменттен бастап ығысуды көрсетеді. Сегменттік регистр мен ығысу, ары ќарай жадыда байттыњ жаѓдайын бір маѓыналы аныќтайтын 20-биттік физикалық адреске т‰рленетін 32 биттік логикалыќ адресті т‰зеді. Адрестеу режимінің жалпы саны микропроцессордыњ архитектурасымен анықталады (құжат бойынша 8088 микропроцессорында операндтарды адрестеудіњ 24 режимі бар).Жадыда операндтарды адрестеудіњ негізгі түрлері: тура, жанама, базалық, индекстік, базалық-индексті. 3. Байт массивін қалай анықтайды?Байт – жадыда ең кіші адрестелетін шама. Байт 8 биттен тұрады. Байт (Б) (ағылш. Byte, B) — дерек көлемін өлшеу бірлігі. Сегіз биттен тұратын топ. Билет Жанама адрестеу кезіндегі адресті қалыптастыру режимдері. Жанама адрестеу Жанама адрестеуде сегменттегі сәйкес операндтыњ ыѓысуы микропроцессор регистрлерінің бірінде сақталады. Осылайша, микропроцессор регистрінің аѓымдаѓы ќ±рамы командада қолданылатын операндтың орындаушы адресін анықтайды. Синтаксистік т‰рде командада б±л адрестеу режимі регистрдіњ атын квадратты жаќшаѓа [ ] алумен кµрсетіледі. mov ax, [ecx] командасы есх регистрінде сақталатын ыѓысумен мєліметтер сегментінен адрес бойынша сµздіњ ќ±рамын ах регистріне көшіреді. Жанама адрестеу кезінде 18086 микропроцессоры ‰шін тек қана [ВХ], [SI], [DI], [ВР] регистрлерін ќолдануѓа болады. Бастапќы үш регистрлер ‰шін олардыњ ќ±рамы мєліметтер сегментіне ќатысты ыѓысу болып табылады (демек, DS сегменттік регистрініњ аѓымдаѓы мєні адрестіњ екінші ќ±рамасын аныќтайды). [ВР] регистрі адресті есептеу үшін стек сегментінде ығысуды анықтайды. ВХ немесе ВР регистрлерін қолдану кезінде адрестеуді базалық, ал SI немесе DI қолдану кезінде - индекстік деп атайды. Жанама адрестеуді регистр арқылы қолдануын көрсету ‰шін жоѓарыда кµрсетілген мысалды т‰рлендірейік: mov AX, OB800h;Бейнебуфердіњ сегменттік mov ES, AX;адресі ES-те mov BX, 2 0 0 0; Экранның ортасына ығысу mov byte ptr ES : [BX] , ‘!’ ;Экрандағы символ Егерде жанама адрестеу ВХ, SI немесе DI регистрлерініњ бірінің көмегімен орындалса, онда DS арқылы адрестелетін сегмент т‰сініледі, сондықтан б±л регистр арқылы адрестеу кезінде DS: белгілеуін түсіруге болады: mov AX, 0B800h ;Бейнебуфердіњ сегменттік адресі mov DS, AX ;DS-те mov BX, 2000 ;Экранның ортасына ығысу mov byte ptr [BX] , ' ! ' ;Экрандағы символ Бұл фрагмент алдыңғыға қарағанда жадыны ‰немдеу маѓынасында тиімді. Соњѓы команданыњ кодында сегментті ауыстыру префиксі болмаѓандыќтан, ол 1 байтќа кем орын алады. ВХ, SI және DI регистрлері бұл қолдануда тең мєнді, сондықтан олардың кез келгенін қолдануға болады: mov DI, 2000;экранның ортасына ығысу mov byte ptr [DI] , ' ! ' ;Экрандағы символ ВР регистрі арнайы стекпен жұмыс істеуге арналған жєне жанама адрестеу режимдерінде б±л регистр арќылы адрестеу кезінде стек сегменті т‰сініледі, басќаша айтќанда, сегменттік регистр ретінде, ‰нсіздік бойынша SS регистрі қолданылады. Базалық адрестеумен команда жадыда аз орын алады (өйткені оѓан ±яшыќ адрестері кірмейді) және тура адрестеу командасына қарағанда тез орындалады. Сондықтан базалық адрестеу, берілген адрес бойынша кµп рет ќаратпа жасауѓа тура келген жаѓдайларды, єсіресе, циклда, тиімдірек болып саналады. I80386 жоѓары микропроцессорлар ‰шін жанама индексті адрестеу жєне база бойынша жанама адрестеу кењейтілген. Индекстік регистрлер ретінде барлық мєліметтер регистрлерін қолдануға болады - [ЕАХ], [ЕВХ], [ЕСХ], [EDX], және де үш индексті регистрлер - [ЕВР], [ESI], [EDI]. Бұл жағдайда т±раќты, немесе байт, немесе ќос сµз болуы мүмкін, жєне б±л т±раќты тањбасы бар сан ретінде қарастырылады. [ЕВР] регистрінен басқа барлыќ регистрлер ‰шін адресті есептеу кезінде DS сегменттік регистрінің аѓымдаѓы ќ±рамы, ал [ЕВР] регистрі ‰шін - SS сегменттік регистрінің ќ±рамы қолданылады. Offset операторы. mov BX, offset array ;Базалық регистрде массивтің базалық адресі mov BX,offset array ; массив адресі mov DI,offset bios ;Мерзімді сақтау үшін өріске ығысу mov DX,offset bios ;жолға ығысу mov DX,offset bios ;жолға ығысу 3. Бит массивін қалай анықтайды? Бит –байттың бір разряды, ақпараттың ең кіші өлшемі Компьютерде ақпараттың ең аз бірлігі бит болып табылады. Бит 0 немесе 1 мәндерін қабылдау мүмкін. Сегіз биттен құралған топ байт деп аталады. Байт разрядтары немесе биттер оңнан солға қарай 0-ден 7-ге дейін нөмірленеді: Биттер нөмірлері: 7 6 5 4 3 2 1 0 Биттер мәндері: 1 0 1 0 1 0 0 1 Екі байт немесе он алты бит сөз болып табылады. Сөздер оңнан солға қарай 0-ден 15-ке дейін нөмірленеді. Биттер нөмірлері: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Биттер мәндері: 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 Бұл сөзде 8-ден 15-ке дейінгі разрядты байт үлкен байт деп аталады және 10101010 мәніне ие болады, ал 0-ден 7-ге дейінгі разрядты байт кіші байт деп аталады және 11110000 мәніне ие болады. Компьютердегі барлық есептеулер екілік санау жүйесінде, яғни екілік кодта іске асады. Сандарды он алтылық жүйеде келтіру сандардың екілік кодтағы қысқаша жазылуы болып табылады. Ол үшін төрт екілік разряд бір он алтылық разрядта жазылады. Бұл сандарды келтірудің екі форматынан басқа ондық, екілік-ондық (BCD) және ASCII – кодтар қолданылуы мүмкін.
![]() |