Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. push %esi #Save non-general-purpose registers
  2. push %edi #Save non-general-purpose registers
  3. push %ebp #Save non-general-purpose registers
  4.  
  5. movl FILE, %edi #Move file descriptor into edi
  6. movl $0, %ebp #Offset to 0
  7. movl $0x2, %esi #MAP_PRIVATE
  8. movl $0x3, %edx #PROT_READ
  9. movl FSIZE, %ecx #File length
  10. movl $0, %ebx # *addr = NULL
  11. movl $90, %eax #mmap Sys Call
  12. int $0x80 #Call kernel
  13. test %eax, %eax #Error check
  14. js _error
  15.  
  16. %define XRes 400h
  17. %define YRes 300h
  18. %define Mapsize (XRes*YRes*4) ; 1024x768x32
  19.  
  20. section .text
  21.  
  22. call MAP_FB ; mmap
  23.  
  24. ;----------- Subroutine----
  25. MAP_FB: mov eax, 5 ; syscall nr: open
  26. xor edx, edx
  27. mov ebx, DEVICE ; pointer/offset auf File/Device-Name
  28. mov ecx, 2 ; /usr/include/bits/fcntl.h = O_RDWR
  29. int 80h
  30. mov [FD], eax ; File discriptor
  31. mov ebx, MMAP
  32. mov eax, 5Ah ; mmap(90)
  33. int 80h
  34. mov esi, eax ; pointer mmap-FRAMEBUFFER
  35. ret
  36.  
  37. section .data
  38. DEVICE DB "/dev/fb0", 0, 0, 0, 0
  39.  
  40. MMAP: DD 0 ; start - suggest memory address to allocate
  41. DD Mapsize ; length
  42. DD 3 ; prot (PROT_READ + PROT_WRITE)
  43. DD 1 ; flags (MAP_SHARED = 1)
  44. FD: DD 0 ; file discriptor(handle)
  45. DD 0 ; offset into file to start reading
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement