.


:




:

































 

 

 

 


8 I:




__________

 

: ,

.

 

 

________________________________________________________________

 

,

o ( )

.

. c

,

, . ,

, ASCII

.

INT ().

(

) .

.

INT 10H,

BIOS.

INT 21H,

DOS. ,

,

Return. p DOS INT 21H

BIOS.

(-, BW),

. . 9 10

.

 

 

: INT

________________________________________________________________

 

INT , DOS

BIOS

.

.

INT

:

 

- 2

;

- TF IF;

- 2

CS ;

- 2

;

- ;

-

, INT.

 

.

.

: BIOS INT 10H

DOS INT 21H .

INT 10H

INT 21H.

 

 

________________________________________________________________

 

.

, , 25 ( 0 24) 80

( 0 79).

:

 

________________________________________________________

. .

______________ ______________

________________________________________________________

00 00 00 00

00 79 00 4F

12 39/40 00 27/28

24 00 18 00

24 79 18 4F

________________________________________________________

 

INT 10H

. 5-

12- :

 

MOV AH,02;

MOV BH,00; 0

MOV DH,05; 05

MOV DL,12; 12

INT 10H; BIOS

 

02 AH INT 10H

. DX,

( ) BH ( 0).

.

MOV c . :

 

MOV DX,050CH; 5, 12

 

 

________________________________________________________________

 

("")

. c ,

.

.

DX, 07 -

BH 0600H AX.

:

 

MOV AX,0600H;AH 06 ()

;AL 00 ( )

MOV BH,07; (/)

MOV CX,0000;

MOV DX,184FH;

INT 10H; BIOS

 

06 AH INT 10H

. ;

() .

, . 184F,

. -

,

.

 

 

: DOS

________________________________________________________________

 

,

. ,

DOS, p ,

DOS 2.0. DOS

, DOS

. DOS

, ,

.

 

 

: DOS

________________________________________________________________

 

DOS

, AH 09 (

DOS) DOS INT 21H.

o ($),

:

 

NAMPRMP DB ' ?','$'

.

.

MOV AH,09;

LEA DX,NAMPRMP; .

INT 21H; DOS

 

"$" c

( ), : ' ?$',

DB '$'. ,

"$". ,

,

, "$" .

LEA NAMPRMP DX

DOS . NAMPRMP, DX

LEA, o,

DOS DS DX (DS:DX).

 

 

: ASCII

________________________________________________________________

 

256 ASCII ,

. . 00 FF

, ASCII

. 20.

.8.1 COM-,

ASCII. ; B10CLR,

C10SET D10DISP. B10CLR , C10SET

00,00. D10DISP

CTR, 00

y 1 ,

. FF.

 

__________

 

page 60,132

TITLE ALLASC (COM) ASCII- 00-FF

CODESC SEGMENT PARA 'Code'

ASSUME CS:CODESG,DS:CODESG,SS:CODESG,ES:NOTHING

ORG 100H

BEGIN: JMP SHORT MAIN

CTR DB 00,'S'

 

; :

; ------------------

MAIN PROC NEAR

CALL B10CDR;

CALL C10SET;

CALL D10DISP;

RET

MAIN ENDP

; :

; --------------

B10CLR PROC

MOV AX,0600H

MOV BH,07

MOV CX,0000;

MOV DX,184FH;

INT 10H

RET

B10CLR ENDP

; 00,00:

; -------------------------

C10SET PROC

MOV AN,02

MOV BN,00

MOV DX,0000

INT 10H

RET

C10SET ENDP

; ASCII :

; -----------------------------

D10DISP PROC

MOV CX,256;256

LEA DX,CTR;

D20

MOV AH,09;

INT 21H

INC CTR;

LOOP D20; CX,

; ,

RET;

D10DISP ENDP

 

CODESG ENDS

END BEGIN

__________

 

.8.1. ASCII

 

 

.08 .0D c,

. :

(.8.1), ,

COM-. , ,

:ASCII.COM.

(.00),

" " (.01 02) (.03,

04 05). 07 . 06

"", .08 0D

. 0D " "

(). .0E - .

.7F .

.

,

.08 0D. , o , ,

.08 ( ) 0D ( ):

 

CMP CTR,08H; 08?

JB D30; -

CMP CTR,0DH; / 0D?

JBE D40; -

D30:

MOV AH,40H; < 08

...; > 0D

INT 21H

D40:

INC CTR

 

 

: DOS

________________________________________________________________

 

, .

, DOS, c

, ,

INT. -,

. ,

; ,

. -,

,

.

,

. LABEL BYTE.

.

, - .FF 255.

DOS

. ,

.

 

NAMEPAR LABEL BYTE; :

MAXLEN DB 20;

ACTLEN DB?;

NAMEFLD DB 20 DUP (' ');

 

LABEL ,

NAMEPAR MAXLEN a .

MASM

STRUC. , ,

, , ,

c .24 " ".

AH -

10 (. 0AH), (NAMEPAR

) DX INT 21H:

 

MOV AH,0AH;

LEA DX,NAMEPAR;

INT 21H; DOS

 

INT ,

, c

, (20

). Return.

(. 0D) (NAMEFLD

). , , BROWN (Return), c

:

 

.: |20| 5| | R| O| W| N| #| | | | |...

.: |14|05|42|52|4F|57|4E|0D|20|20|20|20|...

 

(ACTLEN )

- 05. Return

NAMEFLD +5. # ,

. 0D . 20

.0D,

19 .

 

 

:

________________________________________________________________

 

EXE-, . 8.2, ,

.

,

Return . ,

TED SMITH:

 

1. 09 2 4,

2. 40, 36

 

SHR E10CENT 09 o ,

2. 00001001

00000100. NEG +4 -4. ADD

40, DL - 36.

12 36

:

 

12: TED SMITH

| |

: 36 40

 

E10CODE , c

(07) :

 

MOV NAMEFLD[BX],07

 

BX ,

MOV , BX NAMEFLD,

07. , 05 07

NAMEFLD+05 ( Return).

E10CODE "$" 07.

, F10CENT , p

.

 

__________

 

page 60,132

TITLE CTRNAME (EXE)

;--------------------------------------------------------

STSCKSG SEGMENT PARA STACK 'Stack'

DW 32 DUP(?)

STACKSG ENDS

;--------------------------------------------------------

DATASG SEGMENT PARA 'Data'

NAMEPAR LABEL BYTE; :

MAXNLEN DB 20; .

NAMELEN DB?;

NAMEFLD DB 20 DUP(' '),'$';

PRIMPT DB 'Name? ', '$'

DATASG ENDS

;--------------------------------------------------------

CODESG SEGMENT PARA 'Code"

BEGIN PROC FAR

ASSUME CS:CODESG,DS:DATASG,SS:STACKSG,ES:DATASC

PUSH DS

SUB AX,AX

PUCH AX

MOV AX,DATASC

MOV DS,AX

MOV ES,AX

CALL Q10CLR;

A20LOOP:

MOV DX,0000; 00,00

CALL Q20CURS

CALL B10PRMP;

CALL D10INPT;

CALL Q10CLR;

CMP NAMELEN,00; ?

JE A30; -

CALL E10CODE;

; '$'

CALL F10CENT;

JMP A20LOOP

A30:

RET; DOS

BEGIN ENDP

; :

; --------------------

B10PRMP PROC NEAR

MUV AN,09;

LEA DX,PROMPT

INT 21H

RET

B10PRMP ENDP

; :

; -----------------------

D10INPT PROC NEAR

MOV AN,0AN;

LEA DX,NAMEPAR

INT 21H

RET

D10INPT ENDP

; '$':

; ------------------------------------

E10CODE PROC NEAR

MOV BN,00; Return (0D)

MOV BL,NAMELEN; . (07)

MOV NAMEFLD[BX],07

MOV NAMEFLD[BX+1],'$';

RET

E10CODE ENDP

; :

; ------------------------------------

F10CENT PROC NEAR

MOV DL,NAMELEN; :

SHR DL,1; 2,

NEG DL; ,

ADD DL,40; 40

MOV DH,12;

CALL Q20CURS;

MOV AN,09

LEA DX,NAMEFLD;

INT 21H

RET

F10CENT ENDP

; :

; --------------

Q10CLR PROC NEAR

MOV AX,0600H;

MOV BH,30; (07 /)

MOV CX,0000; 00,00

MOV DX,184FH; 24,79

INT 10H; BIOS

RET

Q10CLR

; (/):

; ----------------------------------

Q20CURS PROC NEAR;DX

MOV AH,02;

MOV BH,00; #0

INT 10H; BIOS

RET

Q20CURS ENDP

 

CODESG ENDS

END BEGIN

__________

 

.8.2. .

 

 

Return

-----------------------------------

, ,

, o

Return. ,

Return, y

:

 

(.): |14|00|0D|...

 

Return . p

.

 

 

Return

-----------------------

,

: , , .

, , Return (.0D)

NAMEFLD (.20). NAMELEN

c 0D. , ,

NAMELEN 05, 0D NAMEFLD+5.

BX NAMEFLD:

 

MOV BH,00; BX

MOV BL,NAMELEN; 0005

MOV NAMEFLD[BX],20H; 0D

 

MOV (.20) ,

o : NAMEFLD

BX, .. NAMEFLD+5.

 

 

-----------------------

, .

:

 

NAMEPAR (.)

 

1. BROWN |14|05|42|52|4F|57|4E|0D|20|20|20|... |20|

2. HAMILTON |14|08|48|41|4D|49|4C|54|4F|4E|0D|... |20|

3. ADAMS |14|05|41|44|41|4D|53|0D|4F|4E|0D|... |20|

 

HAMILTON BROWN. , ADAMS

HAMILTON, HAMIL. Return

T. - ON o ADAMS.

NAMEFLD :

 

MOV CX,20; 20

MOV SI,0000;

B30:

MOV NAMEFLD[si],20H;

INC SI;

LOOP B30;20

 

SI DI BX.

, ,

. , NAMEFLD

DB (),

, WORD, a

PTR (), :

 

MOV CX,10; 10

LEA SI,NAMEFLD;

B30:

MOV WORD PTR[SI],2020H;

INC SI;

INC SI;

LOOP B30;10

 

MOV B30

, SI. p

LEA SI

MOV 30, , ,

:

 

MOV WORD PTR[NAMEFLD],2020H;

 

,

. c

,

.

 

 

: DOS

________________________________________________________________

 

, DOS 2.0

( UNIX).

DOS,

. (file handle),

y BX,

/. :

 

0 ( ) CON

1 ( ) CON

2 ( ) CON

3 / AUX

4 LPT1 PRN

 

DOS / - INT 21H,

AH: .3F - , .40 - .

CX /, DX -

/.

/

(CF) AX

, . o

CF, ( 6) AX.

AX , ,

- CF,

- .

o ,

o / .

-

, p.

 

 

: DOS

________________________________________________________________

 

DOS:

 

DISAREA DB 20 DUP(' ');

...

MOV AH,40H;

MOV BX,01;

MOV CX,20;

LEA DX,DISAREA;

INT 21H; DOS

 

LEA DX DISAREA DOS

, .

( ), AX

.

, y .

CF ( 6) AX.

AX , ,

- CF.

 

 

:

----------------------------

DEBUG

. DEBUG A

100 ( ) p 100.

, DEBUG ,

:

 

100 MOV AH,40

102 MOV BX,01

105 MOV CX, ( )

108 MOV DX,10E

10B INT 21

10D RET

10E DB ' '

 

AH

. 10F DX - DB,

.

, Return.

U (U 100,10D) .

R T .

INT 21H BIOS,

10B GO (G 10D) RET.

. Q DOS.

 

 

: DOS

________________________________________________________________

 

,

DOS:

 

INAREA DB 20 DUP (' ');

MOV AH,3FH;

MOV BX,00;

MOV CX,20;

LEA DX,INAREA;

INT 21H; DOS

 

LEA INAREA DX.

INT , c ,

CX (20 ). Return ( .

0D) . , "PC Users

Group" INAREA :

 

PC Users Group, .0D, .0A

 

(.0D), , (.0A),

.

p

. c ,

.

CF (

) AX ,

. 14 2

, .. 16.

.

YES NO,

p , , , .

,

. CF AX

(6 ). AX

, ,

- CF.

, ,

y CX, .

, CX 08, "PC

Exchange". "PC Excha"

. AX

08. INT

, ,

. ,

"ng", , AX

05.

CF .

 

INT: PC Excha AX = 08

INT: ng,0D,0A AX = 05

 

, )

AX , CX )

AX CX , - 0D

0A.

DOS 0AH

.

.

 

 

:

-------------------------

c

DEBUG.

12 , .

DEBUG A 100

, c 100. , DEBUG

, .

 

100 MOV AH,3F

102 MOV BX,00

105 MOV CX,0C

108 MOV DX,10F

10B INT 21

10D JMP 100

10F DB ' '

 

AH BX c

, CX

DX 10F - DB .

.

, Return.

U 100,108 .

R T MOV.

10B, G 10D INT

( BIOS ). ,

Return. AX,

CF D 10F, .

Q.

 

 

,

________________________________________________________________

 

-

,

:

 

ASCII

 

CR 13 0DH

LF 10 0AH

TAB 09 09H

 

-

, DOS. :

 

MESSAGE DB 09,'PC Users Group Annual Report',13,10

MOV AH,40H;

MOV BX,01;

MOV CX,31;

LEA DX,MESSAGE;

INT 21H; DOS

 

EQU

:

 

CR EQU 13; EQU 0DH

LF EQU 10; EQU 0AH

TAB EQU 09; EQU 09H

MESSAGE DB TAB, 'PC Users Group Annual' DB 'Report', CR, LF

 

 

________________________________________________________________

 

- INT 10 BIOS

. INT 21H DOS

-.

 

- ,

INT 21 INT 21H - .

 

- A, BX, CX

DX -.

 

- INT 21H DOS

- ($) .

- -.

.

 

- DOS

. INT 21H ,

,

.

 

- DOS

A 40, BX -

01.

 

- DOS

3FH, BX -

00.

. ,

.

 

 

________________________________________________________________

 

8.1.

2540?

 

8.2. :

12, 8.

 

8.3. , 0- 12-

79- 22- .

 

8.4.

' (//)'.

. : ) DOS, )

DOS .

 

8.5.

8.4. : )

DOS, ) DOS .

 

8.6. ,

.

 

8.7. .8.2

, , : )

12 15; )

0 15.

 

8.8. .8.2

DOS. , .

 

 

9 II:

__________

 

: ,

, , ,

- .

 

 

________________________________________________________________

 

.8

.

,

- , , .

( BIOS 10) ,

, .

c-

.

 

 

---------------------

4,

. B0000 ( ).

:

 

- 2 (25 80 );

- 2 -, ,

, .

 

 

/

-----------------------------

16

( ), .B8000.

( ASCII-)

, - (BW) .

p , 0 3

80 c 0 7 40 .

- 0.

.

 

 

________________________________________________________________

 

, ,

( )

. - 8 :

 

 

: BL R G B I R G B

: 7 6 5 4 3 2 1 0

 

RGB , (red),

(green) (blue) . 7 (BL)

, 3 (I) - .

,

- (BW).

o:

 

RGB RGB

( ) 000 000

( ) 000 001

( ) 000 111

( ) 111 000

 

;

. ,

, , :

 

.

0000 0000 00 ( )

0000 0111 07 ()

1000 0111 87 ()

0000 1111 0F ()

0111 0000 70 ()

1111 0000 F0 (. )

 

, ,

. ,

. INT

10H. BL -,

AH : 06 ( ), 07 (

), 08 ( ), 09 ( ).

p , ,

.

.00, .

 

 

BIOS INT 10H

________________________________________________________________

 

INT 10H .

AH , . c

BX, CX, DX, SI BP.

.

 

AH=00: .

. p

c INT 10H.

. AL

:

 

00 40 25 -

01 40 25 i6-

02 80 25 -

03 80 25 16-

04 320 200 4-

05 320 200 -

06 640 200 -

07 80 25 -

08 - 0A PCjr

0D 320 200 16- (EGA)

0E 640 200 16- (EGA)

0F 640 350 - (EGA)

10 640 350 64- (EGA)

 

EGA (Enhanced Graphics Adapter) -

.

16- :

 

MOV AH,00;

MOV AL,03; 80 25

INT 10H; BIOS

 

, ,

BIOS INT 11H. AX ,

5 4 :

 

01 40 25 -

10 80 25 -

11 80 25 - -

 

, , p

AX INT 11H .

 

AH=01: .

ASCII-.

. INT

. p .

INT 10H, : 4-0

CH , 4-0 CL -

. p : 0 13

EGA p 0 7 .

:

 

MOV AH,01;

MOV CH,00;

MOV CL,13;

INT 10H; BIOS

 

.

, , 04/08, 03/10 ..

, . 12/13 (

) 6/7 ( ) .

 

AH=02: . c

c .

0, 0 3 80

.

AH 02, BH DX

:

 

MOV AH,02;

MOV BH,00; 0

MOV DH,;

MOV DL,;

INT 10H; BIOS

 

AH=03: .

( ), p ,

:

 

MOV AH,03;

MOV BH,00; 0

INT 10H; BIOS

 

DH , DL

- . CH c,

CL - .

 

AH=04: . e

p.

 

AH=05: .

0 3. 40 25

8 ( 0 7), 80 25 - 4

( 0 3).

 

MOV AH,05;

MOV AL,;

INT 10H; BIOS

 

AH=06: .

,

. p

, ,

. .

06 .

AL 00

, .

AL .

, .

:

 

MOV AX,0601H;

MOV BH,07;: , -

MOV CX,0000; 00,00

MOV DX,184FH; 24,79 ( )

INT 10H; BIOS

 

AL. BH

, ,

.. CX DX

. :

 

1. ROW () 0

.

2. .

3. , (CMP

ROW,22).

4. , ROW (INC ROW) .

5. , , ROW

.

 

AH=07: .

.

AH 07, p

06 .

 

AH=08: / .

, ,

:

 

MOV AH,08; ./.

MOV BH,00; 0 ( .)

INT 10H; BIOS

 

AL , AH -

. .00

ASCII-. c,

.

 

AH=09: / .

,

.. :

 

MOV AH,09;

MOV AL,;

MOV BH,; (..)

MOV BL,;

MOV CX,;

INT 10H; BIOS

 

AL .

CX .

.

.

"" :

 

MOV AH,09;

MOV AL,03H; ( )

MOV BH,00; 0 (. )

MOV BL,0F0H;,

MOV CX,05;

INT 10H; BIOS

 

( )

.

,

CX 01 AL

. CX

, LOOP. ,

( 02).

BL

. 7 0, ,

7 1, XOR.

 

AH=0A: .

0A 09 , 0A

:

 

MOV AH,0AH;

MOV AL,;

MOV BH,; ( )

MOV CX,;

INT 10H; BIOS

 

DOS INT 21H

.

 

AH=0E: .

, .

AH . 0E, p AL

, ( )

BL - BH.

( 07H), (08H), (0AH)

(0DH) , .

,

c,

.

 

AH=0F: .

AL (. AH=00), p AH -

(20, 40 80), BH - .

 

AH=13: ( AT).

AT

:

 

MOV AH,13H;

MOV AL,;0, 1, 2 3

MOV BH,;

LEA BP,; ES:BP

MOV CX,;

MOV DX,;

INT 10H; BIOS

 

:

0 - ;

1 - ;

2 - , ;

3 - , .

 

 

: ,

________________________________________________________________

 

, . 9.1,

. ,

,

40 :

 

Name? Francis Bacon Francis Bacon []

| |

0 40

 

ROW ( ) COL (

). INT 10H .

, 20- .

.

 

__________

 

page 60,132

TITLE NMSCROLL (EXE) , ,

; -------------------------------------------------------

STACKSG SEGMENT PARA STACK 'Stack'

DW 32 DUP(?)

STACKSG SEGMENT PARA STACK 'Stack'

DW 32 DUP(?)

STACKG ENDS

; -------------------------------------------------------

DATASG SEGMENT PARA 'Data'

NAMEPAR LABEL BYTE; :

MAXNLEN DB 20; .

ACTNLEN DB?;

NAMEFLD DB 20 DUP(' ');

 

COL DB 00

COUNT DB?

PROMPT DB 'Name? '

ROW DB 00

DATASG ENDS

; -------------------------------------------------------

CODESG SEGMENT PARA 'Code'

BEGIN PROC FAR

ASSUME CS:CODESG,DS:DATASG,SS:STACKSG,ES:DATASG

PUSH DS

SUB AX,AX

PUSH DS

MOV AX,DATASG

MOV ES,AX

MOV AX,0600H

CALL Q10CLR;

A20LOOP:

MOV COL,00; 0

CALL Q20CURS

CALL B10PRMP;

CALL D10INPT;

CMP ACTNLEN,00; ? (.. )

JNE A30

MOV AX,0600H

CALL Q10CLR; , ,

RET;

A30:

CALL E10NAME;

JMP A20LOOP

BEGIN ENDP

; :

; --------------------

B10PRMP PROC NEAR

LEA SI,PROMPT;

MOV COUNT,05

B20:

MOV BL,70H;

CALL F10DISP;

INC SI;

INC COL;

CALL Q20CURS

DEC COUNT;

JNZ B20; n

RET

B10PRMP ENDP

; :

; ----------------------

D10INPT PROC NEAR

MOV AN,0AH

LEA DX,NAMEPAR

INT 21H

RET

D10INPT ENDP

; :

; ----------------------------------

E10NAME PROC NEAR

LEA SI,NAMEFLD;

MOV COL,40;

E20:

CALL Q20CURS;

MOV BL,0FOH;

CALL F10DISP;

INS SI;

INS COL;

DES ACTNLEN;

JNZ E20; n

CMP ROW,20; ?

JAE E30;

INC ROW

RET

E30: MOV AX,0601H; --

CALL Q10CLR;

RET

E10NAME ENDP

; :

; ----------------------

F10DISP PROC NEAR;BL ()

MOV AN,09;

MOV AL,[SI];

MOV BH,00;

MOV CX,01;

INT 10H; BIOS

RET

F10DISP ENDP

; :

; --------------

Q10CLR PROC NEAR;AX

MOV BH,07; /

MOV CX 0000

MOV DX,184FH

INT 10H; BIOS

RET

Q10CLR ENDP

; (/):

; ----------------------------------

Q20CURS PROC NEAR

MOV AN,02

MOV BH,00

MOV DH,ROW

MOV DL,COL

INT 10H

RET

Q20CURS ENDP

CODESG ENDS

END BEGIN

__________

 

.9.1. , .

 

 

D10INPT DOS INT 21H.

BIOS INT 10H :

 

1.

.

2. INT 10H ( 08) 08 AH 00 BH.

AL.

3. AL RETURN

,

.

4. AL .

5. AL RETURN, .

6. .

7.





:


: 2015-10-01; !; : 529 |


:

:

.
==> ...

1250 - | 1221 -


© 2015-2024 lektsii.org - -

: 1.038 .