3. Chương trình Assembly đầu tiên:
Chương trình sau đây in xâu Welcome to tuhocanninhmang.com ra màn hình:
section .tex
global _start
_start: ; điểm bắt đầu của chương trình
mov edx, len ; đặt độ dài của msg vào edx
mov ecx, msg
mov ebx, 1
mov eax, 4 ; gọi hàm 04 của ngắt 80h
int 0x80 ; để in xâu ra màn hình
; -------------------------
mov eax,1 ; gọi hà 01 của ngắt 80h
int 0x80 ; để kết thúc chương trình
section .data
msg db 'Welcome to tuhocanninhmang.com', 0xa
len equ $ - msg ; biến len chứa độ dài của xâu msg
Chương trình này sử dụng hàm 04 của ngắt 80h để in xâu và hàm 01 của ngắt 80h để kết thúc chương trình (bắt buộc đối với mọi chương trình). Điểm bắt đầu của chương trình là lệnh sau label _start.
4. Biên dịch và liên kết chương trình trong NASM
Chuẩn bị:
Tạo một thư mục trên đĩa (trên Linux hoặc trên Windows), và rồi copy vào đó tập tin chính của chương trình biên dịch NASM và các tập tin liên quan (D:\ASM).
Thực hiện:
B1: Sử dụng bất kỳ trình soạn thảo nào để viết chương trình, chỉ cần lưu tập tin với phần mở rộng là asm vào thư mục D:\ASM. Ví dụ: hello.asm.
B2: Dịch chương trình hello.asm ra hello.exe:
- Từ cửa sổ CMD, chuyển đến thư mục D:\ASM
- Tại dấu nhắc gõ:
NASM -f elf hello.asm
- Nếu không bị lỗi thì một tập tin đối tượng (kết quả dịch) được hình thành:hello.o
B3: Liên kết các tập tin đối tượng và tạo tập tin thực thi:
ld -m elf_i386 -s -o hello hello.o
B4: Chạy thử. Nếu không như mong muốn thì quay lại trình soạn thảo để chỉnh sửa chương trình sau đó tiến hành lại từ Bước 2.
(Còn tiếp)
» Tin mới nhất:
» Các tin khác: