VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 559|回复: 1

[交流] 五子棋

[复制链接]
36_avatar_middle
最佳答案
0 
在线会员 发表于 2019-5-3 10:17:24 | 显示全部楼层 |阅读模式
汇编写的五子棋,发上来交流学习

data segment
SG3 DB 'Do you want to play again?(Yes/No)'
sg1 db 0dbh,0dbh
sg2 db 0dbh
row db 15
col db 40
circle DB 00H,00H,07H,0C0H,1FH,0F0H,3FH,0F8H,3FH,0F8H,7FH,0FCH,7FH,0FCH,7FH,0FCH
        DB 7FH,0FCH,7FH,0FCH,3FH,0F8H,3FH,0F8H,1FH,0F8H,07H,0C0H,00H,00H,00H,00H
flag db 1
status db 1
victory db 0
num db 1
form db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
      db 40 dup (0)
data ends
;

code segment
assume cs:code,ds:data,es:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ax,data
mov es,ax

fflag:
mov num,1
mov row,15
mov col,40
mov status,1
mov victory,0
mov num,1

mov si,offset form
mov cx,488h
again:
mov byte ptr [si],0
inc si
loop again

MOV AH,00H
MOV AL,12H
INT 10H
MOV AH,0BH
MOV BH,01
MOV BL,00H
INT 10H

mov        dh,0
mov        dl,0
mov        ah,2
mov        bh,0
int        10h
mov cx,29
flag1:
push cx
mov cx,80
flag2:
push cx
mov        ah,9
mov        al,0dbh
mov        bh,0h
mov        bl,00111001B
mov        cx,1
int        10h
inc dl
mov        ah,2
mov        bh,0
int        10h
pop cx
loop flag2
inc dh
mov dl,0
pop cx
loop flag1

mov bp,offset sg1
mov cx,1
mov dx,0f28h
mov bh,0h
mov al,0h
mov bl,00000000b
mov ah,13h
int 10h

mov bp,offset sg1
mov cx,1
mov dx,0f29h
mov bh,0h
mov al,0h
mov bl,00000000b
mov ah,13h
int 10h

keyboard:
MOV  AH,0
INT  16H
PUSH AX
MOV  AH,1
INT  16H
JZ keyboard2
  POP AX
JMP keyboard
EXIT1:
JMP EXIT
keyboard2:
  POP AX
  CMP  AL,1BH
  jz exit1
  CMP al,'a'
  jz left
  CMP al,'s'
  jz down
  CMP al,'d'
  jz right
  CMP al,'w'
  jz up
  cmp al,' '
  jz  blank
   
  jmp keyboard
up:
call up1
jmp keyboard

down:
call down1
jmp keyboard

left:
call left1
jmp keyboard
right:
call right1
jmp keyboard
blank:
mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax
cmp byte ptr [si],1
jnz bno1
jmp keyboard

bno1:
cmp byte ptr [si],2
jnz bdrawcircle1
jmp keyboard

bdrawcircle1:
mov si,offset circle

cmp flag,1
jz bflag1
cmp flag,2
jz bflag2

bflag1:
call show2
call judgeperfect
cmp victory,1
jz flag3

mov flag,2

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax

mov byte ptr [si],1
jmp keyboard

fflag1:
jmp fflag

bflag2:
call show2
call judgeperfect
cmp victory,1
jz flag3

mov flag,1

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax

mov byte ptr [si],2
jmp keyboard

FLAG3:
MOV  AH,0
INT  16H
CMP  AL,1BH
JZ  EXIT
JMP FLAG3

EXIT:
mov ax,0003h
int 10h










MOV BP,OFFSET SG3
MOV     CX,34
MOV     DX,0H
MOV BH,0H
MOV AL,0H
MOV BL,00001111B
MOV AH,13H
INT 10H

MOV  AH,0
INT  16H
cmp al,'y'
jz fflag1
cmp al,'Y'
jz fflag1

MOV AX,4C00H
INT 21H

up1 proc near
mov bp,offset sg1
mov cx,2
mov dh,row
mov dl,col
mov bh,0h
mov al,0h
mov bl,00111001b
mov ah,13h
int 10h

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax
cmp byte ptr [si],1
jnz uno1
mov status,1
jmp ucircle1
uno1:
cmp byte ptr [si],2
jnz uflag1
mov status,2

ucircle1:
mov si,offset circle
call show

uflag1:
cmp row,0
jz up11
dec row       

up11:
mov bp,offset sg1
mov cx,2
mov dh,row
mov dl,col
mov bh,0h
mov al,0h
mov bl,00000000b
mov ah,13h
int 10h

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax
cmp byte ptr [si],1
jnz uno12
mov status,1
jmp ucircle2
uno12:
cmp byte ptr [si],2
jnz uexit
mov status,2

ucircle2:
mov si,offset circle
call show1

uexit:
RET
up1 endp

down1 proc near
mov bp,offset sg1
mov cx,2
mov dh,row
mov dl,col
mov bh,0h
mov al,0h
mov bl,00111001b
mov ah,13h
int 10h

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax
cmp byte ptr [si],1
jnz dno1
mov status,1
jmp dcircle1

dno1:
cmp byte ptr[si],2
jnz dflag1
mov status,2

dcircle1:
mov si,offset circle
call show

dflag1:
cmp row,28
jz down11
inc row

down11:       
mov bp,offset sg1
mov cx,2
mov dh,row
mov dl,col
mov bh,0h
mov al,0h
mov bl,00000000b
mov ah,13h
int 10h

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax
cmp byte ptr [si],1
jnz dno12
mov status,1
jmp dcircle2
dno12:
cmp byte ptr [si],2
jnz dexit
mov status,2

dcircle2:
mov si,offset circle
call show1

dexit:

ret
down1 endp

left1 proc near
mov bp,offset sg1
mov cx,2
mov dh,row
mov dl,col
mov bh,0h
mov al,0h
mov bl,00111001b
mov ah,13h
int 10h

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax
cmp byte ptr [si],1
jnz lno1
mov status,1
jmp lcircle1
lno1:
cmp byte ptr [si],2
jnz lflag1
mov status,2

lcircle1:
mov si,offset circle
call show

lflag1:
cmp col,0
jz left11
dec col
dec col

left11:       
mov bp,offset sg1
mov cx,2
mov dh,row
mov dl,col
mov bh,0h
mov al,0h
mov bl,00000000b
mov ah,13h
int 10h

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax
cmp byte ptr [si],1
jnz lno12
mov status,1
jmp lcircle2
lno12:
cmp byte ptr [si],2
jnz lexit
mov status,2

lcircle2:
mov si,offset circle
call show1

lexit:

ret
left1 endp

right1 proc near
mov bp,offset sg1
mov cx,2
mov dh,row
mov dl,col
mov bh,0h
mov al,0h
mov bl,00111001b
mov ah,13h
int 10h

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax
cmp byte ptr [si],1
jnz rno1
mov status,1
jmp rcircle1
rno1:
cmp byte ptr [si],2
jnz rflag1
mov status,2

rcircle1:
mov si,offset circle
call show

rflag1:
cmp col ,78
jz right11
inc col
inc col

right11:       
mov bp,offset sg1
mov cx,2
mov dh,row
mov dl,col
mov bh,0h
mov al,0h
mov bl,00000000b
mov ah,13h
int 10h

mov si,offset form

mov al,row
mov bl,40
mul bl
add si,ax

mov al,col
mov ah,0
mov bl,2
div bl
add si,ax
cmp byte ptr [si],1
jnz rno12
mov status,1
jmp rcircle2
rno12:
cmp byte ptr [si],2
jnz rexit
mov status,2

rcircle2:
mov si,offset circle
call show1

rexit:
ret
right1 endp

show proc near

push ax
push bx
push cx
push dx
push si
push bp

  push ax
  mov al,row
  mov bl,16
  mul bl
  mov dx,ax
  pop ax

  mov bh,0    ;页
mov bp,16  ;外圈(行) ,垂直点数
sh0:
  push bp
  mov bp,16  ;内圈(列),水平点数

  push ax
  mov al,col
  mov bl,8
  mul bl
  mov cx,ax
  pop ax

  mov ax,[si] ;取值
xchg al,ah  ;交换
mov di,ax
  mov ah,0ch
  cmp status,1
  jz person1
  cmp status,2
  jz person2

person1:
  mov al,00001011b
  jmp sh2
person2:
mov al,00001100b

sh2:
  shl di,1  ;移出到 cf
jnc sh3 ;无点
int 10h ;有点印出
sh3:   
  inc cx  ;下一点
dec bp  ;完了一列?
jnz sh2 ;未
add si,2 ;下一行
pop bp  ;
inc dx  ;坐标移下一行
dec bp  ;行回圈
jnz sh0

pop bp
pop si
pop dx
pop cx
pop bx
pop ax

ret
show endp

show1 proc near
push ax
push bx
push cx
push dx
push si
push bp

push ax
mov al,row
mov bl,16
mul bl
mov dx,ax
pop ax

mov bh,0    ;页
mov bp,16  ;外圈(行) ,垂直点数
sh01:
push bp
mov bp,16  ;内圈(列),水平点数

push ax
mov al,col
mov bl,8
mul bl
mov cx,ax
pop ax

mov ax,[si] ;取值
xchg al,ah  ;交换
mov di,ax
mov ah,0ch

cmp status,1
jz person11
cmp status,2
jz person21

person11:
mov al,00001010b
jmp sh21
person21:
mov al,00001110b

sh21:
shl di,1  ;移出到 cf
jnc sh31 ;无点
int 10h ;有点印出
sh31:   
inc cx  ;下一点
dec bp  ;完了一列?
jnz sh21 ;未
add si,2 ;下一行
pop bp  ;
inc dx  ;坐标移下一行
dec bp  ;行回圈
jnz sh01

pop bp
pop si
pop dx
pop cx
pop bx
pop ax

ret
show1 endp

show2 proc near
push ax
push bx
push cx
push dx
push si
push bp

push ax
mov al,row
mov bl,16
mul bl
mov dx,ax
pop ax

mov bh,0    ;页
mov bp,16  ;外圈(行) ,垂直点数
sh02:
push bp
mov bp,16  ;内圈(列),水平点数

push ax
mov al,col
mov bl,8
mul bl
mov cx,ax
pop ax

mov ax,[si] ;取值
xchg al,ah  ;交换
mov di,ax
mov ah,0ch
cmp flag,1
jz ssetcolor1
cmp flag,2
jz ssetcolor2

ssetcolor1:
mov al,00001010b
jmp sh22

ssetcolor2:
mov al,00001110b

sh22:
shl di,1  ;移出到 cf
jnc sh32 ;无点
int 10h ;有点印出
sh32:   
inc cx  ;下一点
dec bp  ;完了一列?
jnz sh22 ;未
add si,2 ;下一行
pop bp  ;
inc dx  ;坐标移下一行
dec bp  ;行回圈
jnz sh02


pop bp
pop si
pop dx
pop cx
pop bx
pop ax

ret
show2 endp

judgeperfect proc near
mov al,row
mov bl,col
mov cl,flag

inc al
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz next1
mov num,1
jmp jup

next1:
inc num
inc al
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz next2
mov num,1
jmp jup

next2:
inc num
inc al
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz next3
mov num,1
jmp jup

next3:
inc num
inc al
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz next4
mov num,1
jmp jup

next4:
inc num
cmp num,5
jz jvictory
jmp jexit

jvictory:
mov victory,1
mov num,1
jmp jexit

jup:
mov cl,flag
mov al,row
mov bl,col

dec al
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz unext1
mov num,1
jmp jleft

unext1:
inc num
dec al
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz unext2
mov num,1
jmp jleft

unext2:
inc num
dec al
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz unext3
mov num,1
jmp jleft

unext3:
inc num
dec al
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz unext4
mov num,1
jmp jleft

unext4:
inc num
cmp num,5
jz ujvictory
jmp jexit

ujvictory:
mov victory,1
mov num,1
jmp jexit

jleft:
mov cl,flag
mov al,row
mov bl,col

inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lnext1
mov num,1
jmp jright

