Saturday, 15 March 2014

assembly - Accessing memory at 0xF000FFFE (computer type) in fasm (MS-DOS) -



assembly - Accessing memory at 0xF000FFFE (computer type) in fasm (MS-DOS) -

the problem is: need 'computer' type bios memory. know, can way in fasm (my programme , segments 16 bits):

mov al, [0xf000fffe]

but returnes 0 , not right, because equivalent code in turbo c++ 3.1

uchar pctype = *((uchar*)0xf000fffe);

returnes right 'type' of computer, when using big model (in code generation settings). how prepare in fasm ? (for illustration know, masm has .model directive, there no such thing in fasm). please, help...

it works in turbo c because interprets 32-bit value segment:offset pair , not flat pointer. if want utilize flat pointer, should utilize address 0xfffffffe (if flash memory mapping has not been disabled bios), or 0xffffe linear memory address corresponding pointer f000:fffe. both of these work in unreal mode since utilize offsets greater 64k, not possible in plain real mode. easiest utilize plain 16-bit segment:offset addressing mention in comment, since work.

assembly x86 ms-dos fasm

No comments:

Post a Comment