intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Nguyên tác và quy trình cài đặt các ứng dụng trong windows p6

Chia sẻ: Asfaf AfaFaf | Ngày: | Loại File: PDF | Số trang:5

65
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

TITLE: chỉ thị Asembler, khai báo tiêu đề chính, thường chỉ ra tên file trên đĩa của chương trình này. Dòng tiêu đề sẽ xuất hiện trên cùng của mỗi trang in. SUBTTL: chỉ thị Assembler, khai báo tiêu đề phụ, tiêu đề phụ sẽ xuất hiện trên dòng thứ 2, dưới dòng tiêu đề của trang in đầu tiên. EXTRN: chỉ thị Assembler.

Chủ đề:
Lưu

Nội dung Text: Nguyên tác và quy trình cài đặt các ứng dụng trong windows p6

  1. PAGE m,n: chỉ thị Asembler, khai báo khuôn dạng giấy của máy in là m dòng mỗi trang, n cột (ký tự) mỗi dòng. TITLE: chỉ thị Asembler, khai báo tiêu đề chính, thường chỉ ra tên file trên đĩa của chương trình này. Dòng tiêu đề sẽ xuất hiện trên cùng của mỗi trang in. SUBTTL: chỉ thị Assembler, khai báo tiêu đề phụ, tiêu đề phụ sẽ xuất hiện trên dòng thứ 2, dưới dòng tiêu đề của trang in đầu tiên. EXTRN: chỉ thị Assembler. Nếu mô-đun này có chứa tham chiếu tới các thủ tục hoặc biến, mà chúng được định nghĩa ở mô-đun phụ, thì nhất thiết phải có chỉ thị EXTRN để liệt lê danh sách chúng. PUBLIC: các khai báo public, như ở dòng 11 chẳng hạn, báo cho assembler rằng lên ‘CODE’ là tên của đoạn CSEG, nhưng cũn là tên chung, mọi đoạn có cùng tên ‘CODE’ sẽ được assembler gộp vào một đoạn duy nhất. Nếu sau PUBLIC không có ‘CODE’ thì CSEG sẽ là tên chung. Các dòng 5, 6, 7: khai báo một đoạn bộ nhớ để làm Stack, chúng ta đã dàng 64  5 byte cho Stack, khởi tạo giá trị ban đầu cho nó bằng 64 dãy 5 byte có giá trị ứng với mã ASCII của các ký tự
  2. trong xâu ‘STACK’. Chú ý rằng đoạn dùng làm Stack nhất thiết phải có tên là STACK. Các dòng 8, 9, 10: khai báo đoạn dữ liệu cho chương trình. Tất cả các chỉ thị định nghĩa miền dữ liệu DB, DW, DD, DT đều có thể chèn vào dòng số 9. Dòng 11: chỉ thị Assembler SEGMENT - khai báo bắt đầu của mọt đoạn bộ nhớ, đoạn này được đặt tên là CSEG. Dòng 12: ASSUME CS:CSEG, DS:DSEG, SS:STACK; chỉ thị Assembler ASSUME yêu cầu gán cho CS giá trị là địa chỉ đoạn của đoạn có tên là CSEG, gán cho DS giá trị địa chỉ đoạn của đoạn có tên là DSEG, gán cho SS giá trị địa chỉ đoạn của đoạn có tên là STACK. Dòng 13, 21: các chỉ thị Assembler Proc và Endp đánh dấu điểm đầu và điểm cuối của một thủ tục. Thủ tục là một khối lệnh mà có thể được gọi thi hành từ nhiều nơi trong chương trình. Nếu thủ tục kết thúc bằng lệnh RET (Return frrom Procedure) thì ta có thể gọi nó là một chương trình con (Subroutine). Một thủ tục luôn có một trong hai thuộc tính: NEAR và FAR được chỉ ra bởi Operand đứng ngay sau chỉ thị Proc, trong đó NEAR là ngầm định.
  3. NEAR: thủ tục chỉ có thể được gọi từ trong chính SEGMENT chứa thủ tục đó. Khi gặp lời gọi tới một thủ tục NEAR, bộ vi xử lý chỉ cất Offset (IP) của địa chỉ trở về lên Stack (tương đương PUSH IP). Với chương trình dạng ‘.COM’, luôn luôn dùng NEAR. FAR: thủ tục có thể được gọi từ bất cứ SEGMENT nào. Khi gặp lời gọi tới một thủ tục FAR, bộ vi xử lý chỉ cất địa chỉ trở CS:IP lên Stack. Với chương trình dạng .EXE luôn luôn dùng FAR cho thủ tục chính. Dòng 14, 15, 16: cất địa chỉ về chương trình gọi, để chương trình này kết thúc có thể nhận lại các địa chỉ này. Chú ý: Trong giáo trình nhập môn này các chương trình minh hoạ đều khá đơn giản, chạy tại dấu nhắc chờ lệnh của DOS, chúng ta có thể làm cho nó đơn giản hơn như sau: 1. Bỏ đồng thời hai dòng lệnh 13 và 21 - không gọi chương trình này từ một chương trình khác. 2. Bỏ cả 3 dòng lệnh 14, 15, 16 và tại dòng 20 thay lệnh RET bằng: Hai dòng lệnh: MOV AH, 4CH INT 21H
  4. Để gọi chức năng cho kết thúc chương trình dạng ‘.EXE’, của DOS hoặc:  Một dòng lệnh: INT 20H Để gọi chức năng cho kết thúc chương trình dạng ‘.COM’ của DOS Dòng 17, 18: khởi tạo giá trị cho thanh ghi đoạn dữ liệu, cho nó trỏ tới đoạn dữ liệu mà chúng ta đã đặt tên là DSEG. Bộ vi xử lý chỉ cho phép chuyển giá trị vào các thanh ghi đoạn thông qua thanh ghi đa năng AX. Dòng 19: tất cả các dòng lệnh của chương trình có thể chèn vào vị trí này. Dòng 20: lệnh RET, nó ý nghĩa tương đương với 2 lệnh POP IP và POP CS, tuy nhiên không thể thay RET bằng 2 lệnh này được. Lệnh RET làm cho bộ vi xử lý thi hành chương trình đã gọi (tới thủ tục) tiếp tục thi hành lệnh sau lời gọi đó. Dòng 21: ENDP là chỉ thị Assembler, khai báo điểm kết thúc thủ tục có tên là ENTRY. Dòng 22: ENDS là chỉ thị Assembler, khai báo điểm kết thúc của đoạn có tên là CSEG. Dòng 23: END là chỉ thị Assembler, khai báo điểm kết thúc chương trình, với nhãn của lệnh đầu tiên trong mô-đun chương chính là ENTRY.
  5. b. File khả thi dạng ‘.COM’ DOS có thể chạy được hai loại file chương trình viết bằng hợp ngữ, đó là file dạng’.com’ và ‘.exe’, chính vì vậy người ta gọi hai loại file này là file khả thi (executable files). Nói chung người sử dụng dùng file ‘.exe’ khi cần tạo các chương trình lớn (số mã lệnh lớn hoặc nhiều dữ liệu), dài hơn 64KB và dùng file ‘.com’ khi cần tạo các file chương trình 64KB. Việc tạo ra file ‘.com’ cần theo một quy tắc khác file ‘.exe’, sau đây là một số điểm quan trọng. - Các quy tắc để tao ra file ‘.com’ 1. Bỏ qua tất cả các khai báo đoạn (Segment) Stack, data và extra. 2. Chỉ khai báo một đoạn mã lệnh, nhưng để tất cả lệnh và dữ liệu vào đó. 3. Dùng chỉ thịi assume cho cả 4 thanh ghi đoạn trỏ tới đoạn mã lệnh. Tuy nhiên thực tế chỉ cần cho CS và DS trỏ tới đoạn mã lệnh là đủ, 2 thanh ghi đoạn còn lại SS và ES luôn được ngầm định đặt trở tới đoạn mã lệnh. Ví dụ: Cseg Segment para public ‘code’ Assume cs:cseg, ds:cseg [, es:cseg] [, ss:cseg] Đặt trước lệnh đầu tiên của chương trình chỉ thị assembler:
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2