Assembly là gì ?
- Mỗi máy tính cá nhân đều có một bộ vi xử lý để quản lý số học(arithmetical),logic(logical) và các hoạt động điểu khiển(control) của máy tính;
- Mỗi họ vi xử lý có một bộ chỉ dẫn(instructions) riêng cho các hoạt động xử lý khác như nhập vào bàn phím, xuất thông tin ra màn hình và nhiều công việc khác. Những thiết lập chỉ dẫn này được gọi là 'machine language instructions';
- Một vi xử lý chỉ hiểu được các chỉ dẫn chuỗi 0 và 1. Tuy nhiên,để lập trình như thế thì quá phức tạp cho việc phát triển phần mềm. Vì thế nên ngôn ngữ cấp thấp assembly được thiết kế cho họ vi xử lý;
Lợi ích của Assembly
- Làm thế nào để lập trình giao diện với hệ điều hành,vi xử lý và BIOS;
- Biết cách dữ liệu được biểu diễn trong bộ nhớ và các thiết bị ngoại vi khác(external devices);
- Cách vi xử lý(processor) truy nhập và thực thi chỉ dẫn(executes instruction);
- Cách instructions truy nhập và xử lý dữ liệu;
- Lập trình truy nhập vào thiết bị ngoài;
- Yêu cầu ít bộ nhớ và thời gian thực thi(execution time);
- Làm các công việc theo cách dễ dàng;
- Phù hợp cho các nhiệm vụ cấp thiết;
Đặc trưng cơ bản của phần cứng PC
- Các phần cứng chính trong một PC gồm: Vi xử lý(processor),bộ nhớ(memory) và thanh ghi(register);
- Register chứa data và address. Để thực thi 1 chương trình, hệ thống copy chương trình từ bên ngoài vào bộ nhớ trong. Sau đó vi xử lý thực thi chương trình theo các instructions.
- Vi xử lý hỗ trợ các kích cỡ data:
- Word : 2 byte
- Doubleword: 4 byte (32 bit)
- Quadword: 8 byte (64 bit)
- Paragraph: 16 byte (128 bit)
- Kilobyte: 1024 byte
- Megabyte: 1,048,576 byte
Địa chỉ dữ liệu trong bộ nhớ
- Tiến trình thông qua bộ điểu khiển vi xử lý thực thi instructions được gọi là fetch-decode-execute cycle.
- Nạp(fetch) instructions từ bộ nhớ;
- Giải mã hoặc nhận dạng instruction;
- Thực thi;
Vi xử lý có thể truy nhập 1 hoặc nhiều byte cùng lúc. Ví dụ có số hexa 0725H. Số này cần 2 byte. Byte cao là 07 và byte thấp là 25. Processor lưu dữ liệu bằng cách đảo ngược chuỗi trước. Vì vậy nếu processor đưa giá trị 0725H từ thanh ghi tới bộ nhớ thì nó sẽ chuyển 25 đầu tiên tới địa chỉ thấp rồi tới 07
- Có 2 loại bộ nhớ địa chỉ:
- Địa chỉ tuyệt đối(Absolute address) - Tham chiếu trực tiếp đến vùng cụ thể;
- Địa chỉ phân đoạn(Segment address or offset) - Địa chỉ bắt đầu của một đoạn bộ nhớ với giá trị offset;