Cơ chế điều khiển và gọi chương trình con trong chế độ bảo vệ

Màu nền
Font chữ
Font size
Chiều cao dòng

Câu 10:Cơ chế điều khiển và gọi chương trình con trong chế độ bảo vệ

V iệc chuyển điều khiển xảy ra khi thực hiện các lệnh nhảy( lệnh JMP) hoặc lệnh gọi chương trình con (lệnh CALL)

Trường hợp thực hiện lệnh nhảy hoặc lệnh gọi trong cùng đoạn mã lệnh của nhiệm vụ đang chạy xảy ra như sau:

Khi thực hiện lệnh nhảy gần (NEAR JUMP), con trỏ lệnh IP được nạp giá trị mới .Chương trình tiếp tục được thực hiện từ vị trí mới do IP trỏ đến

Khi thực hiện lệnh gọi gần (NEAR CALL )bộ xử lí trung tâm thực hiện các thao tác sau:

+Cất giá trị hiện thời của IP vào ngăn xếp

+Nạp địa chỉ offset của chương trình con được gọi (đích) vào IP

+Thực hiện chương trình con

Trường hợp chuyển điều khiển đến những đoạn mã lệnh khác khi thực hiện lệnh gọi xa (FAR CALL) thì có 2 tình huống:

-Đoạn mã lệnh đích có mức đặc quyền thấp hơn hoặc bằng mức đặc quyền cuả đoạn mã lệnh nguồn hiện tại.Khi đó,bộ xử lí trung tâm thực hiện các thao tác sau:

+Cất giá trị hiện thời của CS và IP vào ngăn xếp

+Nạp bộ chọn đoạn mã lệnh chứa chương trình con (đích)vào CS

+Nạp địa chỉ offset của chương trình con vào IP

+Thực hiện chương trình đích

Lệnh RET cho phép rời khỏi chương trình con để trở về chương trình gọi nó .Lệnh này khôi phục lại nội dung bộ chọn đoạn mã lệnh nguồn (nội dung thanh ghi CS),nội dung con trỏ lệnh (nội dung thanh ghi IP)và tiếp tục thực hiện chương trình đã gọi chương trình con này.

-Đoạn mã lệnh chương trình con có mức đặc quyền cao hơn mức đặc quyền của đoan mã lệnh nguồn hiện tại .Khi đó,việc gọi chương trình con phải thực hiên qua cổng gọi .Bộ xử lí trung tâm thực hiện quá trình này như sau:

+Tạm lưu giữ nội dung CS,IP,SS,SP hiện thời

+Nạp bộ chọn cổng gọi và kiểm tra quyền truy nhập

+Cất giữ giá trị tạm lưu của SS và SP nguồn vào ngăn xếp đích

+Chuyển các tham số từ ngăn xếp nguồn sang ngăn xếp đích

+Cất giữ giá trị tạm lưu của CS và IP nguồn vào ngăn xếp đích

+Nạp bộ chọn bộ mô tả đoạn mã lệnh đích và địa chỉ offset( lấy từ cổng gọi ) ,qua đó nạp bộ mô tả đoạn mã lệnh đích

+Thực hiện chương trình đích

Khi bộ xử lí  trung tâm gặp lệnh RET thì việc trở về chương trình nguồn được thực hiện bắt đầu bằng việc kiểm tra quyền truy nhập ,sau đó là khôi phục nội dung các thanh ghi CS,IP,SS,SP theo một trình tự ngược lại

Bạn đang đọc truyện trên: Truyen2U.Pro