Danh mục

Ngắt asm cơ bản

Số trang: 13      Loại file: pdf      Dung lượng: 124.88 KB      Lượt xem: 1      Lượt tải: 0    
Thư viện của tui

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (13 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tài liệu tin học tham khảo "ngôn ngữ máy ASSEMBLY"
Nội dung trích xuất từ tài liệu:
Ngắt asm cơ bảnĐHQG – HN CNTT Ngôn ngữ máy ASSEMBLYCác ngắt của hệ thống hỗ trợ cho lập trình ASSSEMBLY combine có hai chức năng:Có 4 hàm hay dùng nhất: +cho phép đặt segment vào 1 địa chỉ mong muốn (theo yêuHàm 1: Chờ 1 ký tự từ bàn phím: cầu) của bộ nhớ RAM Mov ah, 1 ;AL chứa mã ASCII ký tự mã vào tên_segment SEGMENT at địa_chỉ_dạng_vật_lý Int 21h {thân}Hàm 2: Đưa 1 ký tự dạng ASCII ra màn hình tại vị trí con tên_segment ENDStrỏ đang đứng +cho chương trình đa tệp: cách gộp các segment có cùng tênCách 1: Nhờ ngắt của BIOS nằm ở các tệp khác nhau khi liên kết. Ví dụ: Tệp 1 có DATA Mov al, mã ASCII của ký tự SEGMENT; Tệp 2 có DATA SEGMENT.khác Mov ah, oeh _COMMON tức là độ dài của segment sau liên kết bằng độ Int 10h dài segment lớn nhấtCách 2: _PUBLIC tức là độ dài của segment sau liên kết bằng tổng Mov dl, mã ASCII của ký tự độ dài cả 2 segment Mov ah, 2 _PRIVATE tức là độ dài của segment sau liên kết bằng độ Int 21h dài của chính nó (không quan hệ với nhau, đây là chế độHàm 3: Hiện 1 xâu ký tự kết thúc bằng dấu $ ra màn default)hình _STACK giống như _PUBLIC Mov dx, offset tên biến xâu _CLASS sắp xếp các segment lại gần nhau sau khi liên kết Mov ah, 9 (Sau khi liên kết thì những segment nào cùng một nhóm thì ở Int 21h gần nhau)Hàm 4: Trở về DOS _GROUP gộp các segment có cùng kiểu lại với nhau cho dễ Mov ah, 4ch ;[int 20h] dàng qui chiếu Int 21h tên_ nhóm GROUP tên_các_segment (cách nhau bởiCác DIRECTIVE điều khiển SEGMENT dạng đơn giản: dễ dấu , )viết, dễ liên kết nhưng chưa bao hết mọi tình huống về điều _ASSUME cho biết tên segment thuộc loại segment nàokhiển SEGMENT _ASSUME tên_thanh_ghi SEG : tên_seg.Model thuê vùng nhớ RAM thích hợp cho chương trình Cấu trúc một chương trình Assembly thường thấy: Khai báo MACRO, STRUCT, UNION, RECORD, SEGMENT code+data≤ 64KB.Model kiểu_tiny Dạng đơn giản code≤ 64KB;data≤ 64KB.Model kiểu_small .Model kiểu code≤ 64KB;data≥ 64KB.Model kiểu_compact .Stack độ lớn code≥ 64KB;data≤ 64KB.Model kiểu_medium [.Data code≥ 64KB;data≥ 64KB song khi.Model kiểu_large khai báo biến]khai báo1 array không ≤ 64KB .Code code≥ 64KB;data≥ 64KB song khi.Model kiểu_large nhãn_chương_trình:khai báo1 array không >64KB mov ax, @data.Stack Độ lớn (Byte) → Xác lập độ lớn stack cho chương trình mov ds, ax.Data Xác lập vùng nhớ cho dữ liệu của chương ...trình khai báo biến nằm ở segment này thân chương trình.Data Khai báo biến (có 3 loại biến) ...Với các loại biến số thì kiểu db có độ dài 1 byte mov ah, 4ch dw có độ dài 2 byte int 21h dd có độ dài 4 byte [các chương trình con] dp/df có độ dài 6 byte END nhãn_chương_trình dq có độ dài 8 byte dt có độ dài 10 byte Dạng chuẩnVới các loại biến xâu có các cách khai báo như sau: _Stack segment tên_biến_xâu db ‘các ký tự’ db độ_dài dup(?) tên_biến_xâu db độ_lớn dup(‘1 ký tự’) _Stack ends tên_biến_xâu db độ_lớn dup(?) Data segmentVới các loại biến trường số (array) có các cách khai báo như khai báo biếnsau: Data endstên_biến_trường kiểu_thành_phần (các số c ...

Tài liệu được xem nhiều: