Re: [請益] 關於組語的隨機亂數
之前幫學弟寫的,反正也沒什麼用,
PO 上來給你參考,寫的很爛 .... >__<
C:\nasm\QOO>b16
Input a number : 10
49 25 11 19 22 14 40 27 4 13
Miss
00-10 : 4
11-20 : 13 14 19 11
21-30 : 27 22 25
31-40 : 40
41-49 : 49
---------------------------------
TITLE (.asm)
INCLUDE Irvine16.inc
.data
szInput db 0dh, 0ah, 'Input a number : ', 0
szInErr db 0dh, 0ah, 'Invalid input, please enter again!', 0
szMiss db 0dh, 0ah, 'Miss', 0
szBingo db 0dh, 0ah, 'Bingo', 0
sz0010 db 0dh, 0ah, '00-10 : ',0
sz1120 db 0dh, 0ah, '11-20 : ',0
sz2130 db 0dh, 0ah, '21-30 : ',0
sz3140 db 0dh, 0ah, '31-40 : ',0
sz4149 db 0dh, 0ah, '41-49 : ',0
ItemLen equ sz1120-sz0010
dbTotal dw 49
dbNum db 49 dup (0)
db 0 ; because 50 alignment
dbTen db 10 dup (0)
dwGuess dw 0
.code
main PROC
mov ax,@data
mov ds,ax
mov es,ax
mov cx, 49
mov bx, offset dbNum-1
fill: mov si, cx
mov byte ptr [bx+si], cl
loop fill
InAgain:
mov dx, offset szInput
call WriteString
call ReadInt
jno goodIn
mov dx, offset szInErr
call WriteString
jmp InAgain
goodIn:
mov dwGuess, ax
mov al, 0dh
int 29h
mov al, 0ah
int 29h
mov bx, offset dbNum
mov cx, dbTotal
Shuffle:xor dx, dx
in ax, 40h
div dbTotal
mov si, dx
mov di, cx
dec di
mov al, byte ptr [di+bx]
xchg byte ptr [si+bx], al
mov byte ptr [di+bx], al
loop Shuffle
mov cx, 10
push cx
mov si, offset dbNum
mov di, offset dbTen
rep movsb
pop cx
Print: dec di
mov al, byte ptr [di]
call WriteDec
mov al, ' '
int 29h
loop Print
mov cx, 10
xor ax, ax
mov al, byte ptr dwGuess
cld
repnz scasb
jz Bingo
mov dx, offset szMiss
call WriteString
jmp short Calc
Bingo: mov dx, offset szBingo
call WriteString
Calc:
mov cx, 49
mov bx, offset dbNum-1
fill2: mov si, cx
mov byte ptr [bx+si], cl
loop fill2
;008D
mov al, 0dh
int 29h
mov al, 0ah
int 29h
mov cx, 5
mov dx, offset sz0010
mov di, offset dbNum
mov si, offset dbTen
PrintItem:
push cx
push si
call WriteString
mov cx, 10
Find: push cx
push di
xor ax, ax
mov al, byte ptr [si]
push cx
mov cx, 10
cld
repnz scasb
pop cx
jnz noPrint
call WriteDec
mov al, ' '
int 29h
noPrint:
inc si
pop di
pop cx
loop Find
pop si
pop cx
add dx, ItemLen
add di, 10
loop PrintItem
exit
main ENDP
END main
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.102.131
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
請益
2
4