⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2fen.txt

📁 算法设计中的一个问题。。这是一个递归实现的2分收索问题
💻 TXT
字号:
          M1 EQU 6                ;初始报数上限值m:
    N EQU 6                 ;人数n:
DATA SEGMENT
SOURCE DB 01H,02H,03H,04H,05H,06H ;对应人的密码
RESULT DB N DUP(0)
M      DB 00H                     ;输出控制数
M2     DB 00H                     ;输出数据区指示变量
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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -