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;