1-маъруза. Ассемблердан икки ўтишли транслятор


Download 74.88 Kb.
bet6/6
Sana20.11.2023
Hajmi74.88 Kb.
#1789604
TuriПрограмма
1   2   3   4   5   6
Bog'liq
SO`M

қайтиш адресини сақлаш


15

0003

CLOOP

+JSUB

RDREC

4B100000

Берилганларни ўқиш

20

0007




LDA

LENGTH

032023

Ўқиш тугаганлигини аниқлаш

25

000A




COMP

#0

290000

EOF (LENGTH=0)

30

000D




JEQ

ENDFIL

332007

EOF бўлса чиқиш

35

0010




+JSUB

WRREC

4B100000

Берилганларни ёзиш

40

0014




J

CLOOP

3F2FEC

Такрорлаш

45

0017

ENDFIL

LDA

=C’EOF’

032016

Файл охири белгисини юклаш

50

001A




STA

BUFFER

0F2016




55

001D




LDA

#3

010003

LENGTH =3

60

0020




STA

LENGTH

0F200A




65

0023




+JSUB

WRREC

4B100000

EOF ни чикариш

70

0027




J

@RETADR

3E2000

Программадан чикиш

95

002A

RETADR

RESW

1







100

002D

LENGTH

RESW

1




Ёзув узунлиги




0030

*

=C’EOF’




454F46

Файл охири белгиси

105

0033

BUFFER

RESB

4096







106

1033

BUFEND

EQU

*




BUFEND қиймати жойлаштигич қийматига тенг

107

1000

MAXLEN

EQU

BUFEND - BUFFER

MAXLEN адреслар айирмасига тенг

109

0000

RDREC

CSECT







Бошқарув секция боши

110







EXTREF BUFFER, BUFEND, LENGTH




115

0000




CLEAR

X

B410

Такрорлаш ҳисоблагичига 0 қиймат

120

0002




CLEAR

A

B400

A регистрга 0 қиймат

125

0004




CLEAR

S

B440

B регистрга 0 қиймат

130

0006




LDT

MAXLEN

77201F

Ёзувнинг максимал узунлиги

135

0009

RLOOP

TD

INPUT

E3201B

Ўқиш қурилмани текшириш

140

000C




JEQ

RLOOP

332FFA

Тайёр бўлгунча такрорлаш

145

000F




RD

INPUT

DB2015

А регистрга белгини ўқиш

150

0012




COMPR

A,S

A004

Ёзув тугашини текшириш

155

0014




JEQ

EXIT

332009

Охири бўлса -чиқиш

160

0017




+STCH

BUFFER, X

57900000

Буферга белгини ёзиш

165

001B




TIXR

T

B850

Ёзув максимал узунлигигача

170

001D




JLT

RLOOP

3B2FE9

Такрорлаш

175

0020

EXIT

+STX

LENGTH

13100000

Ёзув узунлиги

180

0024




RSUB




4F0000

Қисмпрограммадан қайтиш

185

0027

INPUT

BYTE

X’F1’

F1

Ўқиш қурилмаси коди

190

0028

MAXLEN

WORD

BUFEND - BUFEND

























191

0000

WRREC

CSECT










192







EXTREF LENGTH, BUFFER







195

0000




CLEAR

X

4B10

Такрорлаш ҳисоблагич. 0 қиймат бериш

200

0002




+LDT

LENGTH

77100000




205

0006

WLOOP

TD

қX’05’

E32012

Ёзиш қурилмасини текшириш

210

0009




JEQ

WLOOP

332FFA

Тайёр бўлгунча такрорлашш


215

000C




+LDCH

BUFFER, X

53900000

Буфердан ўқиш

220

0010




WD

=X’05’

DF200B

Белгини ёзиш

225

0013




TIXR

T

B850
Барча белгилар
Ёзилгунча

230

0015




JLT

WLOOP

3B2FEE

Такрорлаш

235

0018




RSUB




4F0000

Қисмпрограммадан қайтиш

240







END

FIRST







245

001B

*

=X’05’




05




Программа учта БСдан иборат: асосий программа ва ўқиш ва ёзиш қисм программалари. COPY - биринчи БС номи. У 109 қатордаги CSECT ифодасигача. CSECT янги БС бошланишини билдиради. Ҳар бир БС учун код генерациясида адрес (жойлаштириш адреси) нолдан бошланади.


Бир БСда аниқланган ном бошқа БСда бевосита ишлатилиши мумкин эмас. Агар бунга зарурат бўлса, программа матнида бу номлар юклагич томонидан қайта ишланиши учун ташқи кўрсатгич (EXTREF) ва ташқи номлар (EXTDEF) сифатида эълон қилиниши керак. COPY БСдаги BUFFER, BUFEND ва LENGTH нишонлар COPYдан ташқарида ҳам ишлатилиши учун улар EXTDEF руйхатида бўлиши керак. COPY, RDREC, WDREC номларнинг EXTDEF ёзувида эълон қилиниши шарт эмас, улар юклаш жараёнида автоматик равишда аниқланади.

Ташқи номлар аниқловчиси (EXTDEF ) формати.



Устунлар ва улар қийматлари

1

2-7

8-13

14-73

D

Ташқи ном идентифи­ка­тори (шу секцияда аниқ­ланган)

Номнинг нисбий адреси (16 санок тизимсида)

8-13 устунлардек

Ташқи кўрсатгич ёзуви (EXTREF) формати.

Устунлар ва улар қийматлари

1

2-7

8-73

D

Бу секцияда мурожаат бўл­ган ташқи ном

2-7 устунлардек

Энди программанинг ассемблер томонидан қайта ишланишининг ўзига хос томонларини программанинг 15-қатордаги буйруғи учун код ҳосил қилинишида кўрайлик.


15 0003 CLOOP +JSUB RDREC 4B100000
Бу ерда RDREC ташқи кўрсатгич. Ассемблер учун RDREC хотирага юкланиш адреси номаълум. Шу сабабли буйруқ кодининг адрес қисми­га 0 қиймати ёзилади. Худди шундай 160 буйруқнинг адрес майдони ва 190 қатордаги ҳисобланувчи қиймат 0 бўлади. Юклагич бундай буй­руқлардаги адресларнинг “бўш” ўринларини тўлдириш учун модифиқатор ёзувига қўшимчалар киритиш зарур:



Устунлар ва улар қийматлари

1

2-7

8-9

10

11-16

M

Модификация қили­нувчи адрес­нинг программа бошига нисбатан силжиши

Модификация қили­­нувчи адрес май­донининг ярим байтлардаги узун­ли­ги (16 саноқ тизи­ми­да)

Модификация алома­ти (+ ёки -)

Қиймати кўр­сатилган майдон­га қўшиладиган ёки айриладиган ташқи ном

Бошқарув секцияларидан ташкил топган программа матнига мос келувчи объект программа:


HCOPY000000001033
DBUFFER000033BUFEND001033LENGTH00002D
RRDRECWDREC
T0000001D1720274B1000000320232900074B100000...
....
M00000405+RDREC
M00001105+WDREC
M00002405+WDREC
E000000

HRDREC00000000002D


RBUFFERLENGTHBUFEND
T0000001DB410B400B44077201FE3201B332FFADB2015A004332009...
....
M00001805+BUFFER
M00002105+LENGTH
M00002805+BUFEND
M00002805- BUFFER
E000000

HWRREC00000000002C


RBUFFERLENGTH
T0000001CB41077100000E32012332FFA53900000DF2008B8503B2FEE4F000005
M00001805+BUFFER
M00002105+LENGTH
M00002805+BUFEND
M00002805- BUFFER
E000000
Download 74.88 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling