Page 5 - Bai01 NNLT Assembly (Hop Ngu)
P. 5

Trường TCN KTCN HÙNG VƯƠNG                                GIÁO TRÌNH CẤU TRÚC MÁY TÍNH

                    −  Không được đặt tên nhãn trùng với các ký hiệu đã quy ước như tên

                        các  thanh  ghi,  các  toán  tử  dùng  trong  biểu  thức  (PTR,  BYTE,

                        WORLD,…).  Cũng  không  được  dùng  các  chỉ  dẫn  IFxxx  hoặc
                        .ERRxxx để làm tên nhãn.

                    −  Chú ý: Sau nhãn có thể có dấu hai chấm hoặc không tuỳ theo cách

                        sử dụng như ta thấy qua các ví dụ trên.
                    b) Tên gợi nhớ (Mnemonic): Xác định hành động của câu lệnh. Nó có

                        thể là một chỉ thị (instruction) hay một chỉ dẫn (directive).
                  Chỉ thị hợp ngữ gần giống như các lệnh gợi nhớ của CPU, nó xác định

            các hành động mà CPU sẽ thực hiện. Khi Assembler dịch, mỗi chỉ thị sẽ được
            dịch sang một lệnh mã máy tương ứng. Ví dụ như MOV, ADD, MUL, …

                  Chỉ dẫn là lệnh của Assembler, không phải là lệnh của CPU, các lệnh này

            tuy xuất hiện trong chương trình nhưng không dịch sang mã máy tương ứng.
            Các chỉ dẫn dùng để điều khiển cách dịch của Assembler đối với các lệnh khi

            dịch  một  chương  trình nguồn sang  mã  máy.  Ví dụ như  chỉ  dẫn  END  dùng
            đánh dấu nơi kết thúc chương trình. Khi đọc đến END trình hợp dịch sẽ kết

            thúc việc dịch chương trình tức những lệnh kế tiếp nếu có sẽ bị bỏ qua. Nếu
            không có END sẽ bị lỗi sai. Sau END ta có thể quy định nơi bắt đầu thực hiện

            chương trình. Trường hợp chương trình gồm nhiều đơn thể (nhiều tập chương

            trình nguồn trong một đơn thể, các đơn thể khác chỉ ghi END, không ghi nhãn
            ở sau), nếu ghi nhiều thì TLINK chỉ lấy một.

                    c) Toán hạng (operand): Xác định các dữ liệu mà lệnh (chỉ dẫn hay

                        chỉ thị) cần xử lý. Có thể có một, hai hoặc nhiều hơn hoặc không có
                        toán hạng nào sau lệnh. Số lượng toán hạng có thể là thanh ghi, hằng,

                        nhãn, biến nhớ, chuỗi ký tự.
                  Thanh ghi (register): Các toán hạng thường dùng nhất trong chương trình.

            Một số lệnh chỉ dùng toán tử thanh ghi.

                    −  Ví dụ: MOV DI, AX
                  Hằng (constant): Đôi khi dùng trực tiếp hằng trong toán hạng.

                    −  Ví dụ:
                                SUB AX, 4

                                SUB BX, ‘A’

                  Nhãn (Label): Nhãn có thể dùng làm toán hạng
                    −  Ví dụ:

                                Num DW ?

                                MOV Num, AX

            Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG                                                           Trang 7
   1   2   3   4   5   6   7   8