From: Daniel R. B. <joe...@re...> - 2004-02-02 23:57:02
|
On Sun, 1 Feb 2004, Robert LeBlanc wrote: > To all: > I am a student working on a particular lab that has been written for DOS > assembly. I would like to attempt to write the lab in Linux assembly though. > The lab involves reading memory 0046Fh-0046Ch to get the system Timer Ticks. > I can not seem to read this memory location in Linux. I have tried moving > the value 0x0046c into ebx and then move ax,[ebx] to try to read the memory > location. I get a segmentation fault when running the program. I have looked > all over the net and can't seem to find if that is protected and not > readable or if there is a kernel call that can do the same thing. Any help > that you can provide would be appreciated. Robert, Have you by any chance read the book "Linux Assembly Language Programming"? It's a great read, and unfortunately quite short (~300 pages)... It explains how to integrate NASM/ASM code and C code to write device drivers, etc. which is required to access this kind of memory, because it needs Kernel access.. no userland program you write is ever going to be able, even if run as root, to access this kind of thing, due to the virtual memory mapping that Linux uses.. you have to basically write your own system calls, and then call those from C or assembly code.. Danny = Daniel Blair = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - db...@re... - [http://www.realcoders.org] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |