erstellt am / farita je 1998-12-28
Programlingvo E koncize (validas por PC-versio 0.9)
- Speco de memoro kaj procesilo bezonataj
- Minimuma vorttrezoro ( D . K )
- Dosieroj
- Fontotekstoj
- Etikedoj
- Generado de kodo øenerale
- Generado de kodo (ordonoj dependaj de la procesilo)
- Generado de kodo (ordonoj dependaj de la mastruma sistemo )
- Ordonoj por la demonstra moduso
- Analizo de la memoro
- Aliaj ordonoj
La dokumentitaj vortoj de E
---------------------------
OKT BIN HEX DEC DEKOMP ENHAVO EDIT INFO INIT AUS EIN ( FORGESU
BF<- EN EL IRT IR0 IRU A- A+ A-> A<- A= IRS M=2 M=1 RE LOKO
AADR MADR ADR FERMU KOMPILU EL-D EN-D K D . LISTU
zurueck / reen!
Speco de memoro kaj procesilo bezonataj
Por E oni bezonas E-kompililon.
Tio kompililo bezonas lineare adreseblan memoron kun minimuma
grandeco de 4 kilobajtoj, 16-bita adresado kaj 8-bita larøeco.
La jam ekzistanta PC-versio 0.9 de la kompililo funkcias en la
64K-a memorosegmento 2005 heksadecimale. La eniradreso estas 9C40 h.
La memoro devas havi samtempe leg-, skrib- kaj aplik-permeson.
Krome devas ekzisti stako-memoro (kun profundo de minimume 20
adresoj por subprogramaj saltoj). La stako ne bezonas esti ligata
la la æefmemoro de la komputilo.
La procesilo devas havi minimume unu 8-bitan æefregistron (akuon) kaj
1-bitaj registojn por la nul- kaj la transigo-statoj.
Laý la suba priskribo, E povas funkcii jam per æiu 8-bita mikroregilo
kun minimume 4K øis per la plej granda komputilego.
Kaýze de la facila portebleco de E, oni povas generi æiu-ajn kodon,
kiu eblas funkcii sur æiu-ajn regilo kaj komputilo.
Minimuma vorttrezoro ( D . K )
D Komenco de la difino de nova vorto
. Fino de difino de nova vorto.
Ekzemplo: D 'vortonomo' 176 69 180 14 205 16 203 .
'vortonomo' Alvokas la kodon de la vorto 'vortonomo'.
'nombro' Nombroj estas ekz. 0, 1, 2, 63245, 9999 .
Nombrojn oni nur povas kompili (1 aý 2 bajtoj).
Ili ne povas esti aplikataj kiel programo, escepte
ke la nombro estas difinita kiel vortonomo.
K La kodo post la vorto K difinas la sintenon de la
vorto dum la kompilado. Kiam oni ne uzas la vorton K,
tiam la vorto estas kompilita kiel subprogramo.
ekzemploj:
ekzemplo 1: D eligu-E A= 69 EL RE .
D eligu eligu-E RE .
dum la difinado sur la ekrano: nenio
alvoko de vorto: eligu sur la ekrano: E
eligu-E estas kompilita kiel subprogramo!
ekzemplo 2: D eligu-E RE K A= 69 EL RE .
D eligu eligu-E RE .
dum la difinado sur la ekrano: E
alvoko de vorto: eligu sur la ekrano: nenio
Dum la difino de la vorto eligu aperas E sur la
ekrano, æar tio estas la kompilokodo de la vorto
eligu-E. Nur la vorto RE estas kompilita en la
memoron kaj funkcias en la posta difino de "eligu"
****************************************************
* La øenerala strukturo de vortodifino en E estas: *
* *
* D vortonomo [aplikokodo] [K] [kompiladokodo] . *
* [] = ne nepre bezonata *
****************************************************
Dosieroj
ENHAVO ENHAVO listigas la unuan linion de æiu spuro de la
disketo (dura disko). La listigo finiøas kiam oni
tajpas grandliteran E.
EN-D Enigas blokon de 4096 bajtoj de magnet-diska memoro
al certa adreso de la memoro.
ekz.: EN-D 48 3 1 128 (memorloko, spuro, kapo, drajvo)
enigas ek de la adreso 48 * 256 = 12288 4096 bajtojn
de la spuro 3 per la kapo 1 de la unua dura disko.
numeroj de drajvoj 0 = disketilo A:
1 = disketilo B:
128 = dura disko C:
129 = dura disko D:
EL-D Eligas blokon de 4096 bajtoj de la æefmemoro sur spuro
de la magneta disko.
!!! Averto - La ordono EL-D povas detrui la enhavon de
la disko, kiam oni aplikas øin senpripensante !!!
Fontotekstoj
KOMPILU KOMPILU kompilas fontotekston, kiu troviøas en la
(segmento de la) æefmemoro je la adreso 0.
Rimarko: E troviøas en la æefmemoro æiam en segmento
2005 heksadecimale = 8197 decimale.
FERMU Markigas la finon de la teksto.
EDIT EDIT estas malgranda tekstoprilabora programo
( nur æirkaý 300 bajtojn granda).
Tajpante EDIT + enigoklavo kaj poste spacetoklavo
la teksto ek de la adreso 0 estas montrata linio post
linio. Tajpado de grandlitera F finas la programon.
Tio estas la tekstomontra moduso.
Ek de la tekstomontra moduso oni iras per premado de
la enigo-klavo al la skribomoduso.
Nun oni povas skribi tekston kaj korekti unu linion
per uzo de la repaþoklavo.
Kiam oni pemas denove la enigoklavon oni forlasas la
skribomoduson kaj reiras al la tekstomontra moduso.
Do - por skribi plurajn liniojn de teksto, oni devas
æiam dufoje premi la enigoklavon.
Etikedoj
LOKO LOKO markigas lokon en la memoro. Eblas difini 128
de tiuj etikedoj - LOKO 0 øis LOKO 127 .
ADR ADR estas montrilo al loko en la memoro. Alivorte
ADR estas adreso (16 bita) kiu montras la loko
difinita per LOKO.
Ekz.: ADR 32 montras al la loko LOKO 32 .
MADR Kiam je la loko LOKO 32 estas la adreso
1025 = 4*256 + 1 MADR 32 montras al la malaltvalora
bajto do al la adreso, kiu enhavas la bajton 1 .
AADR Same AADR 32 montras la la altvalora bajto de tiu
adreso kiu enhavas la bajton 4.
Generado de kodo øenerale
M=2 Sekvantaj nombroj estas kompilitaj kiel 2 bajtoj.
Ekz.: 16B 230 estas kompilita kiel 0 230 (ne nur 230!)
M=1 Sekvantaj nombroj estas kompilitaj kiel 1 bajto.
Ekz.: 8B 230 estas kompilita kiel 230 (ne 0 230!)
BF<- La kompililo daýrigas la kompiladon je la adreso kiu
sekvas la ordonon BF<- .
Ekz.: BF<- 30000 aý BF<- ADR 123
Generado de kodo (ordonoj dependaj de la procesilo)
A= La sekva numero estas enigata en la akumulatoran
registron (AL-registro kiam temas pri 8086-procesilo)
Ekz.: A= 123
A<- La sekva numero estas la adreso, kies enhavo estas
portata al A-registro
Ekz.: La enhavo de la adreso 12345 estu 65
A<- 12345
En la A-registro estas nun 65
A-> La enhavo de la A-registro estas transportata al la
adreso, kiu sekvas la ordonon
Ekz.: La enhavo de la A-registro estu 65
A-> 12345
La enhavo de la adreso 12345 estas nun 65
A+ La sekva nombro plus la transigobito estas adiciitaj
al la A-registro. Kiam la rezulto estas pli granda ol
255 la transigo farigas 1 alikaze la transigo estas 0.
La rezulto restas en la A-registro.
Ekz.: Estu T = 0 A-registro = 65
A+ 200
A-registro = 265-256 = 9 T = 1
A- La sekva nombro kaj la transigo estas subtrahitaj de
la A-registro. Kiam la rezulto estas negativa, la
transigo estas 1 alikaze øi estas 0 .
Ekz.: Estu T = 0 A-registro = 65
A- 10
A-registro = 55 T = 0
IRU La programo saltas al la memorloko, kies adreso estas
la numero, kiu sekvas la ordonon.
Ekz.: IRU 12345 aý IRU ADR 32
IR0 La programo saltas al la adreso, kiu sekvas la ordonon,
kiam antaýa kalkulo donis nulo kiel rezulto. Alikaze
la programo normale daýrigas per la sekva instrukcio.
IRT La programo saltas al la adreso, kiu sekvas la ordonon,
kiam la transigobito estas 1, alikaze la programo
aplikas la sekvan instrukcion.
IRS La programo saltas al subprogramo, kies adreso estas
la sekvanta nombro.
RE La programo reiras de subprogramo al la antaýa
programoparto.
Generado de kodo ( ordonoj dependaj de la mastruma sistemo )
EN EN prenas unu signon de la standarda enigaparato
(normale de la klavaro). Kiam neniu signo estas
(kiam oni ne premis sur la klavaro) la A-registro
ricevas la valoron nulo. Alikaze la A-registro
enhavas la valoron de la ASCII-kodo de la signo.
EL La enhavo de la A-registro estas eligata al la
standarda eligaparato (kutime la ekrano).
Øi estas eligata laý la tiel nomata telegram-moduso,
tio estas ke la ASCII-kodoj 7,8,10 kaj 13 estas
aplikataj.
Aliaj ordonoj
LISTU LISTU listas æiujn vortojn de la vortaro.
FORGESU La kompililo forviþas æiujn vortojn inklusive la
alvokita vorto.
Ekz.: FORGESU K forgesigas æiujn vortojn tiel, ke
restos nu la vortoj D, . kaj LISTU.
Sen tiuj vortoj la kompililo ne plu funkcias!
( Komentoj troviøas inter krampoj. La teksto inter la
(-signo kaj la )-signo estas ignorata, tio signifas
nek estas kompilata nek aplikata.
Ordonoj por la demonstra moduso
INFO Spuro 1 de la diskedo estas enigata al la memorbloko
48 ( =48*256 = 12288) kaj la fontoteksto estas
prilaborata. Funkcias tiel ke la fontoteksto estas
kvazaý aýtomate entajpata enskribante øin en la
tekstobufron de la komputilo.
Premo sur la paýzo-klavo haltas la tajpadon.
INIT Tiu vorto remetas la tekstomontrilon al la komenco de
la memorbloko 48.
EIN EIN enþaltas la demo-moduson.
AUS FINAS la demo-moduson.
Analizo de la memoro
DEKOMP DEKOMP listas la kompilitajn nombrojn de la memoro
Du alvokoj de DEKOMP eblas.
Ekz. 1: DEKOMP 12345 listas la enhavon de la memoro
ek de la adreso 12345
Ekz. 2: DEKOMP "nomo_de_la_vorto" listigas la enhavon
de la memoro ek de la "nomo_de_la_vorto"
Dum æiu klavopremo 10 bajtoj estas montritaj.
La programo finas post enigo de grandlitera E.
DEC La decimala sistemo estas uzata por nombroj.
Tio estas la normala nombrosistemo uzata de E.
Ciferoj: 0 1 2 3 4 5 6 7 8 9
HEX La heksadecimala sistemo estas uzata.
Ciferoj: 0 1 2 3 4 5 6 7 8 9 A B C D E F
BIN La binara sistemo estas uzata.
Ciferoj: 0 1
OKT La oktala sistemo estas uzata.
Ciferoj: 0 1 2 3 4 5 6 7