Darbas su tekstu
Download
1 / 26

Darbas su tekstu - PowerPoint PPT Presentation


  • 102 Views
  • Uploaded on

Darbas su tekstu. Informatikos katedra, L.Kaklauskas 2002 metai. Video režimo nustatymas(BIOS). Komanda: INT 10h Įrašymas: AH = 0 0 h A L = video režimo numeris 7 jaunesni baitai, o vyriausias 1 – ekranas nevalomas, 0 – nuvalomas. AL reikšmės: 01h – 16 spalvų 40X25,

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Darbas su tekstu' - kesia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Darbas su tekstu
Darbas su tekstu

Informatikos katedra, L.Kaklauskas

2002 metai


Video re imo nustatymas bios
Video režimo nustatymas(BIOS)

Komanda: INT 10h

Įrašymas: AH = 00h

AL =video režimo numeris 7 jaunesni baitai, o vyriausias 1 – ekranas nevalomas, 0 – nuvalomas.

AL reikšmės:

01h – 16 spalvų 40X25,

02h ir 03h – 16 spalvų 80X25,

07h – nespalvotas 80X25.

Yra ir daugiau, bet jie priklauso nuo konkrečios vaizdo plokštės.


Ymeklio pozicija bios
Žymeklio pozicija (BIOS)

Komanda: INT 10h

Įrašymas: AH = 02h

BH = puslapio numeris,

DH = eilutė,

DL = stulpelis.

Stulpeliai ir eilutės skaičiuojami nuo kairiojo viršutinio ekrano kampo, pradinė koordinatė (0, 0).

Video režimai 2 ir 3 gali naudoti nuo 0 iki 3 puslapių, o 0 ir 1 naudoja nuo 0 iki 7 puslapio. Juos naudojant galima tekstą spausdinti neaktyviame puslapyje, o po to akimirksniu persijungti.


Skaityti ymeklio pad ti ekrane bios
Skaityti žymeklio padėti ekrane (BIOS)

Komanda: INT 10h

Įrašymas: AH = 03h

BH = puslapio numeris,

DH = eilutė,

DL = stulpelis,

CH = pirmoji žymeklio pozicija,

CL = paskutinioji žymeklio pozicija,


Simboli spausdinimas ekrane bios
Simbolių spausdinimas ekrane (BIOS)

Kiekvienas simbolis ekrane aprašomas dviem baitais:

Pirmas baitas ASCII kodas, antras – atributai

Atributo baito reikšmės:

7 bitas – 1 reiškia, kad simbolis mirksi arba fonas pavaizduojamas ryškesne spalva,

6-4 bitai – fono spalva,

3 bitas – 1 reiškia simbolis ryškio spalvos arba fonas mirksi,

2-0 bitai – simbolio spalva.


Skaityti simbol ymeklio pozicijoje bios
Skaityti simbolį žymeklio pozicijoje (BIOS)

Komanda: INT 10h

Įrašymas: AH = 08h

BH = puslapio numeris,

Duomenys AH = simbolio atributas,

AL = simbolio ASCII kodas,


Spausdinti simbol ymeklio pozicijoje bios
Spausdinti simbolį žymeklio pozicijoje (BIOS)

Komanda: INT 10h

Įrašymas: AH = 09h

BH = puslapio numeris,

AL = simbolio ASCII kodas,

BL = simbolio atributas,

CX = simbolio kartojimo skaičius.

CX neturi viršyti simbolių kiekio, likusio iki ekrano pabaigos.

Spausdina simbolį su einamuoju atributu.

Komanda: INT 10h

Įrašymas: AH = 0Ah

BH = puslapio numeris,

AL = simbolio ASCII kodas,

CX = simbolio kartojimo skaičius


Spausdinti simbol teletaipo re imu bios
Spausdinti simbolį teletaipo režimu (BIOS)

Komanda: INT 10h

Įrašymas: AH = 0Eh

BH = puslapio numeris,

AL = simbolio ASCII kodas,

Jei ekrane netelpa tekstas, tai jis prasukamas žemyn. Interpretuoja valdančiuosius kodus CR(0Dh), LF(0Ah), BEL(7).


Spausdina eilut su nurodytais atributais bios
Spausdina eilutę su nurodytais atributais (BIOS)

Komanda: INT 10h

Įrašymas: AH = 13h

AL = režimas: 0 bitas – žymeklis į eilutės pabaigą atspausdinus tekstą, 1 bitas – eilutė turi ir simbolius ir atributus, t.y. simbolis parašomas 2 baitais, 2-7 bitai rezervuoti.

CX = eilutės ilgis,

BL = atributas, jei eilutė turi tik simbolius,

DH, DL = spausdinimo pradžios eilutė ir stulpelis,

ES:BP = eilutės pradžios atmintyje adresas.

Interpretuoja valdančiuosius kodus CR(0Dh), LF(0Ah), BS(08), BEL(7).


Skaito simboli eilut bufer dos
Skaito simbolių eilutę į buferį (DOS)

Komanda: INT 21h

Įrašymas: AH = 0Ah

DS:DX = buferio(atminties) adresas.

Pirmas buferio baitas turi skaičių, nusakantį simbolių kiekį(1-254). Jei nurodytas turinys, tai jis gali būti panaudotas kaip sufleris.

Renkant tekstą, kaip ir DOS-e galioja tos pačios valdymo taisyklės.

Paspaudus ENTER eilutė įrašoma į buferį(atmintį) pradedant trečiuoju baitu, antrame įrašomas realiai surinktos eilutės ilgis, neskaitant ENTER.


Skaito simbol dos
Skaito simbolį (DOS)

Komanda: INT 21h

Įrašymas: AH = 01h

Reikšmė AL = simbolio ASCII kodas arba 0.

Įvedant duomenis su šia funkcija spausdinama reikšmė kartojama ekrane.

Galima nutraukti su CTRL+BREAK arba CTRL+C, jei nuspaustas ne simbolis reikšmė 0.

Komanda: INT 21h

Įrašymas: AH = 08h

Reikšmė AL = simbolio ASCII kodas arba 0.

Įvedant duomenis su šia funkcija reikšmė ekrane nekartojama.

Galima nutraukti su CTRL+BREAK arba CTRL+C, jei nuspaustas ne simbolis reikšmė 0.


Skaito simbol dos1
Skaito simbolį (DOS)

Komanda: INT 21h

Įrašymas: AH = 07h

Reikšmė AL = simbolio ASCII kodas arba 0.

Įvedant duomenis su šia funkcija reikšmė ekrane nekartojama.

Laukia klavišo paspaudimo, bet negalima nutraukti su CTRL+BREAK.

Komanda: INT 21h

Įrašymas: AH = 06h,

DL = 0FFh.

Reikšmė ZF = 1, jei nebuvo paspaustas simbolio klavišas ir AL = 0,

ZF = 0, jei buvo paspaustas simbolio klavišas ir AL = simbolio kodas,


K l aviat ros b sena dos
Klaviatūros būsena(DOS)

Komanda: INT 21h

Įrašymas: AH = 0Bh

Reikšmė AL = 0, jei nepaspaustas klavišas,

AL = 0FFh, jei paspaustas klavišas.

Patogu naudoti prieš 01, 07 ir 08 funkcijas.

Komanda: INT 21h

Įrašymas: AH = 0Ch,

AL = 01, 06, 07, 08, 0Ah funkcijų numeriai.

Reikšmė priklauso nuo pasirinktos funkcijos.

Naudojama tam, kad funkcijos neperimtų anksčiau paspausto klavišo kodo.


Skaito simbol bios
Skaito simbolį (BIOS)

Komanda: INT 16h

Įrašymas: AH = 00h(83/84 klavišų), 10h(101/102 klavišų), 20h(122 klavišų)

Reikšmė AL = klavišo ASCII kodas, 0 arba prefiksas,

AH = prefiksas arba praplėstas ASCII kodas.

Komanda: INT 16h

Įrašymas: AH = 01h(83/84 klavišų), 11h(101/102 klavišų), 21h(122 klavišų)

Reikšmė ZF = 1, jei buferis tuščias,

ZF = 0, jei yra simbolis:

AL = klavišo ASCII kodas, 0 arba prefiksas,

AH = prefiksas arba praplėstas ASCII kodas.


Perkelia klaviat ros bufer bios
Perkelia į klaviatūros buferį (BIOS)

Komanda: INT 16h

Įrašymas: AH = 05h

CH = prefiksas,

CL = ASCII kodas.

Reikšmė AL = 00 jei operacija sėkminga,

AL = 01, jei klaviatūros buferis perpildytas.


Tikrina klaviat ros b sen bios
Tikrina klaviatūros būseną (BIOS)

Komanda: INT 16h

Įrašymas: AH = 02h(83/84 klavišų), 12h(101/102 klavišų), 22h(122 klavišų)

Reikšmė AL = 00 jei operacija sėkminga,

AL = klaviatūros būsenos baitas 1,

AL = klaviatūros būsenos baitas 2(12h ir 22h).

Būsenos baitas yra kompiuterio atmintyje adresu: 0000h:0417h arba 0040h:0017h:

7 bitas INS įjungta,

6 bitas CAPSLOCK įjungta,

5 bitas NUMLOCK įjungta,

4 bitas SCROLLLOCK įjungta,

3 bitas ALT nuspaustas(dažnai galioja tik kairiajam),

2 bitas CTRL nuspaustas,

1 bitas kairysis SHIFT nuspaustas,

0 bitas dešinysis SHIFT nuspaustas,


Tikrina klaviat ros b sen bios1
Tikrina klaviatūros būseną (BIOS)

Būsenos baitas 2 atveju yra kompiuterio atmintyje adresu: 0000h:0418h arba 0040h:0018h:

7 bitas SYSRG įjungta,

6 bitas CAPSLOCK įjungta,

5 bitas NUMLOCK įjungta,

4 bitas SCROLLLOCK įjungta,

3 bitas dešinysis ALT nuspaustas,

2 bitas dešinysis CTRL nuspaustas,

1 bitas kairysis ALT nuspaustas,

0 bitas dešinysis CTRL nuspaustas.


S lygin s komandos
Sąlyginės komandos

Jccžymė – perėjimas turi būti ne didesnis nei 128 baitų

Komandos variantai


S lygin s komandos1
Sąlyginės komandos

Loopžymė – vykdo ciklą, dažniausiai o sąlygos patikrinimo.

Testgav, sal - atlieka gav ir sal loginę sumą ir nustato SF, ZF ir PF požymius


S lyginis per jimas
Sąlyginis perėjimas

Cmp sal1, sal2 – tikrinama sąlyga

Jcc zym1 –perėjimas į zym1, atsižvelgiant į Cmp rezultatą

… – komandos, jei netenkinama Jcc sąlyga

Jmp zym2 –besąlyginis perėjimas į zym2

Zym1: … – komandos, jei tenkinama Jcc sąlyga

Zym2: … – programos tęsinys


S lyginis per jimas1
Sąlyginis perėjimas

.model tiny

.code

org 100h

start:

mov al, 00h

mov ah, 01h

int 21h

cmp al, 53

jle pirmas

mov dx, offset daugiau

mov ah, 9

int 21h

jmp viskas

pirmas:

mov dx, offset maziau

mov ah, 9

int 21h

viskas: ret

maziau db ' - kodas mazesnis uz skaiciaus 5 arba jam lygus',0dh,0ah,'$'

daugiau db ' - kodas didesnis uz skaiciaus 5',0dh,0ah,'$'

end start


Ciklas

mov reg, pab_sk – į reg perkeliamas ciklo kartojimų

Cikpr:

Dec reg – programos tęsinys

Jnz Cikpr – jei reg nelygus 0, tai pereiti į Cikpr

… – ciklas baigtas

… – programos tęsinys

Gali būti sukurti ir kitokie programos atkarpos kartojimo būdai, panaudojant komandą Cmp, Int ir pan.

Ciklas


Pavyzdys
Pavyzdys

.model tiny

.code

org 100h

Start: mov cx, 256

mov dl, 0

mov ah, 2

Ciklas: int 21h

inc dl

test dl, 0fh

jnz tesk_cikla

push dx

mov dl, 0dh

int 21h

mov dl, 0ah

int 21h

pop dx

Tesk_cikla:

loop ciklas

ret

end start


Ciklas1

.model tiny

.code

org 100h

start:

mov dx, offset koment

mov ah, 9

int 21h - komentaras ekrane

mov al, 00h

mov ah, 01h

int 21h - laukia kol įrašysiu simbolį

mov dx, 0 - spausdinsime simbolius nuo kairiojo viršutinio ekrano kampo

mov si, 10 - kartosime 10 kartų ciklą

ciklas:

mov ah, 02h

int 10h - perkelia žymeklį į nurodytą poziciją

mov ah, 09h

mov bl, 10101101b

mov cx, 15

push dx - išsaugome žymeklio poziciją

int 10h - spausdina 15 simbolių eilutę

pop dx - atstatome žymeklio pozicijos reikšmę

inc dh - sekanti eilutė

dec si - mažinama ciklo skaitliuko reikšmė

jnz ciklas - jei ne nulis tęsti

ret

koment db 'Rasykite simboliir po 15 simboliu pakartosiu 10 eiluciu',0dh,0ah,'$'

end start

Ciklas


.model tiny - spausdina ASCII kodų lentelę eilutėje po 16 simbolių

.code

org 100h

start:

mov ax, 0003h

int 10h - nustatomas 3 video režimas ir valomas ekranas, žymeklis į 0,0 poziciją

mov dx, 0- dh ir dl saugos žymeklio poziciją

mov si, 256- ciklas vykdomas 256 kartų ir si registras - skaitliukas

mov al, 0

mov ah, 9

mov cx,1 - spausdinsime tik 1 simbolį

mov bl, 00011111b - simbolis spausdinamas baltas mėlyname fone

ciklas:

int 10h - spausdinamas simbolis

push ax - išsaugosime registro ax reikšmę

mov ah, 2

inc dl - sekantis stulpelis

int 10h - perkeliame žymeklį

mov ax, 0920h - spausdinamas tarpas al=20h ir funkcijos kodas ah=09

int 10h - spausdinsime tarpą

mov ah, 2 - funkcijos numeris 2

inc dl - sekantis stulpelis

int 10h - perkeliame žymeklį

pop ax - gražiname ax

inc al - sekantis ASCII simbolis

test al, 0fh - tikriname ar al nėra 16

jnz tesk_cikla - jei taip tęsiame ciklą

push ax - jei ne saugome ax

mov ah, 2 - video funkcijos numeris

inc dh - sekanti eilutė

mov dl, 0 - žymeklis į eilutės pradžią

int 10h - perkeliame žymeklį

pop ax - gražiname reikšmę

tesk_cikla:

dec si - mažiname skaitliuko reikšmę

jnz ciklas - jei ne 0, tai tęsiame ciklą

ret

end start



ad