| | |
Segmentation fault || Istruction OUT
Please support our Assembly advertiser: Programming Forums - DaniWeb Sister Site
![]() |
•
•
Join Date: Jul 2006
Posts: 2
Reputation:
Solved Threads: 0
Hi all..
Why the istruction out give me a segmentation fault ?? :rolleyes:
This is the enteire code
oh, i use linux...
Assembly Syntax (Toggle Plain Text)
mov al, 0xB6 out 0x43, al
Why the istruction out give me a segmentation fault ?? :rolleyes:
This is the enteire code
Assembly Syntax (Toggle Plain Text)
section .data hello: db 'Hello world!',10 ; 'Hello world!' plus a linefeed character helloLen: equ $-hello ; Length of the 'Hello world!' string ; (I'll explain soon) section .text global _start _start: mov eax,4 ; The system call for write (sys_write) mov ebx,1 ; File descriptor 1 - standard output mov ecx,hello ; Put the offset of hello in ecx mov edx,helloLen ; helloLen is a constant, so we don't need to say ; mov edx,[helloLen] to get it's actual value int 80h ; Call the kernel xor al, al mov al, 0xB6 out 0x43, al xor al, al mov al, 54 out 0x42, al xor al, al mov al, 124 out 0x42, al xor al, al in al, 0x61 or al, 3 out 0x61, al xor al, al mov eax,1 ; The system call for exit (sys_exit) mov ebx,0 ; Exit with return code of 0 (no error) int 80h
oh, i use linux...
•
•
Join Date: Jun 2005
Posts: 14
Reputation:
Solved Threads: 0
Linux runs in 32bit protected mode whre all ports are blocked .
The code u r showing will only gonna work in real mode (i.e. 16 bit , MsDos style).
If you really need to execute in/out instruction then consider coding the above prog as a device driver or kernel moddule .
Linux will give u access to ports in Ring 0 only ,where driver runs.
The code u r showing will only gonna work in real mode (i.e. 16 bit , MsDos style).
If you really need to execute in/out instruction then consider coding the above prog as a device driver or kernel moddule .
Linux will give u access to ports in Ring 0 only ,where driver runs.
•
•
Join Date: Jul 2006
Posts: 2
Reputation:
Solved Threads: 0
•
•
•
•
Originally Posted by thandermax
Linux runs in 32bit protected mode whre all ports are blocked .
The code u r showing will only gonna work in real mode (i.e. 16 bit , MsDos style).
If you really need to execute in/out instruction then consider coding the above prog as a device driver or kernel moddule .
Linux will give u access to ports in Ring 0 only ,where driver runs.
SO, i cannot execute OUT and IN command in linux ??
:eek:
Hi,
There are some 3rd party drivers that let you access IO ports through them, but you call a function on their DLL not the OUT opcode.
Loren Soth
There are some 3rd party drivers that let you access IO ports through them, but you call a function on their DLL not the OUT opcode.
Loren Soth
Best regards,
Loren Soth
Crimson K. Software _________________________________________________________________ Crimson K. Blog
Loren Soth
Crimson K. Software _________________________________________________________________ Crimson K. Blog
![]() |
Similar Threads
- segmentation fault (C)
- Access Violation (Segmentation Fault) + atol (C++)
- unix/C++ segmentation fault (C++)
- what is the best way to track segmentation fault errors (C++)
Other Threads in the Assembly Forum
- Previous Thread: Clock cycles
- Next Thread: Please help with the assembly code
Views: 3057 | Replies: 4
| Thread Tools | Search this Thread |
Tag cloud for Assembly
3d 68hc11 6811 80386 :( adress array asm assembler assembly boot bootloader buffer compression cursor debug directory division docs dos draw emulator endtask error exceptions file int10h integer intel interrupt interrupts language loop newbie nohau osdevelopment print program range read remainder shape string text theory tsr x86





