说我必须生成20个随机坐标,20行和20列数 .
.model small
.data
;///////////////////// VARIABLES
;array of colors
color db 01h,02h,03h,04h,05h,06h,0Ah, 0Bh, 0Ch,0Dh,0Eh, 0Fh ;12 colors.
star_char db '*', '$'
;coordinates for star.
;center coordinates
row_star db 20 dup(?)
col_star db 20 dup(?)
gen_row_star db ?
gen_col_star db ?
;star coordinates
go_up db 20 dup(?)
go_down db 20 dup(?)
go_right db 20 dup(?)
go_left db 20 dup(?)
; create temporary storage variables
temp_row_star db 20 dup(?)
temp_col_star db 20 dup(?)
temp_go_up db 20 dup(?)
temp_go_down db 20 dup(?)
temp_go_right db 20 dup(?)
temp_go_left db 20 dup(?)
;boom coordinates
delaytime db ?
delay_star db 10
delay_printing db 3
.stack 100h
total_blink db 5
total_print db 20
;///// Main code:
.code
delay proc
;randomize time 5-15secs
mov ah, 00h
int 1ah
mov ax,dx
xor dx,dx
mov cx, 10
div cx
add dl, 15
mov delaytime, dl
mov ah, 00
int 1Ah
mov bx, dx
jmp_delay:
int 1Ah
sub dx, bx
cmp dl, delaytime
jl jmp_delay
ret
delay endp
random_coor_star proc
mov ah, 00h
int 1ah
mov ah, 00h
int 1ah
mov ax,dx
xor dx,dx
mov cx,10
div cx
add dl, 5
mov al,dl
mov gen_row_star,al
mov ah, 00h
int 1ah
mov ah, 00h
int 1ah
mov ax,dx
xor dx,dx
mov cx,50
div cx
add dl,5
mov al,dl
mov gen_col_star,al
random_coor_star endp
clear proc near
;set video mode + clear screen + stop cursor blinking
mov al, 03h
mov ah, 00h
int 10h
mov cx, 3200h ;stop cursor blinking
mov ah, 01h
int 10h
ret
clear endp
complete_print macro r,c,char,color
mov dh, r
mov dl, c
xor bh,bh
mov ah,02h
int 10h
mov al, char
mov bh, 0
mov bl, color
mov cx, 1
mov ah, 09h
int 10h
endm
main proc
mov ax, @data
mov ds, ax
mov al, 03h
mov ah, 00h
int 10h
;generate 20 numbers and store in each variable.
mov bl,0
transfer:
call random_coor_star
mov dl, gen_row_star
mov [row_star+bx],dl
mov dl, gen_col_star
mov [col_star+bx],dl
call delay
cmp bx,20
jl transfer
mov ax, 4c00h
int 21h
main endp
end main
有没有办法可以显示我存储在数组中的所有数字?尝试使用偏移但没有工作 .
1 回答
接下来是一个显示数字数组的小程序(EMU8086 Intel sytanx):
现在以前的代码与你的随机proc,它首先用40个随机数(20对X,Y)填充数组,并显示它们: