ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12
  1. #1
    2014/03/08
    بابلسر
    884
    343

    تولید عدد رندم زبان اسمبلی

    سلام خسته نباشید
    کسی میتونه توضیح بده چطوری باید در سطح زبان اسمبلی عدد رندم تولید کرد؟
    فرض کنید که دستور مستقیم برای تولید عدد رندم وجود ندارد
    ممنون
  2. #2
    2014/03/08
    بابلسر
    884
    343

    پاسخ : تولید عدد رندم زبان اسمبلی

    کسی نیست کمک کنه؟
  3. #3
    2013/09/03
    1,984
    630

    پاسخ : تولید عدد رندم زبان اسمبلی

    دوتا کد زیر رو امتحان کن اگه خوب نبود بگو تا یه مدل دیگه بزارم

    ; 31-bit random number
    ; primitive polynomial order 31
    ; (1)0100000 10101010 10010101 10110101 (20 AA 95 B5)
    ; shift before XOR
    rand_31:
    lsl r4 ; shift first
    rol r5
    rol r6
    rol r7
    sbrs r7,7 ; test MSB
    ret ; clear, no XOR
    ldi r24,0xB5 ; first poly byte
    eor r4,r24 ; XOR it in
    ldi r24,0x95 ; second byte of poly
    eor r5,r24
    ldi r24,0xAA ; same routine
    eor r6,r24
    ldi r24,0x20
    eor r7,r24

    ret


    و این یکی :

    ;************************************************************************
    ;* NOISE.ASM: White noise generator (output = PD6 ATmega8)
    ;************************************************************************

    .include "m8def.inc"


    rjmp RESET ;reset vector


    .def temp = r16
    .def byte0 = r17 ; 7 6 5 4 3 2 1 0
    .def byte1 = r18 ;15 14 13 12 11 10 9 8
    .def byte2 = r19 ;23 22 21 20 19 18 17 16

    .equ output = 6 ;output -> PD6




    ;* Main program

    RESET: ldi temp, high(RAMEND) ;setup stack
    out SPH, temp
    ldi temp, low(RAMEND) ;point in RAMEND
    out SPL, temp

    ;length 23bit
    ;14 cycles = 71,429 kHz @ 1MHz RC-clock
    ;repeat = 2^23/71429 = 8388608/71429 = 117,4sec

    ser temp
    out DDRD, temp ;PORTD all outputs
    ldi byte0, 0x11
    loop: mov temp, byte2
    andi temp, 0b01000010 ;17,22 1 1 1
    breq cy2 ; 2 1 1
    cpi temp, 0b01000010 ; 1 1
    breq cy1 ; 2 1
    sec ; 1
    rjmp s1 ; 2
    cy2: clc ; 1
    clc ; 1
    cy1: clc ; 1 1
    clc ; 1 1
    s1: rol byte0
    rol byte1
    rol byte2
    sbrc byte0, 0 ;if bit0 = 0,
    cbi PORTD, output ; -> PD6 lo
    sbrs byte0, 0 ;if bit0 = 1,
    sbi PORTD, output ; -> PD6 hi
    rjmp loop ; loop for ever
    قانون سوم نیوتون میگه برای اینکه بخوای به چیزی برسی باید از یه چیزی دل بکنی...

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  4. #4
    2014/03/08
    بابلسر
    884
    343

    پاسخ : تولید عدد رندم زبان اسمبلی

    خیلی ممنون فقط میشه توضیح بدید برای کد اول مقدار اولیه r4 r5 r6 r7 چنده؟همشون صفر هستند؟
    آخه اگه با ارزش ترین بیت r7 برابر صفر باشه همون اول ret میکنه
  5. #5
    2011/07/31
    504
    30

    پاسخ : تولید عدد رندم زبان اسمبلی

    سلام.
    فکر کنم با تایمر براحتی بشه رندوم تولید کرد.
  6. #6
    2014/03/08
    بابلسر
    884
    343

    پاسخ : تولید عدد رندم زبان اسمبلی

    میشه لطفاً یه نمونه کد بزارید یا الگوریتمشو بگید
  7. #7
    2013/09/03
    1,984
    630

    پاسخ : تولید عدد رندم زبان اسمبلی

    نقل قول نوشته اصلی توسط reza0506

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    خیلی ممنون فقط میشه توضیح بدید برای کد اول مقدار اولیه r4 r5 r6 r7 چنده؟همشون صفر هستند؟
    آخه اگه با ارزش ترین بیت r7 برابر صفر باشه همون اول ret میکنه
    استفاده از همین رجیسترها باعث ایجاد عدد رندوم میشه...این رجیسترها (GPR) تا قبل از 16 برای کارهای cpu هستند و مرتب مقدارشون تغییر میکنه و همین تغییر رجیسترها برای ساخت اعداد رندوم استفاده میشه
    قانون سوم نیوتون میگه برای اینکه بخوای به چیزی برسی باید از یه چیزی دل بکنی...

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  8. #8
    2014/03/08
    بابلسر
    884
    343

    پاسخ : تولید عدد رندم زبان اسمبلی

    اما دستور eor مقدار این رجیستر ها رو تغییر میده.اشکالی نداره؟
  9. #9
    2013/09/03
    1,984
    630

    پاسخ : تولید عدد رندم زبان اسمبلی

    خب تغییر هم کنه واسه کار خودتون داره تغییر مکینه...مثلا قبلا cpu یه کاری انجام داده و کارش تموم شده(ولی بعد از اتمام کارش مقادیر رجیسترها رو که ریست نمیکنه!)...حالا ما از بازمانده های کارهای قبلی cpu استفاده میکنیم...ولی اینجا که تغییر کنه در واقع داخل روتین رندوم هستیم و داره روی اون رجیستر کار میکنه..اشکالی نداره...
    قانون سوم نیوتون میگه برای اینکه بخوای به چیزی برسی باید از یه چیزی دل بکنی...

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  10. #10
    2011/07/31
    504
    30

    پاسخ : تولید عدد رندم زبان اسمبلی

    نقل قول نوشته اصلی توسط reza0506

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    میشه لطفاً یه نمونه کد بزارید یا الگوریتمشو بگید
    این عدد باید چند رقمی باشد؟تا عدد 255 باشد کافیه؟
    این عدد باید چه زمانی تولید بشه؟مثلا با زدن یک کلید یا هر دوره زمانی خاصی؟
    این یه نمونه از کد برای زمانیکه کلیدی زده میشه کدی تولید میکنه.
    کد:
    .include "m16def.inc"
    cbi ddrb,0 //portb0 input
    sbi portb,0 //portb0 pull up
    ldi r16,1<<cs00
    out tccr0,r16    //timer0 start
    clr r17
    loop1:sbic pinb,0
         rjmp loop1
         
         loop2:sbis pinb,0
         rjmp loop2    
    
    out tccr0,r17   //stop timer
    in r18,tcnt0   
    out tccr0,r16 
    rjmp loop1
    ویرایش توسط soheyl_60 : 2016/06/21 در ساعت 11:23
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12

موضوعات مشابه

  1. برنامه نویسی به زبان اسمبلی
    توسط asal2839 در انجمن برنامه نويسي و اينترفيس
    پاسخ: 1
    آخرين نوشته: 2011/08/29, 15:29
  2. زبان اسمبلی
    توسط hirad در انجمن پروسسورها
    پاسخ: 0
    آخرين نوشته: 2011/06/06, 23:50
  3. آموزش اسمبلی pic به زبان ساده
    توسط 1415614156 در انجمن میکروکنترلرهای PIC
    پاسخ: 11
    آخرين نوشته: 2010/12/27, 07:48
  4. مقدمه ای بر زبان اسمبلی ریزپردازنده های AVR
    توسط amir_moayeri در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2009/08/10, 12:41
  5. دستور تقسیم در زبان اسمبلی
    توسط Roozbehxox در انجمن برنامه نويسي و اينترفيس
    پاسخ: 0
    آخرين نوشته: 2009/04/01, 08:41

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •