" " ( 2-)

(2-)

 

 

 

Ҡ 2001

 


5 -

 

: 蠠 .

 

͠

Z-80 Ϡ . Ϡ , -128 +127 . , . .

0 255 , , Z-80 Ϡ - , BINARY-CODE- DECIMAL (BCD) - . 1 0 99 .

, , , , ( ) .

 

12-

蠠 蠠 蠠 䠠

8000 21 20 80 MAIN: LD H,8020

H ,L -

8003 0605 LD B,05  

8005 CD 09 80 CALL 8009 -

.

8008 76 HALT -

.

 

 

13-

񠠠 蠠 蠠 䠠

8009 AF ADD B: XOR A -

800A 4F LD C,A -

800B 86 CNT: ADD A,(HL)

-

.

800Ѡ D2 10 08 JP NC T8010

TRM .

800F 0C INC C Ѡ

8010 23 TRM: INC HL -

-

.

8012 D2 0B 80 JP NC 800B -

CNT

.

8015 9 RET .

- MAIN (12-) . - . ADD B (13- ) H, L . MAIN , , .

, ( ), . .

Z-80 . Ϡ , , . , 17F5+3411 :

 

򠠠 蠠 򠠠

00010111 11110101 17F5

+ + +

00110100 00010001 3411

+1 1

01001100 00000110 405

 

6F5C - 135 .

 

򠠠

01101111 01011100 6F5C

00010011 11000101 135

1 1

01011011 10010111 597

 

, () ADD (SUB) , () ADC (SB) , .

14- . : - (), H, L - , D,E .

- . .

 

14-

񠠠 蠠 蠠 䠠

8000 AF SBN XR A -

8001 1A CNT LD A,(DE)

8002 9Š SBC A,(HL)

8003 77 LD (HL),A

.

8004 23 INC HL

.

8005 13 INC DE

8006 AD DEC C

.

8007 2 01 09 JP NZ 8001 ( )

, CNT

.

800 D0 RET NC

 

 

.

, :

14*3=14+14+14

( ).

. , :

0110 = 6

0011 = 3

- - - - - - - -

0110

0110

0000

0000

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

00010010=18

 

6-. .

() . 1 , 1 . . (6-) 2 .(15- ). 09E1 : -D, -Š .

, .

 

15-

 

񠠠 蠠 蠠 䠠

8000 01 00 00 MPL LD BC,0000 ,

.

8003 3E 01 LD A,01

8005 A7 AND A -

.

8006 F5 MPLI PUSH AF -

.

8007 A3 AND E -

.

8008 78 LD A, B

-

8009 CA 0D 80 JP Z,800D -

0

MPL2 .

800C 82 ADD A,D

.

800D IF MPL2 RRA

(- )

800E 4F LD B,A -

.

800F 79 LD A, C

8010 1F RRA

(- )

8011 4F LD C,A C -

8012 F1 POP AF

.

8013 17 RLA

8014 D2 06 80 JP NC 8006

MPL1 .

8017 C9 RET .

 

 

 

 

08 . 00 .

00

 
 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

= 0

 

7-.

.

 

 

, - . , , ( - ). 蠠 7- . 16- . ( ) (D ) ; ( ) ( ).

16-

 

񠠠 蠠 蠠 䠠

8000 21 0800 DIVB: LD HL,0008

(D-)

.

8003 0E 00 LDI ,00

.

8005 7B MXTB; LD A,E

.

8006 17 RLA

.

8007 5F LD E,A

.

8008 79 LD A,C C

.

8009 17 RLA

.

800A 92 SUB D

ᠠ .

800B D2 0F 80 JP NC 800F =1 , ࠠ .

800E 8A ADD A,D

.

800F 4F NOAD: LD C,A .

8010 3F CCF

8011 7C LD A,͠

8012 17 RLA .

8013 67 LD H,A

8014 2D DEC HL

?

8015 2 05 80 JP NZ 8005 , .

8018 CF RST B .

, - .

1.   Z-80 .

2.   "DAA" .

3.   12-16 - . .

4.   8 - .

5.   8 - .

 

 

1-. .

 

 

1 Z-80 12- ().

1.   8020 - .

2.   Ϡ Ѡ .

3.   12- , 8024 8025 . .

4.   .

 

2-. , .

 

 

1.   14 - .

2.   D ,E H,L . . . 01 (ࠠ 8 ).

3.   ,D H,L . .

4.   14 - .

5.   14 - , 2 82 .

6.   H, L D, E , .

7.   14 - - ( ).

 

3 - . 8 16 .

 

 

1.   5 - .

2.   , .

 

4 - . 8 .

 

:

 

1.   16- .

2.   E ,D .

3.   H, L .

 

 

:

 

1. Z-80 .

2. 3- , 8 , - .

