نمایش نتایج 1 تا 3 از 3

نام تاپیک: خواندن بایوس در اسمبلی ؟

  1. #1

    خواندن بایوس در اسمبلی ؟

    به نام حق
    سلام ... میخواستم بپرسم تو اسمبلی آیا امکان این هست که سریال مادربرد یا سریال هارد دیسک یا CPUID رو که جزو مشخصات ثابت هر سیستم و متفاوت با سیستم دیگه ای هست رو بدست آورد ؟

  2. #2

    page 55, 132

    ; FUNCTION: cpu_check
    ;
    ; Attempt to discover the type of CPU. Use MASM 5.1 or greater.
    ; Returns 86 for 8088/8086, 286 for 80286, 386 for 80386/80486.
    ;
    ; Requires MASM 5.1 or later or equivalent
    ;
    ; Assemble with: MASM /Mx /z ...
    ; TASM /jMASM /mx /z ...
    ;

    % .MODEL LARGE,C ;Add model support via
    ;command line macros, e.g.
    ;MASM /Dmemodel=LARGE

    .CODE
    ;
    ; int cpu_check(void) - returns 86, 186, 286, 386
    ;

    PUBLIC cpu_check

    cpu_check PROC USES BX
    pushf
    xor ax,ax ; zero ax
    push ax
    popf ; try to put 0 into flags
    pushf
    pop ax ; see what went in flags
    and ax,0f000h ; mask off high flag bits
    cmp ax,0f000h ; was high nibble ones
    je _86 ; is 8086 or 8088
    push sp ; see if sp is updated
    pop bx ; before or after it is
    cmp bx,sp ; pushed
    jne _186
    mov ax,0f000h ; try to set high bits
    push ax
    popf ; in the flags
    pushf
    pop ax ; look at actual flags
    and ax,0f000h ; any high bits set?
    je _286 ; is 80286
    _386:
    .386 ; enable 386 instructions

    pushfd ; save extended flags
    mov eax,040000h
    push eax ; push 40000h onto stack
    popfd ; pop extended flags
    pushfd ; push extended flags
    pop eax ; put in eax
    and eax,040000h ; is bit 18 set?
    jne _486 ; yes, it's a 486
    mov ax,386 ; no, it's a 386
    jmp _386x
    _486:
    mov ax,486
    _386x:
    popfd ; clean the stack
    jmp ccexit
    _286:
    mov ax,286 ; is an 80286
    jmp ccexit
    _186:
    mov ax,186 ; is an 80188/80186
    jmp ccexit
    _86:
    mov ax,86 ; is an 8088/8086
    ccexit:
    popf ; restore original flags
    ret ; return

    cpu_check ENDP

    end

    ببخشید که کمی قدیمی هست ولی دیگه کاری بیشتر اتز این از من بر نمیاد اصلا هم وقت ندارم تا روش کار کنم :oops:

  3. #3
    کاربر دائمی آواتار MSK
    تاریخ عضویت
    تیر 1383
    محل زندگی
    فعلا تهران - بعدا خدا می‌دونه!
    پست
    331
    دو تا کتاب بهت پیشنهاد می کنم:
    نام:برنامه نویسی و زبان اسمبلی
    نویسنده:پیتر ایبل
    انتشارات:نشر نما
    ---------------------------------------------------
    نام:ریز پردازنده پنتیوم
    نویسنده:جیمز آنتونیکوس
    انتشارات:انتشارات نما

قوانین ایجاد تاپیک در تالار

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