: How should i use smbios.I read its PDF but there was nothing to help
: Guid please
*Everything* you need is in the PDF, you just didn't understand it.
You are probably trying to do something too complicated, especially since you are new to x86 programming. This is not easy stuff to do, especially in assembly.
Chapter 2 in the spec tells you how to access the SMBIOS information:
"On non-EFI systems, the SMBIOS Entry Point structure, described below, can be located by application software by searching for the anchor-string on paragraph (16-byte) boundaries within the physical memory address range
000F0000h to 000FFFFFh."
That means you must write a routine to search memory looking for a key signature. That key is "_SM_"
The code that I pointed you to does something similar with ACPI-it searches for a key named "RSD PTR" in the routine rsdptrSearch. If you change that key in my code to "_SM_" you will now have step 1 completed!
The address you find _SM_ + 18h is the offset of a 32bit pointer to where all the SMBIOS data lives in memory. There is other information in this table that you will also want to know (SMBIOS version at _SM_+6, # of tables at _SM_+1ch)
From DOS (or other real mode environment) in order to access the data at that high location in memory, you will need to put the CPU into protected mode. I put it into flat real mode in my example code. (routine is called himeminit)
From there it's a matter of reading the data out of memory and displaying it the way you want. The structure of each table is defined in section 3.
My ACPI code does the same type of work. If you download the ACPI specification you will find it is very similar in the way tables are organized in memory, and that may help you understand my code a little better too.