Lập trình Assembly trên Nasm part 1

khanhhoangbkdn

VIP Members
07/10/2016
34
65 bài viết
Lập trình Assembly trên Nasm part 1
Các bạn tham khảo tài liệu asm tại link :
https://whitehat.vn/threads/tong-hop-tai-lieu-hoc-assembly-tren-nasm.8566/

Cấu trúc của một chương trình asm:
Mã:
segment .data                                  ;;chứa dữ liệu khai báo 
segment .bss                                    ;;chứa dữ liệu input và các biến sử dụng trong chương trình 
segment .code                                  ;;vùng mã lệnh 
    global main
    main:
      push ebp                                 ;tương đương int main(){
      mov ebp,esp
      
      ;......phần code Assembly                                        
                                                                                 

      leave                                      ;bằng  mov esp,ebp >> pop ebp
      ret                                          ;tương đương return 0;

Để biên dịch trên linux 64 bit :
nasm -f elf32 ex6.asm
ld -m elf_i386 ex6.o -o ex6

Để biên dịch trên linux 32 bit :
nasm -f ex6.asm
ld -m elf ex6.o -o ex6

Ví dụ về chương trình asm đơn giản các bạn có thể tham khảo :
Mã:
segment .data
    operchar db '+',0
    msg db "Math %d %c %d = %d",10,0
segment .code

extern printf
global main

main:
    push ebp
    mov ebp,esp

    sub esp,4
    mov eax,8
    mov edx,4
    push eax
    add eax,edx
    mov ecx,eax
    pop eax
    push ecx
    push edx
    push dword [operchar]
    push eax
    push msg
    call printf
    add esp,20
    leave
    ret
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: NgMSon
Viết chương trình cho phép in chuỗi ký tự: "Hello NASM"
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Thẻ
assembly lập trình assembly nasm
Bên trên