PDA

View Full Version : بدست آوردن عدد تصادفی



هم دانشگاهی
جمعه 05 خرداد 1391, 12:35 عصر
سلام چگونه عدد تصادفی ایجاد کنیم

MostafaMohammadi
جمعه 05 خرداد 1391, 14:04 عصر
روش های زیادی هست که می تونی با زبان اسمبلی پیاده سازی کنی و توابع مختلفی هست که عدد تصادفی تر تولید می کنند. ولی یکی از ساده ترین راه‌هاش اینه که با سرویس 01h دستور INT 1Ah ساعت رو بخونی. این وقفه میلی ثانیه رو میریزه تو ثبات CL، حالا تو می تونی یه سری عملیات ریاضی روش انجام بدی تا اون عدد رو به فرمت دلخواه ات تغییر بدی. (منظورم از فرمت اینه که مثلا عدد تصادفی مورد نظر ات یه رقمی باشه یا زوج باشه یا بین بازه 100 تا 300 باشه و ...)

p30_code
جمعه 05 خرداد 1391, 22:04 عصر
با استفاده از ساعت سیستم عدد تصادفی ایجاد میشه.این هم سورس کد
; multi-segment executable file template.

data segment
; add your data here!
pkey db " "
ends

stack segment
dw 128 dup(0)
ends

code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax

mov ah,2ch
int 21h
mov al,dl
mov bl,dh
add al,bl

mov ah,0
mov cl,100


div cl
mov bl,ah

mov ah,2
mov dl,al
add dl,50
int 21h

sub bl,50
sub al,50
add bl,dl
add al,dh

mov ah,0
mov cl,10
div cl
mov bl,ah


mov ah,2
mov dl,al
add dl,50
int 21h

mov ah,2
mov dl,bl
add dl,50
int 21h



lea dx, pkey
mov ah,9h
int 21h


mov ah, 1
int 21h

mov ax, 4c00h
int 21h
ends

end start

MostafaMohammadi
جمعه 05 خرداد 1391, 23:22 عصر
p30_code (http://barnamenevis.org/member.php?251339-p30_code) عزیز،
ضمن تشکر بابت به اشتراک گذاشتن کد ات، ولی کد ات درست نیست، خیلی وقت ها توی خروجی رشته غیر عددی چاپ میشه، مخصوصا ":" و ";" دار.

p30_code
یک شنبه 07 خرداد 1391, 18:34 عصر
مشکل اش را برطرف کنید. :متفکر:

xman_1365_x
یک شنبه 07 خرداد 1391, 19:10 عصر
شرط بزارید در بازه اعداد باشه ،بزرگتر از کد اسکی اعداد نشه
8 + 50 = 3ah = ':'
9 + 50 = 3bh = ";"
pkey db " $"


موفق باشی:چشمک: