跪求高手指导汇编程序!!!!!!!!!!!!!!!
这个程序是在屏幕第一行(上一行是第0行)随机产生80个字母,然后从随机位置的一个字母下落到屏幕下方,知道80个字母落完,产生随机位置N时,防止此位置没字母(即覆盖了的黑色字母),要从头开始找第N个非黑色的字母下落,所以加了一个子程序ZHAO,但这个子程序不起作用,找不出原因,跪求高手指教,不胜感激!!!!!! DATA SEGMENT line db 1 lei db 0 lei1 db 0 shengb db 0 sum db 0 DATA ENDS STACK1 SEGMENT STACK dw 256 dup (?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START: mov ax,data MOV DS,AX MOV AH,0 MOV AL,12H INT 10H mov cx,80 ;第一行随机80个字母(上一行是第0行) lop: push cx mov bx,26 call suiji mov al,bl mov ah,02h mov bh,0 mov dh,1 mov dl,lei add lei,1h int 10h add AL,41H MOV BH,0 MOV BL,2 MOV CX,1 MOV AH,9 INT 10H mov ch,1 lop2: push cx mov cx,0ffffh mov dx,0 mov ax,2 mov bx,2 lop1: mul bx loop lop1 pop cx loop lop2 pop cx loop lop mov shengb,80 mov cx,80 lop4: push cx mov bl,shengb call suiji call zhao mov lei,bl mov dl,lei mov dh,1 mov bh,0 mov ah,2 int 10h mov ah,8 int 10h mov line,1 mov cx,27 lop3: push cx call qq pop cx loop lop3 dec shengb pop cx loop lop4 MOV AH,1 INT 21H MOV AH,0 MOV AL,3 INT 10H MOV AH,4CH INT 21H suiji proc ;产生要下落的第N列 push ax push cx push dx mov ah,2ch int 21h mov ax,dx mov ah,al mov dx,0 div bx mov bx,dx POP DX POP CX POP AX ret suiji endp qq proc ;第N列下落 MOV BH,0 MOV DH,line MOV DL,lei MOV AH,2 INT 10H MOV BH,0 MOV BL,0 MOV CX,1 MOV AH,9 INT 10H inc line MOV BH,0 MOV DH,line MOV DL,lei MOV AH,2 INT 10H MOV BH,0 MOV BL,2 MOV CX,1 MOV AH,9 INT 10H push ax mov cx,001ffh lopq2: push cx mov cx,0ffffh mov dx,0 mov ax,2 mov bx,2 lopq1: mul bx loop lopq1 pop cx loop lopq2 pop ax ret qq endp zhao proc ;找第N个不是黑色的字母 mov lei1,0 mov sum,0 mov cx,80 lopzhao: push cx mov ah,2 mov bh,0 mov dh,1 mov dl,lei1 int 10h mov ah,8 int 10h cmp ah,0h je lz1 cmp sum,bl je lz2 inc sum lz1: inc lei1 pop cx loop lopzhao lz2: pop cx mov bl,shengb sub bl,cl ret zhao endp CODE ENDS END START 请指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
定义一个数组吧,记录状态
答:QBasic简单一点详情>>