lnext1:
inc num
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lnext2
mov num,1
jmp jright

lnext2:
inc num
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lnext3
mov num,1
jmp jright

lnext3:
inc num
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lnext4
mov num,1
jmp jright

lnext4:
inc num
cmp num,5
jz ljvictory
jmp jexit

ljvictory:
mov victory,1
mov num,1
jmp jexit

jright:
mov al,row
mov bl,col
mov cl,flag

dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz rnext1
mov num,1
jmp jleftoblique1

rnext1:
inc num
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz rnext2
mov num,1
jmp jleftoblique1

rnext2:
inc num
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz rnext3
mov num,1
jmp jleftoblique1

rnext3:
inc num
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz rnext4
mov num,1
jmp jleftoblique1

rnext4:
inc num
cmp num,5
jz rvictory
jmp jexit

rvictory:
mov victory,1
mov num,1
jmp exit

jleftoblique1:
mov al,row
mov bl,col
mov cl,flag

dec al
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lbnext1
mov num,1
jmp jleftoblique2

lbnext1:
inc num
dec al
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lbnext2
mov num,1
jmp jleftoblique2

lbnext2:
inc num
dec al
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lbnext3
mov num,1
jmp jleftoblique2

lbnext3:
inc num
dec al
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lbnext4
mov num,1
jmp jleftoblique2

lbnext4:
inc num
cmp num,5
jz lbvictory
jmp jexit

lbvictory:
mov victory,1
mov num,1

jleftoblique2:
mov al,row
mov bl,col
mov cl,flag

inc al
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lb1next1
mov num,1
jmp jrightoblique1

lb1next1:
inc num
inc al
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lb1next2
mov num,1
jmp jrightoblique1

lb1next2:
inc num
inc al
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lb1next3
mov num,1
jmp jrightoblique1

lb1next3:
inc num
inc al
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz lb1next4
mov num,1
jmp jrightoblique1

lb1next4:
inc num
cmp num,5
jz lb1victory
jmp jexit

lb1victory:
mov victory,1
mov num,1
jmp jexit

jrightoblique1:
mov al,row
mov bl,col
mov cl,flag

inc al
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz rb1next1
mov num,1
jmp jrightoblique2

rb1next1:
inc num
inc al
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz rb1next2
mov num,1
jmp jrightoblique2

rb1next2:
inc num
inc al
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz rb1next3
mov num,1
jmp jrightoblique2

rb1next3:
inc num
inc al
dec bl
dec bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz rb1next4
mov num,1
jmp jrightoblique2

rb1next4:
inc num
cmp num,5
jz rb1victory
jmp jexit

rb1victory:
mov victory,1
mov num,1
jmp jexit

jrightoblique2:
mov al,row
mov bl,col
mov cl,flag

dec al
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz jr2next1
mov num,1
jmp jexit

jr2next1:
inc num
dec al
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz jr2next2
mov num,1
jmp jexit

jr2next2:
inc num
dec al
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz jr2next3
mov num,1
jmp jexit

jr2next3:
inc num
dec al
inc bl
inc bl
mov si,offset form

push ax
push bx
mov bl,40
mul bl
add si,ax
pop bx
pop ax

push ax
mov al,bl
mov ah,0
push bx
mov bl,2
div bl
add si,ax
pop bx
pop ax
cmp byte ptr [si],cl
jz jr2next4
mov num,1
jmp jexit

jr2next4:
inc num
cmp num,5
jz jr2victory
jmp jexit

jr2victory:
mov victory,1
mov num,1
jmp jexit

jexit:
mov num,1
ret
judgeperfect endp


code ends
end start

评分

参与人数 2驿站币 +3 热心值 +3 收起 理由
16_avatar_small firefox + 1 + 1 很给力!
61_avatar_small KATZ + 2 + 2 支持原创!

查看全部评分





上一篇:D3D长啥样
下一篇:狗尾续貂-OpenGL例程补上
40_avatar_middle
最佳答案
0 
在线会员 发表于 2019-5-3 14:08:44 | 显示全部楼层
汇编写的。厉害了
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-11-29 00:32

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表