?? 2fen.txt
字號(hào):
M1 EQU 6 ;初始報(bào)數(shù)上限值m:
N EQU 6 ;人數(shù)n:
DATA SEGMENT
SOURCE DB 01H,02H,03H,04H,05H,06H ;對(duì)應(yīng)人的密碼
RESULT DB N DUP(0)
M DB 00H ;輸出控制數(shù)
M2 DB 00H ;輸出數(shù)據(jù)區(qū)指示變量
DATA ENDS
SSEG SEGMENT PARA STACK 'STACK'
DB 256 DUP(?)
SSEG ENDS
CODE SEGMENT
ASSUME CS:CODE,DSATA,SS:SSEG,ESATA
STARTUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV DH,0 ;k=0
MOV DL,N
CMP DL,1
JZ LOP2 ;while(n!=1){
LOP1: MOV AL,M1 ;s=m%n
CMP AL,DL
JB LOP4
LOP3: SUB AL,DL
CMP AL,DL
JNB LOP3
LOP4: CMP AL,0
JNZ LOP9
MOV AL,DL
LOP9: CMP DH,0 ;if(k!=0)s=(s+k-2)%n+1
JE LOP5
ADD AL,DH
SUB AL,2
CMP AL,DL
JB LOP6
SUB AL,DL
LOP6: ADD AL,1
LOP5: MOV AH,0
MOV CL,AL ;CL---s
DEC AL ;AL---s-1
MOV BX,AX
MOV AL,SOURCE[BX] ;printf(" %d ",a[s-1])
MOV BL,M2
MOV BH,0
MOV RESULT[BX],AL
INC BL
MOV M2,BL
MOV AL,CL
SUB AL,1
MOV CH,AL ;for(i=s-1;i<n-1;i++)a=a[i+1]
MOV AL,DL ;AL--n
SUB AL,1 ;AL--n-1
CMP CH, AL ;CH--i=s-1
JNB LOP7
LOP8: MOV AL,CH
MOV AH,0
MOV BX,AX
MOV AL,SOURCE[BX+1]
MOV SOURCE[BX],AL
INC CH
MOV AL,DL
SUB AL,1
CMP CH, AL ;i<n-1
JB LOP8
LOP7: MOV DH,CL ;k=s
DEC DL ;n--
CMP DL,1
JNE LOP1
LOP2: MOV BX,0
MOV AL,SOURCE[BX] ;printf(" %d ",a[0])
MOV BX,N-1
MOV RESULT[BX],AL
LEA DI,RESULT
MOV M,N
LOP0: MOV AL,[DI]
AND AL,0F0H
MOV CL,4
SHR AL,CL
CMP AL,9
JA X1
ADD AL,30H
MOV AH,02H
MOV DL,AL
INT 21H
JMP X2
X1: CMP AL,61H
JA X5
ADD AL,37H
MOV AH,02H
MOV DL,AL
INT 21H
JMP X2
X5: ADD AL,20H
MOV AH,02H
MOV DL,AL
INT 21H
X2: MOV AL,[DI]
AND AL,0FH
CMP AL,9
JA X3
ADD AL,30H
MOV AH,02H
MOV DL,AL
INT 21H
JMP X4
X3: CMP AL,61H
JA X4
ADD AL,37H
MOV AH,02H
MOV DL,AL
INT 21H
X4: MOV AL,48H
MOV AH,02H
MOV DL,AL
INT 21H
MOV AL,20H
MOV AH,02H
MOV DL,AL
INT 21H
INC DI
DEC M
JNZ LOP0
RET
CODE ENDS
END START
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -