.


:




:

































 

 

 

 





. 4, Pascal .

4.4

Pascal .

Pascal
If X > 0 then begin S1 end else begin S2 end; CMP X, 0 JLE L2 S1 JMP Fin L2: S1 Final:
For X:=1 to N do begin S end; MOV CX, N L: S DEC CMP CX, 0 JNE L Final:
While X > 0 do begin S end; Begin: CMP X, 0 JLE Fin S JMP Begin Final:
Repeat S until X > 0 Begin: S CMP X, 0 JG Begin

, Intel 8086 : LOOP, LOOPE/LOOPZ LOOPNE/LOOPNZ. .

4.4.1. : LOOP <>

LOOP :

  MOV CX, N ; N>0
L:    
     
     
  LOOP L  

LOOP.

ü , .

ü , , .

ü LOOP , . = 0 . , , = 0 JCXZ:

  MOV CX, N ; N>0
  JCXZ L1 ; CX = 0 L1
L:    
     
     
  LOOP L  
L1:    

LOOP , ( L) 127-128 ( 30-40 ). , LOOP -.

4.4.2. ( ):

LOOPE <> LOOPZ <>

( ) (), , 1. , . .

( ZF=0 =0), . ZF ( JE/JZ JNE/JNZ), , . . ZF = 0 ( ) , .

LOOPE , .

4.4.3. :

LOOPNE <> LOOPNZ <>

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

Examle 4.3. , N .

;

.data

mes1 db , 10, 13, $

mes2 db , 10, 13, $

N EQU 5

;

.code;

MOV CX, N;

cycl:

MOV DX, OFFSET mes1;

MOV AH, 09h;

INT 21h;

LOOP cycl; CX = CX 1, CX > 0, , .

MOV DX, OFFSET mes2; ,

MOV AH, 09h;

INT 21h;

MOV AH, 4Ch;

INT 21h;

;

Examle 4.4. , .

;

.data

mes1 db , 10, 13, $

mes2 db , 10, 13, $

array db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

;

.code;

MAIN:

MOV CX, 10;

MOV SI, OFFSET array;

MOV BL, 3;

DEC SI; SI

cycl:

INC SI; SI,

CMP [SI], BL

LOOPNE cycl; CX = CX 1, CX > 0 ZF = 0, , .

JE ravno

JNE neravno

JMP exit

ravno:

MOV DX, OFFSET mes3;

MOV AH, 09h;

INT 21h

JMP exit;

neravno:

MOV DX, OFFSET mes4;

MOV AH, 09h;

INT 21h

exit:

Examle 4.5. , . .

.

MAX DW ?  
MASS DW 10h, 20h, 30h, 5h, 40h, 15h, 20h, 70h, 35h, 34h
     
  LEA BX, MASS  
  MOV CX, 10 ;
  MOV AX, [BX] ;
BEG: CMP [BX], AX ;
  JL NO ;
  MOV AX,[BX] ;
NO: ADD BX, 2 ;
  LOOP BEG ;
  MOV MAX,AX ;
     
         

Examle 4.6. N - 0 8. . (8! = 40320 < 2 16).

:= 1, N AX:= AX*i, i 1 8. , N = 0 .

  MOV AX,1 ; AX:=0!
  MOV CL, N  
  MOV , 0 ; CX:= N ( )
  JCXZ Fl ; N = 0
  MOV SI, 1 ; i:= l
F: MUL SI ; (DX, AX):= AX*i (DX = 0) *
  INC SI  
  LOOP F  
F1:    

Examle 4.7. BL [2, ], N ( N - , 2 <= K < N), 0, .

N 2, 3,..., 0 - , .

  MOV DL, N ; AX:=0!
  MOV DH, 0 ; DX:= N
  MOV CL, K  
  MOV CH, 0  
  DEC CX ; CX:= K-1 ( )
  MOV BL, 1  
DV: INC BL ; [2,]
  MOV AX, DX  
  DIV BL ; AH:=N mod BL
  CMP AH, 0 ; mod = 0?
  LOOPE DV ; mod = 0
  JNE DV1 ; mod <> 0 DV1
  MOV BL, 0 ;
DVl:    





:


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


:

:

.
==> ...

1462 - | 1446 -


© 2015-2024 lektsii.org - -

: 0.013 .