Практикалық жұмыс №10,11
Тақырыбы: Ассемблерде массивтермен жұмыс жолдары. Екі өлшемді массив.
Мақсаты: Ассемблерде екі өлшемді массивтермен жұмыс жолдарын мегерту.
ТҚЖ:Компьютер
ПЖ: TurboPascal, TurboAssembler, MacroAssembler т.б.
Бақылау сұрақтары:
1.Индексті айнымалылар қалай жүзеге асырылады?
2.Адресті модификациялау, индекстеу қалай жасалады?
3.Жанама сілтеме дегеніміз не?
4.Бірнеше регистрлер арқылы модификациялау қалай жүреді?
5.Орындалатын адрес дегеніміз не? Ол қалай есептеледі?
6.LEA және XLFT командаларының мағанасы неде?
Тапсырма:Берілген есептің алгоритмін құрып, ассамблерде прогаммасын жазу керек.
Тапсырмалардың жеке варианттары:
№1A[N, N] матрицасының негізгі диагональ бойында орналасқан оң таңбалы элементердің санын және қосындысын есептеу керек.
№2Квадрат матрицасы берілген. Бас диагоналіндегі максимал элементі бар жолды m нөмірімен берілген жолмен орын ауыстыру керек.
№3B[N, M] матрицасы берілген. Матрицаның әрбір жолынан максимал және минимал элементі тауып, олардың орнын бірінші және соңғы элементпен сәйкес ауыстыру керек.
№4n-ші ретті квадрат матрицасы берілген. Оның магиялық квадрат болатындығын анықтау керек, яғни барлық жолдар мен бағандардағы элементтердің қосындысы бірдей болатын.
д№5 өлшемді нақты матрица берілген. Оның жолдары мен бағандарының орнын ауыстыра отырып, ең үлкен элементтің (немесе олардың біреуін) сол жақ жоғарғы бұрышта болуын орындау керек.
№6Берілген n-ші ретті квадрат матрицасының симметриялы (бас диагональға қатысты) болатынын анықтау керек.
№7Бүтін санды квадрат матрицасы берілген. Әрбір жолдың ең үлкен элементін тауып, оны негізгі диагоналдің элементімен ауыстыру керек.
№8 өлшемді матрицаның әрбір жолының элементтерін өсу реті бойынша реттеу керек.
№9A[N, N] квадрат матрицасы берілген. Матрицаның теріс таңбалы элементтерінің орнына – нөлді, ал оңдарының орнына – бірді жазу керек.
№10Барлық элементтері әртүрлі болатын өлшемді матрица берілген. Әрбір жолдан ең кіші мәнді элемент таңдалады, содан кейін осы сандардың арасынан ең үлкені таңдалады. Табылған мәнді элементтің индексін көрсету керек.
№11Квадрат матрицасы берілген. Транспонирленген матрица алу керек, яғни бағандары мен жолдарының орындары ауыстырылған матрица.
№12n-ші ретті квадрат матрицасы және kсаны берілген. K-сыншы жолдың элементтерін осы жолда орналасқан диагональ жол элементіне бөлу керек.
№13Бүтін санды квадрат матрицасы үшін k-ға еселі болатын элементтер санын және алынған мәндердің ішінен үлкенін табу керек.
№14Тіктөртбұрышты матрицаның ең үлкен және ең кіші элементтерін тауып, олардың орнын ауыстыру керек.
№15Тіктөртбұрышты матрица берілген. Элементтерінің қосындысы ең үлкен және ең кіші болатын жолды табу керек. Табылған жолдарды және сол жолдардағы элементтердің қосындысын экранға шығару керек.
Глоссарий
А
Адресті модификациалау - командадағы адресті орындалатын адреске ауыстыру.
Ассемблер - машиналық тілдің символдық формада жазылуы. Онда амалдардың цифрлық кодтарының орнына үйреншікті амал белгілері немесе олардың сөздік атаулары, адрестердің орнына – атаулар жазылады, ал тұрақтылар ондық жүйеде жазылады.
Б
Байт (byte)- ұзындығы 8 бит қатар жатқан екілік сандар тізбегі.
Белгі – символдық атау.
Бит- компьютердегі мәліметтердің базалық өлшемі.
Е
Екіеселі сөз (double word) – бұл ұзындығы 2 сөз (4 байт) болатын мәліметтердің реттелген тізбегі.
Ж
Жазба - өрістері жеке ұяшықтарда емес, ұяшықтың бөлігінде орналасатын жинақталған құрылым.
Жедел жад- процессор адрес шинасы арқылы катынайтын компьютердің нақтылы (іс жүзіндегі) жады немесе жедел сақтау құрылғысы.
Жергілікті атаулар - модульде сипатталатын барлық атаулар сол модульдің ішінде жекеленеді, яғни сол модульдің ішінде сипатталып, модульден шыққанда ұмытылады. Ондай атаулар жергілікті атаулар деп аталады.
Жолдар- бір немесе қос тырнақшаларға алынып жазылған символдар тізбегі.
Жылжытылатын прораммалар (орындалатын модуль- программаны орындау барысында операциялық жүйе оны жадтың кез келген ыңғайлы жеріне орналастыра алады. Ал ол үшін компиляцияланған программаны жылжытуға болатындай етіп өзгерту керек. Жылжытылатын программалар компоновщик (жинақтағыш) деп аталатын арнайы программалардың көмегімен жасалады.
И
Идекстеу- индексті айнымалының адресін алуды сипаттау әдісі.
Идентификатор - программаның әртүрлі объектілерін - айнымалыларды, белгілерді, амалдар атауларын және т.б. - белгілеу үшін қолданылатын ассемблердің қарапайым құрылымы.
Индекстік регистр- регистр-модификатор индексті сақтауға қолданылатын регистр.
К
Кодтау жүйесі - символдар мен олардың кодтарының арасындағы сәйкестік.
Командалар форматы- командаларды кодтау ережелері.
Компьютердің архитектурасы- ЭЕМ–нің құрылымын, техникалық сұлбасын, логикалық ұйымдастырылуын айқындайтын ЭЕМ–нің абстрактылы көрінісі.
Қ
Қотарма (буферлік) жад- процессордың жедел жұмысына қажетті тек аздаған командаларды уақытша сақтап тұратын, процессор мен жедел жадтың арасындағы жад.
Құрылым – дегеніміз бірнеше қатар жатқан ұяшықтарға орналасатын құрама объект. Құрылымның компоненттері өрістер деп аталады, олардың типтері мен өлшемдері әртүрлі болуы мүмкін: мысалы, бір өріс байт, екінші өріс сөз т.с.с. Өрістер аталып, оларға қатынау осы атаулар арқылы жасалады.
Қызметші сөздер – транслятор үшін мағынасы алдын-ала анықталған сөздер.
Л
Логикалық командалар- логикалық (бульдік) алгебра амалдарына негізделген. Бұл амалдар екілік санның жеке биттарын модификациялауға мүмкіндік береді.
М
Массив – бір атау берілген, біртипті мәліметтердің белгілі бір жиынтығы. Массивті DUP қайталау конструкциясын қолдану арқылы мәліметтерді анықтау диретиваларымен сипаттауға болады.
Машиналық командалар- белгілі бір ережелерге сүйене отырып құрастырылған нөлдер мен бірлердің тізбегі.
Мнемокод (мнемоникалық код)- команданың міндетті бөлігі.
Модификатор- модификациалауда қолданылатын регистр немесе жай ғана дейміз.
О
Оналтылық сан - іргелес тетрадалардың (төрт биттар) тізбегі.
Операндтар - командалар мен директиваларда берілетін амалдарды орындауға қатысатын объектілер.
П
Позициялық санау жүйесі - цифрдың мағынасы оның сандағы орнына тікелей байланысты болатын санау жүйесі. Позициялық санау жүйесінде сандарды жазуға арналған цифрлар саны санау жүйесінің негізіне (q) тең.
Р
Регистрлер – мәліметтерді процессорда сақтауға арналған жоғары жылдамдықты жад аймағы.
Регистрлер - орталық процессорда орналасқан және оларға программа арқылы қатынауға болатын ұяшықтар.
Регистр-модификатор- модификациалауда қолданылатын регистр
Рекурсивтік процедура - өзіне өзі тікелей (тіке рекурсия) немесе басқа процедуралар (жанама рекурсия) арқылы қатынайтын процедура.
С
Санау жүйелері- сандардың жазылу ережелерінің жиынтығы. Санау жүйелері позициялық және позициялық емес болып бөлінеді.
Сөз (word) – бұл ұзындығы екі байт (16 разряд) мәліметтердің реттелген тізбегі.
Сөйлемдер–командалар- машиналық команданың символдық түрде жазылуы.
Стек дегеніміз оған жазылған соңғы элемент бірінші оқылатын принциппен ұйымдастырылған жад аймағы. Стек арнайы стек сегментіне орналастырылады.
Т
Таңбасыз бүтін сандар - оң сандар немесе нөл.
Тікелей операнд- операнд команданың өзінде көрсетілуі, немесе регистрлердің бірінде орналасуы
Трансляциялау- ассемблердің (ТASM немесе MASM-ның) көмегімен адамға түсінікті жазылған, бастапқы программаны, процессорға түсінікті, объектілік программаға түрлендіру процесі.
Түтініктемелер- программаның мағынасына әсер етпейтін, трансляциялану кезеңінде ескерілмейтін программада түсініктемелер жазу үшін қолданылатын ассемблер тілінің құрылымы.
І
Ішкі шиналар- процессорда жүйелік шиналар тәрізді параллелді өткізгіштер жиынтығы болып келетін, процессордың жеке блоктарын олардың мәліметтер алмасуы үшін жалғастыратын шиналар
Ш
Шешім қабылдау командалары- программаның орындалу алгоритмі бойынша машинада жазылған командалардың қалыпты ретін өзгертіп отыру қажет болған жағдайда, яғни келесі орындалатын командаға өту үшін қолданылатын командалар. Бұл командаларды программалау тілдерінде қысқаша өту командаларды деп атайды.