" " ( 2-)
(2-)
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)
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 ,
: ..
..
..
: .