Some years ago, Assembly Language was very popular. I used TASM , MASM and Microsoft Debug on that time. I think Debug one of the very powerful tools for cracking.
I just figure out, is there any Assembly Language in Linux?
Because, usually Assembly Language use DOS and BIOS Interrupt Services.
I finally found a good application, named NASM (Net wide Assembler). I have tried the sample codes from http://leto.net/writing/nasm.php.
NASM doesn’t have a text editor, so you can use your familiar text editor then save the file with .asm file extension.
There are few main differences to be considered when you use assembly language in Linux:
* In DOS mostly you use interrupt int 21h, int 10h and int 16h. In Linux, everything is handled by kernel with int 80h.
*Linux is a 32-bit protected mode operating system, so have to use extended 32-bit registers, such as EAX, EBX, ECX and so on. In 16-bit register, you still use AX, BX,CX etc …. registers.
*In 32-bit programming, you don’t have to think about segments at all because it runs in the flat memory model.
*I think no body write DOS assembly anymore. Hey… it’s 16 bit.
How I can get Nasm?
NASM is listed in Ubuntu Repository, so just download it using apt.
vishnu@vishnu-desktop:~$ sudo apt-get install nasm
Write your first Linux Assembly Language Application
Here I will Show you a step by step example for Displaying "hello World"
Step 1. Type the code
You can use, vim, vi, gedit etc. The extension must be .asm.
vishnu@vishnu-desktop:~$ sudo vim hello.asm
section .data
hello: db ‘Hello world!’,10
helloLen: equ $-hello
section .text
global _start
_start:
mov eax,4
mov ebx,1
mov ecx,hello
mov edx,helloLen
int 80h
mov eax,1
mov ebx,0
int 80h
save the file.
Actually, I’m new myself in Assembly Programming in Linux. I took the codes above from the NASM website. I just wanna show you that we can do Assembly Programming in Linux. If you want to know deeper you can go
to this link: ……………………..
Step 2. Compile .asm (source code) to .o (object)
vishnu@vishnu-desktop:~$ nasm -f elf hello.asm
Step 3. Link the object file to produce an executable file.
vishnu@vishnu-desktop:~$ ld -s -o hello hello.o
Now, you have 3 files, hello.asm (your source code), hello.o (your object file) and hello (your program).
Step 4. Ready to run
You can run your program by typing:
vishnu@vishnu-desktop:~$ ./hello
Hello world!
Congratulations! You have just written your first assembly program in Linux.
If you want to know more details about nasm and ld, you can see the manual.
vishnu@vishnu-desktop:~$ man ld
vishnu@vishnu-desktop:~$ man nasm
No comments:
Post a Comment