3. 5- , 8 .

4. 2- 14-.

5. .

 

- 蠠

 

1. Z-80 ?

2. DAA .

3. (DAA )?

4.   (15 - )?

5.   15- ?

6.   ?

7.   - 0 20 .

8.   Z-80 .

9.   = 1 , .

 

6-

Z-80

,

.

 

 

: : .

 

.

 

2 .

1 . , .

2 . 2 . 2 , .

IN(1) OU(1) . IN (1) (1) . OU(1) 1 . IN 3 2 . 3 . 2 .

 

 

 

1

 

2

 

1 .

2 / .

 

.

 

1 . .

2 . .

3. / .

U 3 .

(F ) ( () ) .

 

.

.

.

.

8000

NIK

IN(F)

(F) .

8002

 

U()

() .

8004

0080

 

JP NI

NI .

 

 

.

.

, . .

-         .

-         , : .

Z 80 .

RS 08 DJNZ 800F . RST 08 . DJNZ 800F .

.

.

 

 

ޚ

8000 IN , ()

AND FO

CP (CO)

JP NZ, 8000

RST 08

HALT

8000                DJNZ 800F

.

 

. .

 

 

 

 

 

 

 

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


() .

1 , 7 . ( =1 ) ( =0 ) . 10110000 , 0011000 .

 

 

 

8255 2 . .

8255 . 3 8 .

() - 䠠 . . .

() . 15 .

() . 2 . ASCII .

ASCII . ASCII 32 , .

2 . 2 , 1 ASCII 0, 2 .

: 0:30 ALT- . 0 ASCII .

 

.

 

, 8255 қ.

, .

3 .

1.     .

2.     .

3.     .

. . ( 61 ) .

, . ASCII . XLAT . XLAT AL 0 255 AL S : 256 1 . . AL 30 , 30 .

ASCII 97 . .

 

. 颚 .

. . 2 30 ( ) 60 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


.

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

TABLETB 16 dup (0) : 1 16

DB qwertyuiop,0,0,0,0,

DB asdfghjkl,0,0,0,0,0,

DB zxcvbnm

DB 16 dup (0)

DB QWERTYUIOP

DB ASDFGHJKL

DB ZXCVBNM

 

.

 

DI

PUSH DS

LD AX,SEG-N.KEY

LD DS,AX

LD DX,OFSET N.KEY ʢ

LD AL,9

LD AH,25H

INT 21

POP DS

EI

 

 

N-KEY PROG FAR

PUSH AX

PUSH BX

PUSH CX

PUSH DX

PUSH ES

 

 

 

IN AL,60H .

LD AH,AL .

PUSH AX

IN AL,61H

OR AL,10000000B 7

OUT 61H,AL

AND AL,01111111B 7

OUT 61H,AL

 

ES, BIOS

 

LD AX,40H

LD ES,AX

POP AX

 

 

CP AL,42

JP KEY UP 颚

LD BL,1

OR ES[17H],BL

JP QUIT

KEY UP CP AL,170

JP NEXT KEY 颚

LD BL,11111110B

AND ES [17H],BL

JP QUIT

NEXT KEY ( )

 

 

 

 

 

 

BIT AL,10000000B

JP QUIT

LD BL,ES [17H] 蠠

BIT BL,00000011B

JP CONY 颚

ADD AL,100 ,

CONY LD BX,OFSET TABLE

XLAT TABLE ASC|11

CP AL,0 0

JP QUIT

. . .

 

LD BX,1AH

LD CX,[BX]

LD DI,ES [BX]+2

CP CX,60

JP H-END

INC CX

INC CX 2

CP CX,DI

JP QUIT

JP CO ,AH

H END CP DI,30

JP QUIT

 

 

 

 

 

.

 

GO AH LD ES:[DI],AL

CP DI,60

JP NO W 颚, 2

LD DI ,28

= 28+2

NO W ADD DI,2

LD ES:[BX]+2DI

 

 

 

QUIT : POP ES

POP DI

POP CX

POP BX

POP AX

LD AL,20H

OUT 20H,AL

RET

N-KEY ENDP.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


- .

 

.

.

 

1.     ( ) .

2.     .

3.     .

4.     ( ) .

5.     .

 

 

.

 

1 .

( ) .

.

1.1. ࠠ

1.2 .

 

2 .

( ) .

.

2.1 .

2.2                                            . . .

 

 

.

 

.

1.     .

2.     .

3.     .

 

 

.

 

1 . ?

2 80

- ?

3 ?

4 ?

5 ?

6 ?

7 ?7

8 -

9 ?

10 ?

 


 

 

 

 

 

 

 

 

" "

(2 )

 

 

 

 

 

 

 

" "

2.12.98 ,

 

 

 

: ..

..

 

..

 

 

: .