PDA

View Full Version : خواندن بایوس در اسمبلی ؟



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

Best Programmer
پنج شنبه 08 مرداد 1383, 13:49 عصر
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:

MSK
جمعه 09 مرداد 1383, 14:51 عصر
دو تا کتاب بهت پیشنهاد می کنم:
نام:برنامه نویسی و زبان اسمبلی
نویسنده:پیتر ایبل
انتشارات:نشر نما
---------------------------------------------------
نام:ریز پردازنده پنتیوم
نویسنده:جیمز آنتونیکوس
انتشارات:انتشارات نما