FARDATA[аты] Инициализацияланбаған far типтегі деректер сегментінің басы немесе жалғасы Процедураны анықтау директивалары

Программа бір немесе бірнеше процедурадан тұрады. Проце­дураны сипаттаған кезде басы PROC нұсқаумен , ал соңы ENDP нұсқауымен беріледі. Процедура келесі пішімде беріледі:

Процедура_аты PROC [ара қашықтық атрибуты]

...

RET Процедура_аты ENDP

Ара қашықтық атрибуты ретінде FAR(алыс) және NEAR(жақын) опе­рандтары қолданылады.

FAR ара қашықтық атрибутын қолданған кезде процедураға жүгінуді басқа программалық сегменттен жүзе­ге асырылады, ал NEAR атрибутын пайдаланғанда тек өзі сипат­талған сегменттен жүзеге асырылады. RET командасы процедурадан қайта оралуды орындайды. Процедуралар қабаттасуы мүмкін. Қабаттасу деңгейі тек стек сегментінің өлшемімен шектеледі.

 

ASSUME директивасы.

Нұсқау ASSUME Ассемблерге қандай программалық сегменттер программаға жататындығын хабарлайды және сегменттер адрестерін шарт белгілер мен стек сегменттері үшін енгізеді. Қосымша сегмент және деректер сегменті үшін сегменттік адрес­терді енгізуді прогаммалаушы қамтамасыз етеді.

ASSUME нұсқауы шартбелгілер сегментінде келесі түрде сипатталады ASSUME SS:стек_аты,DS:деректер_аты,CS:шартбегілер_аты,ES:қосымша_аты Егер программа қайсыбір сегментті қолданбаса, онда оны көрсет­пей кетуге болады немесе NOTHІNG көрсету қажет.

Мысалы :

ASSUME SS:SSEG, DS:DSEG, CS:CSEG әлде

ASSUME SS:SSEG, DS:DSEG, CS:CSEG, ES:NOTHІNG

Содан да басқа NOTHІNG арқылы сегменттік регистрдің тағайындауын қайтарып тастауға болады.

 

Программаны аяқтайтын END директивасы

Нұсқау END Ассемблерге қай жерде трансляцияны аяқтау керек екенін хабарлайды және келесі түрде сипатталынады

END [енгізу-белгісі]

Енгізу-белгісі қызметінде негізгі процедураның аты, әлде программаның басының белгісі қолданылады.

 

Мәліметтерді анықтайтын директивалар

Мәліметтерді анықтау үшін келесі нұсқаулар қолданылады :

DB-байт анықтау,

DW-сөзді анықтау,

DD-қос сөздерді анықтау,

DQ-8 байтты немесе 4 сөзді анықтау,

DT-10 байтты анықтау.

Мәліметтерді анықтау нұсқаулардың форматының түрі:

[аты] Dn оқылуы

Осыған байланысты оқылуда мыналар қолданылады:

- тұрақты;

- таблица, массив немесе жол;

- символдық жол.

 

Тұрақты

Мәліметтерді анықтау нұсқаудың көмегімен айнымалыны тұрақты түрінде беруге болады:

A DB 10,

немесе бастапқы мәнін көрсетпей, еске сақтау жадыдан орын алуға болады. Егер айнымалы DD нұсқауы көмегімен жазылса.

A DD 10203040H , ал бізге нақты байт керек болса, онда оған келесі түрде жүгінуге болады:

MOV AL,byte ptr A ; AL=40H

MOV AL,byte ptr A+2 ;AL=20H Нақты бір сөзге жүгіну үшін :

MOV AX,WORD PTR A ; AX=3040H

MOV AX,WORD PTR A+2 ; AX= 1020H

DW нұсқауының көмегімен жадыда қандай да бір белгімен процедураның, ығысу адресін (көрсеткіш) сақтауға болады:

ADR_NEAR DW MAІN

DD нұсқауының көмегімен жадыда белгі мен процедураның (вектор) толық адресін жазуға болады.

ADR_FAR DD MAІN

 

Таблица

Таблицаны жазу кезінде, таблицадағы элементтер үтір арқылы жазылады

TAB DB 10,20,30,40,50

немесе тек еске сақтау жадыдан таблицаға орын алуға бола­ды:

TAB DB 5 DUP (?)

Бұл жерде таблицадағы әр элемент 1 байт көлемінде орын алады.

Бұл жағдайда кесте10 байт орын алады. Әр элементке 2 байт немесе сөз. Оператор DUP қайталау операциясын жүргізеді.Таблицаның элементтеріне жүгінгенде,оның өлшеміне қарамастан, кіші байт элементі жүреді осыны есте сақтау қажет.

Мысалы:

MAS DW 1122H,3344H,5566H,7788H

мұндағы нөлдік сөздің адресі бойынша 22h мәнімен анықта­лады санау нөлден басталады.

MAS - байттың адресі 22h мәні бойынша

MAS + 1 - байттың адресі 11h мәні бойынша

MAS + 2 - массивтің бірінші сөзінің адресі

MAS + 4 - массивтің екінші сөзінің адресі

 

 








Дата добавления: 2015-10-26; просмотров: 1482;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.