Re: [請益] 關於組語的隨機亂數

看板Programming作者 (zha0)時間17年前 (2008/06/02 00:50), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
之前幫學弟寫的,反正也沒什麼用, 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
文章代碼(AID): #18GjDZG3 (Programming)
文章代碼(AID): #18GjDZG3 (Programming)