.


:




:

































 

 

 

 





 

:

1 ?

2 ?

3 ?

4 - .

5 , - .

 

:

/;

/ .

:

JCXZ (Jump if CX=Zero) , 0;

JECXZ (Jump if ECX=Zero) , 0.

(), .

0, (), , .

:

LOOP (LOOP control by register CX) ;

LOOPE/LOOPZ (LOOP control by register CX not equal 0 and ZF=1) ZF;

LOOPNE/LOOPNZ (LOOP control by register CX not equal 0 and ZF=0) ZF.

LOOP <> . ʳ /. LOOP / , 0.

LOOPE/LOOPZ , LOOPNE/LOOPNZ. . / ZF, / 0, LOOP , / 1, . ZF = 0, LOOPE/LOOPZ , LOOPNE/LOOPNZ . ZF = 1 . LOOPNE/LOOPNZ , 0, LOOPE/LOOPZ .

 

:

1 ?

2 ?

3 - CX JCXZ LOOP?

4 LOOP?

 

:

1 ?

2 LOOPNZ 1

M1: MOV AX,DX

LOOPNZ 1

NOP,

0001 ?

3 LOOPE/LOOPZ ?

4 LOOPE 1, ?

5 , JPO M 1.

 

-86

 

˳

 

:

1 ?

2

7000:0100 MOV AX,7000H;?

 

, . , , / ++. , , , . , , - .

. , , ', . , , . , , . .

. . . , , . .

 

9.4.1 3 F 8 H 2 F 8 H , 0020 . 4- , 0030 .

ϳ , .

:

 

MOV DX,3F8H; DX 3F8H

MOV SI,0020H; SI

;

MOV DI,0030H; DI

;

MOV CL,04H; CL

XOR ,;

IN AL,DX;

MOV CH,AL;

MOV [SI],AL;

MOV DX,2F8H; DX 2F8H

IN AL,DX;

INC SI;

;

MOV [SI],AL;

AND CH,F0H;

AND AL,F0H;

SHR AL,CL;

;

OR CH,AL;

MOV [DI],CH;

NOP

 

, D 1 12 (00010010 ), D 2 34 (00110100 ). , 0001 , 0011 . 00010011 13 .

, .

 

9.4.2 -28 DL D . :

 

) MOV DL,-28H ) MOV DH,-28H

NEG DL NOT D

OR DL,80H ADD D,81H

 

- 䒺 , DL DH -28 , D 8 H. NEG DL, , 28 , OR DL,80 H, 1 . -28 , 8 ( )). ) D 8 H, D , 81 . 1 1 ; DL 8 .

 

9.4.3 ZF, SF PF , AL.

 

OR AL,AL

 

, AL, . , 56 , :

 

ZF =0;

SF =0;

PF =1.

 

9.4.4 CF, SF, AF :

 

) MOV AL,EH ) MOV AL,2AH ) MOV AL,2AH

SU AL,2AH SUB AL,4EH SUB AL,E4H

NOP NOP NOP

 

:

 

) _4 EH ) _2 AH ) _2 AH

2 AH 4 EH E 4 H

24 H DCH 46 H

 

CF =0 CF =1 CF =1

AF =0 AF =1 AF =0

SF =0 SF =1 SF =0

 

CF 1, , ) ). CF 1, SF =1 , . CF, .

 


9.4.5 : 1 2, 0000:0400 0000:0300 . 3FBH 1 :

 

MOV DX,3FBH; DX

IN AL,DX;

 

0000011 = 03 13 . : (D 3 = 0, D 4 = X), (D 2 = 0), 8 (D 1 = 1, D 2 = 1).

 

9.4.6 D 1 D 2 3- 5- , 0010. , 0, 2, 7 ; . , D 1 25 , D 2 73 . () . .

 

F 1= 11011010 = DAH.

F 2 = D 2 /\ mask; mask = 01111010 = 7 H.

 

 

16 , 25 , 73 .

 

7000:0010 12 34 56 25 43 73 43 54 65 76 82 37 15 13 14 61 52.

 

, 2080 .

. 9.12.

, ,

 

MOV AX,7000H;

MOV DS,AX;

MOV SS,AX;

MOV SP,2080H;

MOV BX,0010H;

MOV AL,[BX+03]; AL

NOT AL;

MOV AH,[BX+05];

AND AH,7AH;

PUSH AX;

 

 

 
 

 

 


9.12

 

.

NOT ; NOT DAH, AL, AND 72 , ; OF = 0, CF = 0, SF = 0, AF = 0, ZF = 0, PF = 1.

 

9.4.7 , D 1 D 2, . 33 . , 10 SI, , 20 DI 2 . 7000 .

, 10 20 . , SI 6 , DI 2 .

 


7000:0010 12 34 56 25 40 43 71 43 65 76 82 37 15 13 18 60

7000:0020 14 36 58 27 45 73 48 54 65 76 82 39 17 15 14 61

 

D 1 4371 , D 2 7345 . F 1 :

 

F 1= DD 2=3034 .

 

 

OF = 0, CF = 0, SF = 0, AF = 0, ZF = 0, PF = 0.

F 2 :

 

F 2 = F 1 ´ 33 H = 3034 H ´ 33 H = 99 5 .

 

: OF = 1, CF = 1, SF = 1, AF = 1, ZF = 0.

:

 

MOV AX,7000H;

MOV DS,AX;

MOV BX,0010H;

;

MOV DI,2H;

MOV SI,6H;

XOR DX,DX; DX

MOV AX,[BX+SI];

MOV BX,0020H;

;

XOR AX,[BX+DI+2]; 2

MOV C,33H; CL

MUL C; 33

MOV [BX+DI+2],AX;

;

MOV [BX+DI+4],DX;

;

 

ϳ 9 5 , DX 0009 .

 


:

1 쒿 Intel?

2 쒿 Intel?

3 32 . , 4 , .

4 , ; . .

5 . 44 , , DI.

6 , DS: 50, STOSW.

7 . .

 

:

1 , .

2 .

 

 

:

1 () ?

2 , .

 

. 򳺿 . , . - IP, . , IP / CS . (far), (near) (short) . IP, CS, - , , 216 , . - , , . . IP [-216... +216-1] , CS , CS. IP [-128...+127] .

 

 

() . :

 

JMP 0110H; 0110

JMP [offset];

; IP

JMP [operand]; ;

;

;

 

, , .

8-, 16- 32- ( I 80386 ).

, . IP, CS .

16- (, , , DX, SI, DI, BP, SP) 32- (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP ) . , . IP CS. .

 

CS: IP

7000: 30 MOV DS,AX; DS

7000: 32 MOV AX,1234H; 1234

7000: 35 JMP 0039H; MOV CX,AX

7000: 37 MOV CX,AX;

7000: 39 MOV DX,AX; DX

 

CS: IP

7000: 30 MOV DS,AX;

7000: 32 MOV AX,0039H;

7000: 35 JMP AX;

7000: 37 MOV CX,AX;

7000: 39 MOV DX,AX

 

CS: IP

7000: 30 MOV AX,003CH;

7000: 33 MOV [ 50],AX;

7000: 36 JMP [50];

7000: 3A MOV CX,AX;

7000: 3C MOV DX,AX

 

.

 

 

() , , , . . 9.4. . . , . -128...+127, 1 . I 80386 , 2 4 . S .

, , .

, CMP , , .

 

9.4.8 D 1 D 2 . , . , :

5 ;

;

10 11 .


:

02 ;

01 ;

.

, .

(. 9.13).

 
 

 


9.13

 

:

 

MOV AX,0F0AH;

PUSH AX;

POP AX;

MOV BX,AX;

SUB BL,BH; г

JNS POSIT; ?

JP EVEN; ͳ, ?

ADD AL,05H; ͳ,

NOT AH;

MOV [10H],AX;

;

JMP KNEC;

EVEN: ADD AL,02H; ,

INC AH;

MOV [10],AX;

JMP KNEC;

POSIT: PUSH AX;

KNEC: NOP; ʳ

 

, SP, D 1 D 2 , , 10 11 , . 0 , 0 FH, POP AX AL 0 AH, , 0 FH. г SUB BL, BH FBH. SF = 1, . JP, , JNS .

ʳ , () PF = 0, , JP, . . 10 00 H, 11 F0 H.

0 FH 0 AH, 05 , 012 F PUSH AX, .

0 0 , FCH , PF = 1 JP 0126 . , , 10 0 , 11 0 FH.

. 9.5...9.7 D 1 D 2. , .

, .


9.5 D 1 = 0 AH, D 2 = 0 FH

. IP AX BX SP DS SS CS PF SF ZF CF
  MOV AX,0 F 0 A   0 F 0 A   FFEE              
  PUSH AX 010 0 F 0 A   FFEC              
  POP AX 010 D 0 F 0 A   FFEE              
  MOV BX,AX 010 E 0 F 0 A 0 F 0 A FFEE              
  SUB BL,BH   0 F 0 A 0 FFB FFEE              
  JNS 0128   0 F 0 A 0 FFB FFEE              
  JP 011 F   0 F 0 A 0 FFB FFEE              
  ADD AL,05   0 F 0 F 0 FFB FFEE              
  NOT AH   F 00 F 0 FFB FFEE              
  MOV [10], AX 011 A F 00 F 0 FFB FFEE              
  JMP 0129   F 00 F 0 FFB FFEE              
  NOP   F 00 F 0 FFB FFEE              

 

9.6 D1 = 0FH, D2 = 0

. IP AX BX SP DS SS CS PF SF ZF CF
  MOV AX,0 0 F   0 A 0 F   FFEE              
  PUSH AX 010 C 0 A 0 F   FFEC              
  POP AX 010 D 0 A 0 F   FFEE              
  MOV BX,AX 010 E 0 A 0 F 0 A 0 F FFEE              
  SUB BL,BH   0 A 0 F 0 A 05 FFEE              
  JNS 0129   0 A 0 F 0 A 05 FFEE              
  PUSH AX   0 A 0 F 0 A 05 FFEC              
  NOP   0 A 0 F 0 A 05 FFEC              

 

9.7 D 1 = 0 AH, D 2 = 0 EH

. IP AX BX SP DS SS CS PF SF ZF CF
  MOV AX,0 E 0 A   0 E 0 A   FFEE              
  PUSH AX 010 C 0E0 A   FFEC              
  POP AX 010 D 0 E 0 A   FFEE              
  MOV BX,AX 010 E 0 E 0 A 0 E 0 A FFEE              
  SUB BL,BH   0 E 0 A 0 EFC FFEE              
  JNS 0128   0 E 0 A 0 EFC FFEE              
  JP 011 F   0 E 0 A 0 EFC FFEE              
  ADD AL,02 011 F 0 E 0 C 0 EFC FFEE              
  INC AH   0F0 C 0 EFC FFEE              
  MOV [0010], AX   0F0 C 0 EFC FFEE              
  JMP 0129   0 F 0 C 0 EFC FFEE              
  NOP   0 F 0 C 0 EFC FFEE              

 

:

1 ?

2 , ?

3 , . 䒺 , . , 0012 H. , 7000:0014 . .

 

:

1 . ij , AL. 䒺 , . , 0012 H. , 7000:0016 . .

2 ,

7000:0120 CMP AL,BL

7000:0122 JZ 8000:0100

 

 

:

1 ?

2 , .

 

, , , , , , , . . , , . . . ( 80386 ). , . , . , . г . . - , , ().

 

9.4.9 RS -232- C , , . 1 3 FDH. :

 

MOV DX,3FDH;

M1: IN AL,DX;

AND AL,20H;

JZ M1; , D5 = 1?

NOP

 

9.4.10 RS -232- C , . 1 3 FDH. :

 

MOV DX,3FDH;

M1: IN AL,DX;

AND AL,01H;

;

JZ M1; D0 = 1

 

9.4.11 , 43 , , 0200, ES 7000 :

 

7000:0200 41 42 43 44.

 

˳ L, DI, AL. REPNZ.

 

MOV AX,7000H;

MOV ES,AX;

MOV CL,0004H;

MOV DI,0200H;

;

MOV AX,0043H; AL

STD;

CLD;

REPNZ;

SCASB;

 

, . ϳ 0001 , DI 0203 , , . ZF .

 

9.4.12 (N), N = 10 H , 20 H; (P)(NEG) MP, 30 H, 䒺 MNEG, 40 H. DS ES .

. 9.14.

.

 

MOV CX,0010H;

MOV SI,0020H;

MOV DI,0030H;

;

MOV BX,0040H;

; 䒺

LD; SI DI

CYCLE: LODSB;

OR AL,AL;

JS NEG; ?

: STOSB; ,

JMP COUNT;

;

NEG: MOV [BX],AL; ,

INC BX; 䒺

;

COUNT: LOOP CYCLE;

NOP

 


 

 

 


9.14

 

9.4.13 N M(N), N = 10 H, , 7000:0020. 30 . . 9.15.


 

 


9.15

 

.

 

MOV AX,7000H; ,

MOV DS,AX; 7000:0000

MOV BX,0020;

MOV AX,0000H; (S = 0)

M1: ADD AX,[BX];

ADD BX,2;

;

CMP BX,0030H;

JNZ M1; +2? ,

;

MOV BX,0010H; BX

IDIV BX;

MOV [30H],AX;

NOP

 

, 30 H.

 

9.4.14 100 , 0,1 . , DELAY, , .

 

,

 

] [ , ; t ; t , ; t , . , . :

1) , NOP, ;

2) t .

DELAY :

 

CALL DELAY; 19

;

DELAY: MOV AL,X; 2 ,

;

;

TIME: DEC AL; 3

JNZ TIME; 8

NOP; 2

RET; 8

 

DELAY, , :

 

CALL DELAY; 19

DELAY: PUSH BX; 11

PUSHF; 10

MOV BL,X; 2 , BL

;

M1: DEC BL; 3

JNZ M1; 16

POP F; 8

POP BX; 8

RET; 8

 

t = (19+11+10+2+8+8+8)0,1 = 7,3 ;

t = (3+16)0,1 = 1,9 ;

t = 100 .

 

.

 

= 49 D t = 6,6 + 49 * 1,9 = 6,6 + 93,1 = 99,7 .

, 3 0,3 . OR BL, BL. :

 

DELAY: PUSH BX

PUSHF

MOV BL,31

M1: DEC BL

JNZ M1

OR BL,BL

POP F

POP BX

RET

 

, DELAY CALL DELAY .

 

:

1 ?

2 ?

3 ?

4 ?

5 N , , 7000: 0010 , . 0027 .

6 M(N) , , 7000: 0010 , . 0022 .

7 M(N) , , 7000:0010 , . 0030 .

8 (N) , , 7000:0010 , . 0026 .

 

:

1 N´N 0020 H. 7000:0010.

2 , CL 2?

 






:


: 2015-10-19; !; : 1792 |


:

:

, , 1:10
==> ...

1962 - | 1854 -


© 2015-2024 lektsii.org - -

: 0.326 .