- vừa được xem lúc

[ 11 Days with Assembly ] - Buổi 1: Introduction

0 0 12

Người đăng: Kinabler

Theo Viblo Asia

Lời chào!

Hello mọi người, giữ đúng lời hứa với mọi người thì hôm nay là ngày chúng ta bắt đầu với thử thách 11 ngày học assembly. Có thể các bạn thấy kiến thức quá nhiều và không thể nhớ hết được thì có thể lưu về rồi đọc dần dần 😊

Nguồn cảm hứng

Tháng 5 tới này, viblo sẽ có 1 sự kiện thú vị để rinh rất nhiều phần quà hấp dẫn nên mình cũng muốn làm một cái gì đó có ích. Bỗng một buổi tối mình nghĩ ra thể loại series thử thách học tập này. Một phần để làm động lực cho bản thân mình trên con đường học hành, một phần vì thỏa mãn đam mê (thực ra là mới thay bàn phím nên gõ nghe thích :>>). Nhưng mà đó chỉ là phụ thôi. Chính thì là để phục vụ cho công việc sau này của mình đỡ vất vả và cho tất cả mọi người, những ai cảm thấy sì trét vì môn học này trông rất là aomacanada. Vậy nên ngay tối đó mình đã ngồi bật dậy và lên bài cho thử thách trên Group của Viblo và được mọi người quan tâm. Mình vui lắm 😜.

Nó có nặng không?

Mình sẽ trả lời luôn là nó có thể nặng với một số bạn kiểu lập trình ngôn ngữ bậc cao nhanh gọn lẹ xong sang lập trình ngôn ngữ bậc thấp cảm thấy sốc vì nó dài :v. Nếu bạn như vậy thì khởi đầu của bạn khá giống mình. Lần đầu mình tiếp xúc là khoảng 9 tháng trước, nhưng mà phải bỏ học vì nó vừa dài vừa khó như ví dụ dưới đây

int square(int num) { return num * num;
}

⬇️ assembly:
image.png
Đây là ngày đầu tiên nên bạn chưa cần vội hiểu những gì bạn thấy 🥺. Tôi chỉ cần bạn hiểu về sự phức tạp của nó là được rồi.
==> Nếu có khó hiểu quá thì bạn cứ comment vào phía bên dưới ấy, mình sẽ tranh thủ trả lời bạn.

Bạn cần chuẩn bị gì?

Thì do mình chủ yếu đọc các file thực thi ELF nên mình sẽ chọn nasm để bắt đầu thử thách này.

Nói qua một chút thì nasm thì nó thường xuất hiện ở các os như ubuntu or linux.
Còn masm thì nó là một sản phẩm của Microsoft. nên nó sẽ xuất hiện trên windows
2 ngôn ngữ này có 1 chút khác biệt. Nếu bạn học được nasm thì masm sẽ rất dễ để học.

  • Công cụ thứ nhất: một hệ điều hành linux hoặc một máy ảo sử dụng hệ điều hành linux hoặc bạn có thể cài windows subsystem for linux để có trải nghiệm tốt nhất. <important>
    Đây là video mình tự làm để hướng dẫn mọi người cài đặt hệ điều hành trên máy ảo mình để đây để mọi người tham khảo.
  • Công cụ thứ hai: vim editor <sử dụng để soạn code>
    Về cơ bản thị bạn chỉ cần nắm vũng những thứ trong video dưới đây là có thể bắt đầu: https://www.youtube.com/watch?v=s97zKC4WI9s
  • Công cụ thứ ba: một tâm hồn thật mạnh mẽ để đối mặt với chúng 😁

Lời kết:

Bài viết này mình không giới thiệu kiến thức gì bởi vì mình muốn mọi người chuẩn bị những thứ ở bên trên tốt nhất có thể. Đó là điều kiện tiên quyết cho series học này của chúng ta!! Hẹn gặp lại mọi người vào ngày mai. Nội dung ngày thứ hai của chúng ta sẽ bao gồm:

  • Giới thiệu qua về ngôn ngữ Assembly và hệ thống chữ số.
  • Set up môi trường để lập trình.

Bạn có thể tự tham khảo nó trước khi đọc blog tiếp theo của mình để hiểu clear nhất.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tự viết Emulator: CHIP-8 Interpreter

Tự viết Emulator: CHIP-8 Interpreter. Nhắc đến game giả lập, chắc không ai lạ gì và ai cũng từng chơi qua (giả lập NES, Gameboy, PS1, PS2,.

0 0 16

- vừa được xem lúc

Shellcode - Hướng dẫn tạo shellcode đơn giản

1. Các bước để thực hiện 1 system call.

0 0 13

- vừa được xem lúc

Logical instruction and Condition in Assembly

Logical Instructions. Có thể bạn đã nghe qua các phép toán logic trong các ngôn ngữ lập trình phổ biến như là c và c++.

0 0 15

- vừa được xem lúc

Áp dụng cách chạy assembly của CPU vào coding cho python

1. Giới thiệu.

0 0 3