📄 test.asm
字号:
cmp dx,endy
jz exit_line
jmp vertical
horizontal:
mov ah,0ch
int 10h
inc cx
cmp cx,endx
jne horizontal
jmp exit_line
exit_line:
ret
line endp
;******************** write 1 ***********************
w1 proc near
write_init
frame
mov ax,x
adc ax,120
mov endx,ax
sub ax,1
mov startx,ax
mov ax,y
adc ax,112
mov y,ax
sub ax,55
mov starty,ax
mov endy,ax
w11:
mov al,5
call line
mov ax,starty
cmp ax,y
jz w1_exit
inc ax
mov starty,ax
mov endy,ax
mov ax,startx
sub ax,1
mov startx,ax
jmp w11
w1_exit:
ret
w1 endp
;******************** write 2 ***********************
w2 proc near
write_init
frame
mov ax,x
mov startx,ax
add ax,120
mov endx,ax
mov ax,y
add ax,112
mov y,ax
sub ax,56
mov starty,ax
mov endy,ax
w21:
mov al,5
call line
mov ax,starty
cmp ax,y
jz w2_exit
inc ax
mov starty,ax
mov endy,ax
jmp w21
w2_exit:
ret
w2 endp
;******************** wirte 3 ***********************
w3 proc near
write_init
frame
mov ax,x
mov startx,ax
add ax,1
mov endx,ax
mov ax,y
add ax,112
mov y,ax
sub ax,55
mov starty,ax
mov endy,ax
w31:
mov al,5
call line
mov ax,starty
cmp ax,y
jz w3_exit
inc ax
mov starty,ax
mov endy,ax
mov ax,endx
add ax,1
mov endx,ax
jmp w31
w3_exit:
ret
w3 endp
;******************** write 4 ***********************
w4 proc near
write_init
frame
mov ax,x
add ax,60
mov startx,ax
add ax,60
mov endx,ax
mov ax,y
mov starty,ax
mov endy,ax
add ax,112
mov y,ax
w41:
mov al,5
call line
mov ax,starty
cmp ax,y
jz w4_exit
inc ax
mov starty,ax
mov endy,ax
jmp w41
w4_exit:
ret
w4 endp
;******************** write 5 ***********************
w5 proc near
write_init
frame
mov ax,x
mov startx,ax
adc ax,120
mov endx,ax
mov ax,y
mov starty,ax
mov endy,ax
add ax,112
mov y,ax
w51:
mov al,15
call line
mov ax,starty
cmp ax,y
jz w5_exit
inc ax
mov starty,ax
mov endy,ax
jmp w51
w5_exit:
ret
w5 endp
;******************** write 6 ***********************
w6 proc near
write_init
frame
mov ax,x
mov startx,ax
add ax,60
mov endx,ax
mov ax,y
mov starty,ax
mov endy,ax
add ax,112
mov y,ax
w61:
mov al,5
call line
mov ax,starty
cmp ax,y
jz w6_exit
inc ax
mov starty,ax
mov endy,ax
jmp w61
w6_exit:
ret
w6 endp
;******************** wirte 7 ***********************
w7 proc near
write_init
frame
mov ax,x
add ax,60
mov startx,ax
add ax,60
mov endx,ax
mov ax,y
mov starty,ax
mov endy,ax
add ax,55
mov y,ax
w71:
mov al,5
call line
mov ax,starty
cmp ax,y
jz w7_exit
inc ax
mov starty,ax
mov endy,ax
mov ax,startx
add ax,1
mov startx,ax
jmp w71
w7_exit:
ret
w7 endp
;******************** write 8 ***********************
w8 proc near
write_init
frame
mov ax,x
mov startx,ax
add ax,120
mov endx,ax
mov ax,y
mov starty,ax
mov endy,ax
add ax,56
mov y,ax
w81:
mov al,5
call line
mov ax,starty
cmp ax,y
jz w8_exit
inc ax
mov starty,ax
mov endy,ax
jmp w81
w8_exit:
ret
w8 endp
;******************** wirte 9 ***********************
w9 proc near
write_init
frame
mov ax,x
mov startx,ax
add ax,60
mov endx,ax
mov ax,y
mov starty,ax
mov endy,ax
add ax,55
mov y,ax
w91:
mov al,5
call line
mov ax,starty
cmp ax,y
jz w9_exit
inc ax
mov starty,ax
mov endy,ax
mov ax,endx
sub ax,1
mov endx,ax
jmp w91
w9_exit:
ret
w9 endp
;*******************产生随机数的子程序*****************************
mada proc near
mov bx,0
l1:
call dly ;made data
mov ah,2ch
int 21h
mov al,dl
cbw
mov cl,s1
div cl
mov al,ah
cbw
mov si,0
cmp array[si],ax
je l1
cmp array[si+2],ax
je l1
cmp array[si+4],ax
je l1
cmp array[si+6],ax
je l1
cmp array[si+8],ax
je l1
cmp array[si+10],ax
je l1
cmp array[si+12],ax
je l1
cmp array[si+14],ax
je l1
mov array[bx],ax ;print
add bx,2
cmp bx,18
jz exit
jmp l1
exit: ret
mada endp
;--------------------------------------------------
dly proc near ;delay
push cx
push dx
mov dx,1000
dl1:mov cx,2801
dl2:loop dl2
dec dx
jnz dl1
pop dx
pop cx
ret
dly endp
;**************** auto ***********************
autorun proc near
locate 15,1
lea dx,clear
mov ah,9
int 21h
locate 25,1
lea dx,mesg9
mov ah,9
int 21h
mov ah,7
mov al,30
mov ch,4
mov cl,5
mov dh,25
mov dl,50
mov bh,00110001b
int 10h
mov bh,0
mov dh,15
mov dl,12
mov ah,2
int 10h
lea dx,mesg5
mov ah,9
int 21h
call delay
mov si,0
mov array[si],4
add si,2
mov array[si],6
add si,2
mov array[si],2
add si,2
mov array[si],8
add si,2
mov array[si],1
add si,2
mov array[si],3
add si,2
mov array[si],5
add si,2
mov array[si],7
add si,2
mov array[si],0
mov si,0
compare si
mov si,2
compare si
mov si,4
compare si
mov si,6
compare si
mov si,8
compare si
mov si,10
compare si
mov si,12
compare si
mov si,14
compare si
mov si,16
compare si
exchange 16,14
mov si,16
compare si
mov si,14
compare si
call delay
exchange 14,12
mov si,14
compare si
mov si,12
compare si
call delay
exchange 12,6
mov si,12
compare si
mov si,6
compare si
call delay
exchange 6,0
mov si,6
compare si
mov si,0
compare si
call delay
exchange 0,2
mov si,0
compare si
mov si,2
compare si
call delay
exchange 2,8
mov si,2
compare si
mov si,8
compare si
call delay
exchange 8,6
mov si,8
compare si
mov si,6
compare si
call delay
exchange 6,0
mov si,6
compare si
mov si,0
compare si
call delay
exchange 0,2
mov si,0
compare si
mov si,2
compare si
call delay
exchange 2,4
mov si,2
compare si
mov si,4
compare si
call delay
exchange 4,10
mov si,4
compare si
mov si,10
compare si
call delay
exchange 10,16
mov si,10
compare si
mov si,16
compare si
call delay
exchange 16,14
mov si,16
compare si
mov si,14
compare si
call delay
exchange 14,12
mov si,14
compare si
mov si,12
compare si
call delay
exchange 12,6
mov si,12
compare si
mov si,6
compare si
call delay
exchange 6,8
mov si,6
compare si
mov si,8
compare si
call delay
exchange 8,10
mov si,8
compare si
mov si,10
compare si
call delay
exchange 10,16
mov si,10
compare si
mov si,16
compare si
call delay
exchange 16,14
mov si,16
compare si
mov si,14
compare si
call delay
exchange 14,8
mov si,14
compare si
mov si,8
compare si
call delay
renew
lea dx,mesg8
mov ah,9
int 21h
mov bh,0
mov dh,15
mov dl,12
mov ah,2
int 10h
lea dx,mesg7
mov ah,9
int 21h
locate 15,1
lea dx,clear
mov ah,9
int 21h
locate 15,1
lea dx,mesg7
mov ah,9
int 21h
ret
autorun endp
;------------------------------
delay proc near ;delay
push cx
push dx
mov dx,50000
dl111:mov cx,2801
dl112:loop dl112 ;What is input?
dec dx
jnz dl111
pop dx
pop cx
auto_exit:
ret
delay endp
;******************* end *****************************
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -