ғ ң
repeat <ң > until X< = 0; қ.
ұ ң ү ү:
BEGIN: | ң ә | |
CMP X, 0 | ;X 0 | |
JG BEGIN | ;X >0 à BEGIN |
ұ ұ ң ә (ң ғ ), ң ғ ө ( ғ ): ққ , ң қ, ғ , қ.
6.3.5-. . ғқ ң ө ө ғ қ N-, - 1- . ө ө, N ө .
. Қ ө (қ p1) . ө ғ . ғ ө p1 ғ (p1< p) қ. қғ ң қ n ө ғ ө. ≠p1 , X- 1- (X=1).
P DW 0; , ө ө
N DB 0;N қ ө , ө
X DB 0; ө , ө
...
Mov n,1;n=1
mov p1,1;p1=1 ө , ө ө
;ң
l1: mov ax,p1;p1à ax
mul n;p1* N
mov p1,ax;p1= p1* N
inc n;n= n +1
;ң қ
cmp ax,p;p1< p?
jl l1;p1< p à l1
;p ғқ n ң
;ө
cmp ax,p;p1=p?
jle l2;p1=p à l2
mov x,1;x=1
l2:
...
6.3.6 -. n . ң ң қ (, n = 7528 ә: 7+5+2+8=22).
. ң ү 10-ғ ( қ ү ғқ) ө, ғ ө ғ 10-ғ ө ө ө қ. Ә өң қғ ң , қ .
N DD 0;N , ө ө
S DB 0;S-қ ң ң қ
...
mov x,10;X=10
mov s,0;s=0
l1: mov ax,n;ax=N
div x;N div 10
add s,ah;s=s+N mod 10
mov ah,0;AL- - ұ ү
mov n,ax;N=N div 10
cmp n,0;N≠0?
|
|
jne l1;N≠0 à l1
...
ү ң ғ , ғ for ү , қ қғ.
ә 8
қ: қ .
.LOOP, LOOPPE/ LOOPPZ ә LOOPNE/LOOPNZ . .
қ
LOOP
LOOP ғ ә For ә ү қ ұ.
қ, қ (ң ) N қ , ұ ұ ұғ :
MOV CX,N / MOV ECX,N | ;CX = N / ECX = N | |
BEGIN: | ң ә | |
DEC CX / DEC ECX | ;CX = CX-1 / ECX=ECX-1 | |
CMP CX,0 / CMP ECX | ;CX = 0? / ECX=0?,0 | |
JNE | ;CX ≠ 0 / ECX≠0→ BEGIN |
ңғ ү ә ң ң . ң ү, ү ң ұ қ, :
LOOP <>
LOOP ң ө ғғ ү :
MOV CX,N / MOV ECX,N | ;CX:=N / ECX:=N | |
BEGIN: | ң ә | |
LOOP BEGIN | ;CX / ECX>0 à BEGIN |
қ , қ LOOP ү ғ қғ қ .
6.4.1.1 -. N
S=1! + 2! + + N! ө .
. Қғ N ғқ, LOOP ү N- . Ә k қ ғ (s=s+k!)қ .
N DW?; N қғ
S DD?;S қ
...
mov s,0;s=0, қң ғқ ә
mov f,1;f=1, ң ғқ ә
mov k,1; k=1
mov c,n; c=n
l: mov eax,f; eax=f
mul k; f*k
mov f,eax; f=f*k
add s,eax;
inc k; k= k+1
loop l; à L
...
6.4.1.2 -. (fn) f1=f2=1, fn=fn-1+fn-2, ұ n=3,4, қ. Fn- қ .
. ң n- ү n-2 , , ғқ ә , қ (N-2) - . Ә ңғ қ қ.
f1 DW 1;f1-ң 1-
f2 DW 1;f2 -ң 2-
fn DW?;fn -ң n-
...
MOV F1,1;F1=1
MOV F2,1;CX=N
SUB CX,2;CX=N-2
L: MOV AX,F1;AX=F1
ADD AX,F2;AX= F1+F2
MOV FN,AX;FN= F1+F2
MOV BX,F2;BX=F2
MOV F1,BX;F1=BX
MOV F2,AX;F2=AX
LOOP L;àL
...
6.4.1.3 -. N
|
|
ө .
. ұ N қғ қ . Ә қғ kk (ұ k=1,2,...,n) ө , ғ ң ұ қ. LOOP қ , ң ә қ қ, қ ғ ө қ .
N DB?;N қғ
K DB?;K ө
S DD?;S қ
D DD?;D kk
...
MOV S,0; S=0 қң ғқ ә
MOV CX,N; CX=N қ
MOV K,1; K=1
;қ ң
L1: MOV D,1; D=1 қғң ғқ ә
MOV X,CX; X=CX CX- қ қ
MOV CX,K; CX=K
; ң
L2: MOV EAX,D; EAX=D
MUL K; D*K
MOV D,EAX; D=D*K
LOOP L2; à L1
INC K; K=K+1
ADD S,EAX; S=s+kk
MOV CX,X; CX=X, CX- қ
LOOP L1; à L2