Học viện kỹ thuật quân sự
Chào mừng bạn đến với 4rum của lớp ĐTVT7B - HVKTQS
Chúc bạn một ngày tốt lành !
Đăng nhập nào ^^ !
@New member : nhớ kích hoạt E-mail nha !
Học viện kỹ thuật quân sự
Chào mừng bạn đến với 4rum của lớp ĐTVT7B - HVKTQS
Chúc bạn một ngày tốt lành !
Đăng nhập nào ^^ !
@New member : nhớ kích hoạt E-mail nha !
Học viện kỹ thuật quân sự
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Học viện kỹ thuật quân sự

Diễn đàn giao lưu của tập thể lớp ĐTVT 7B - Học viện kỹ thuật quân sự
 
Trang ChínhPortalLatest imagesTìm kiếmĐăng kýĐăng Nhập
-->

Share|

L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ

Tác giảThông điệp
L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ Post_left_topL ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ Post_right_top
Clover
Administration

Administration

Clover

Status:
Tổng số bài gửi : 747
Join date : 11/07/2010
Age : 35
Đến từ : HN

L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ 2 L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ 1
Bài gửiTiêu đề: L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ I_icon_minitimeWed Mar 02, 2011 7:44 pm

Clover nói:

L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ Post_t10 L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ Post_t12
L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ

Trong phần Kiến trúc máy tính, chúng ta đã tìm hiểu về cấu trúc và tập lệnh của bộ vi xử lý x86. Trong phần này chúng ta sẽ tìm hiểu cách lập trình Assembly cho các hệ vi xử lý x86 của Intel. Sở dĩ ta dùng ngôn ngữ lập trình Assembly để viết phần mềm cho hệ vi xử lý là vì nó có các ưu điểm sau:
- Sử dụng trực tiếp tập lệnh của bộ vi xử lý nên quá trình điều hành chức năng rất sát với cấu trúc phần cứng của hệ thống, tận dụng triệt để khả năng của phần cứng mà không một ngôn ngữ lập trình bậc cao nào làm được.
- Có tốc độ thực hiện nhanh hơn nhiều so với các ngôn ngữ bậc cao. Do vậy nó rất thích hợp với các chức năng yêu cầu thời gian thực chẳng hạn như thao tác với các tín hiệu biến đổi nhanh.
Các chương trình viết bằng ngôn ngữ Assembly phải được dịch ra ngôn ngữ máy (dạng nhị phân) vì đây là dạng duy nhất mà hệ vi xử lý có thể hiểu được. Có nhiều chương trình biên dịch nhưng thông dụng nhất hiện nay Macro Assembler của hãng Microsoft, Turbo Assembler của hãng Borland và Emu8086 (www.emu8086.com). Trong khuôn khổ của chương trình học, chúng ta sẽ sử dụng chương trình emu8086 để viết chương trình cũng như tìm hiểu các thức hoạt động của vi xử lý.

1.Cấu trúc một chương trình ASM
oCác ký tự dùng trong chương trình: sử dụng tất cả các ký tự trong bảng mã ASCII, không phân biệt chữ hoa/thường
- Các chữ cái latin: 26 chữ hoa A-Z, 26 chữ thường a-z.
- Các chữ số thập phân: ‘0’ - ‘9’
- Các ký hiệu phép toán, các dấu chấm câu và các ký hiệu đặc biệt: + - * / @ ? $ , . : [ ] ( ) < > { } & % ! \ # v.v...
- Các ký tự ngăn cách: space và tab
oCấu trúc một lệnh trong chương trình
:
, ;Ghi chú
Nhãn: xác định vị trí bắt đầu của một lệnh/đoạn lệnh, sẽ được thay thế thành địa chỉ sau khi dịch thành mã máy. Nhãn bắt đầu bằng một ký tự, kết thúc bằng dấu hai chấm (:) và không có khoảng trắng ở giữa
Lệnh : từ gợi nhớ thay cho một yêu cầu/hoạt động cụ thể của VXL (tham khảo thêm trong emu8086 -> help -> Complete 8086 Instructions Set)
vd: MOV -> MOVE -> lệnh di chuyển dữ liệu
SUB -> SUBTRACT -> lệnh trừ hai toán hạng
Toán hạng : Là thanh ghi, ô nhớ, địa chỉ hoặc số hạng. Các toàn hạng cách nhau bởi dấu phẩy (,). Một lệnh có thể có một, hai hoặc không có toán hạng.
vd MOV AX,BX ;chuyển nội dung thanh ghi BX vào AX, có hai toán hạng.
MUL BX ;nhân AX cho BX kết quả lưu trong DX:AX, có một toán hạng
AAA ;điều chỉnh số BCD sau khi cộng, không có toán hạng
Ghi chú : thể hiện ý nghĩa của lệnh/đoạn lệnh trong chương trình
vd: MOV AX,data ;xác định địa chỉ đoạn dữ liệu
ocác hằng số dùng trong chương trình: sử dụng chủ yếu là ba dạng sau

Số hệ thập phân: dùng các ký tự từ 0 à 9 và kết thúc là chữ d hoặc D. Lưu ý, số không có ký tự kết thúc được hiểu là hệ thập phân
vd 1001 à số một nghìn không trăm lẻ một
Số hệ nhị phân: dùng hai ký tự từ 0,1 và kết thúc là chữ b hoặc B.
vd 1001b à tương ứng với số 9 trong hệ thập phân
Số hệ thập lục phân: dùng các ký tự từ 0 à 9, A à F và kết thúc là chữ h hoặc H. Lưu ý, số không được bắt đầu bằng ký tự à thêm số 0 phía trước
vd: A37Fh (số sai) à 0A37Fh
ocác khai báo biến, hằng số:
toán tử EQU: gán giá trị cho biến
vd: str EQU 13d ;sau khi dịch thành mã máy, các từ str sẽ được thay thế thành số 13d
toán tử DB: khai báo ô nhớ có kích thước 1 byte
toán tử DW: khai báo ô nhớ có kích thước 2 byte
toán tử DD: khai báo ô nhớ có kích thước 4 byte
toán tử DQ: khai báo ô nhớ có kích thước 8 byte
toán tử DT: khai báo ô nhớ có kích thước 10 byte
vd: str db 10,20,30,40,50 ;khai báo một mảng gồm 5 ô nhớ, mỗi ô dung lượng một byte chứa các giá trị như trong khai báo.
Toán tử DUP (): nhân bản các toán tử trong khai báo
vd: str db 5 dup (?) ; khai báo một mảng gồm 5 ô nhớ, mỗi ô dung lượng một byte và không chứa giá trị ban đầu (null).
ocấu trúc một chương trình ASM dạng *.exe: Gồm ba phần chính là data, stack và code
Data Segment
chứa các khai báo dữ liệu ban đầu
Ends
Stack segment
dw xx dup (?) ;xx là dung lượng bộ nhớ ngăn xếp
Ends
Code Segment
chứa các lệnh của chương trình
L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ Post_f12 L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ Post_f10

Về Đầu Trang Go down
https://dtvt7b.forumvi.com

L ẬP TRÌNH ASSEMBLY CHO HỆ VI XỬ LÝ

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang

Quick Reply

Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Học viện kỹ thuật quân sự :: Học tập - Tài liệu - Phần mềm :: Thảo luận-

Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất