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

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

                    b) Tập tin dạng .EXE

                  Chương trình có thể được khai báo nhiều đoạn khác nhau. Mỗi chương

            trình có thể có nhiều đoạn chương trình, nhiều đoạn dữ liệu. Kích thước của
            tập tin có thể lớn tuỳ thuộc vào kích thước bộ nhớ máy tính. Thường dạng

            .EXE dùng để xây dựng các chương trình lớn có kích thước lớn hơn 64 KB.
                  Tập tin có một header ở đầu tập tin. Header này chứa các thông tin điều

            khiển về tập tin, kích thước header phụ thuộc vào số các lệnh trong chương
            trình cần để định vị lại các địa chỉ đoạn khi chương trình được nạp.

                  Cấu trúc của chương trình dạng .EXE
            .MODEL SMALL                                      Ví dụ: Đoạn chương trình in chuỗi
            .STACK 200H                                       .MODEL SMALL
            .DATA                                             .STACK 200H
             Khai báo dữ liệu                                 .DATA
            ………..
            .CODE                                             Msg DB ‘Hello$’
            Begin:                                            .CODE
                 MOV AX, @DATA                                Begin:
                 MOV DS, AX                                       MOV AX, @DATA
                 ; Các lệnh                                       MOV DS, AX
                 ……………………                                         MOV AH, 09h
                 ; Kết thúc                                       MOV DX, OFFSET Msg
                 MOV AX, 4C00h                                    INT 21h
                 INT 21h
                 ; Các lệnh (chương trình con)                    MOV AX, 4C00h
                 …………………….                                        INT 21h
            END Begin                                         END Begin

                  Cấu trúc đoạn dạng .EXE:
            <tên đoạn data> SEGMENT                           Ví dụ: Đoạn chương trình in chuỗi
            ; Khai báo dữ liệu                                DSeg SEGMENT
            <tên đoạn data> SEGMENT                           Msg DB ‘Hello$’
            <tên đoạn code> SEGMENT                           DSeg SEGMENT
            ASSUME CS:<tên đoạn code>,                        CSeg SEGMENT
                                    DS:<tên đoạn data>        ASSUME CS:CSeg, DS:Dseg
            Begin:                                            Begin:
                 MOV AX, <tên đoạn data>                          MOV AX, Dseg
                 MOV DS, AX                                       MOV DS, AX
                 ; Đoạn mã                                        MOV AX, 09h
                 ; Kết thúc                                       MOV DX, OFFSET Msg
                 MOV AX, 4C00h                                    INT 21h
                 INT 21h                                          MOV AX, 4C00h
            ; Các lệnh (chương trình con)                         INT 21h
             <tên đoạn code> ENDS                             CSeg ENDS
            END Begin                                         END Begin


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