CẤU TRÚC MÁY TÍNH LẬP TRÌNH HỢP NGỮ_CHƯƠNG 9 Chương trình con
Số trang: 32
Loại file: pdf
Dung lượng: 311.67 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tham khảo bài thuyết trình cấu trúc máy tính lập trình hợp ngữ_chương 9 chương trình con, công nghệ thông tin, quản trị mạng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
CẤU TRÚC MÁY TÍNH LẬP TRÌNH HỢP NGỮ_CHƯƠNG 9 Chương trình con Chương 9 STACK &CHƯƠNG TRÌNH CON Giới thiệu STACK Một số ứng dụng của STACK Cấu trúc của 1 CTC Cơ chế làm việc của 1 CTC Vấn đề truyền tham số Chương trình gồm nhiều MODULE Chương 10: CHƯƠNG TRÌNH CON 1 GiỚI THIỆU STACKSTACK : là một cấu trúc dữ liệu một chiều. Các phầntử cất vào và lấy ra theo phương thức LIFO (Last InFirst Out). Mỗi chương trình phải dành ra một khối bộnhớ để làm stack bằng khai báo STACK. Ví dụ :.STACK 100H ; Xin cấp phát 256 bytes làm stack Là 1 phần của bộ nhớ, được tổ chức lưu trữ dữ liệu theo cơ chế vào sau ra trước (LIFO). Chương 10: CHƯƠNG TRÌNH CON 2LẬP TRÌNH VỚI STACK Trong lập trình có khi cần truy xuất đến các phần tử trong STACK nhưng không được thay đổi trật tự của STACK. Để thực hiện điều này ta dùng thêm thanh ghi con trỏ BP : trỏ BP về đỉnh Stack : MOV BP,SP thay đổi giá trị của BP để truy xuất đến các phần tử trong Stack : [BP+2] Chương 10: CHƯƠNG TRÌNH CON 3 Phần tử được đưa vào STACK lần đầu tiên gọi làđáy STACK, phần tử cuối cùng được đưa vàoSTACK được gọi là đỉnh STACK. Khi thêm một phần tử vào STACK ta thêm từ đỉnh, khi lấy một phần tử ra khỏi STACK ta cũng lấy ra từ đỉnh địa chỉ của ô nhớ đỉnh STCAK luôn luôn bị thay đổi.SS dùng để lưu địa chỉ segemnt của đoạn bộ nhớ dùng làm STACKSP để lưu địa chỉ của ô nhớ đỉnh STACK (trỏ tới đỉnh STACK) Chương 10: CHƯƠNG TRÌNH CON 4THÍ DỤ STACK D A,B,C là các Word SP MOV BP,SP C ;AX = D MOV AX,[BP] B ;AX = C MOV AX,[BP+2] A MOV AX,[BP+6] ;AX = A Chương 10: CHƯƠNG TRÌNH CON 5Để lưu 1 phần tử vào Stack ta dùng lệnh PUSHĐể lấy 1 phần tử ra từ Stack ta dùng lệnh POPPUSH nguồn : đưa nguồn vào đỉnh STACKPUSHF : cất nội dung thanh ghi cờ vào STACK • nguồn là một thanh ghi 16 bit hay một từ nhớ Chương 10: CHƯƠNG TRÌNH CON 6POP và POPF : dùng để lấy một phần tử ra khỏi STACK.Cú pháp : POP đích : đưa nguồn vào đỉnh STACK POPF : cất nội dung ở đỉnh STACKvào thanh ghi cờChú ý : - Ở đây đích là một thanh ghi 16 bit (trừ thanh ghiIP) hay một từ nhớCác lệnh PUSH, PUSHF, POP và POPF không ảnh hưởngt ớ i các cờ Chương 10: CHƯƠNG TRÌNH CON 7MỘT SỐ ỨNG DỤNG CỦA STACK Khắc phục các hạn chế của lệnh MOV Ex : MOV CS,DS ; sai PUSH DS POP CS ; đúng•Truyền tham số cho các chương trình con• Lưu tạm thời giá trị thanh ghi hay biến. Chương 10: CHƯƠNG TRÌNH CON 8 THÍ DỤ 2 Nhập vào 1 chuổi, in chuổi đảo ngược Ex : nhập : Cong nghe thong tin xuất : int gnoht ehgn gnoC Chương 10: CHƯƠNG TRÌNH CON 9Ví dụ minh họa : dùng STACK trong thuật toánđảo ngược thứ tự như sau : ; Nhập chuỗi kí tự Khởi động bộ đếm Đọc một kí tự WHILE kí tự 13 DO Cất kí tự vào STACK Tăng biến đếm Đọc một kí tự END_WHILE ; Hiển thị đảo ngược FOR biến đếm lần DO Lấy một kí tự từ STACK Hiển thị nó END_FOR0: CHƯƠNG TRÌNH CON Chương 1 10 GiỚI THIỆU CHƯƠNG TRÌNH CON CTC là 1 nhóm các lệnh được gộp lại dưới 1 cái tên mà ta có thể gọi từ nhiều nơi khác nhau trong chương trình thay vì phải viết lại các nhóm lệnh này tại nơi cần đến chúng. Lợi ích CTC làm cho cấu trúc logic của của CT dễ kiểm soát hơn, dễ tìm sai sót hơn và có thể tái sử dụng mã tiết kiệm được công sức và thời gian lập trình. Chương 10: CHƯƠNG TRÌNH CON 11CẤU TRÚC CỦA CTCON TÊNCTC PROC [NEAR|FAR] CÁC LỆNH CỦA CTC RET TÊNCTC ENDP Chương 10: CHƯƠNG TRÌNH CON 12 MINH HỌA Viết chương trình nhập 1 số n (n nguyên dương và THÍ DỤ.DATAEXTRN MemVar : WORD, Array1 : BYTE , ArrLength :ABS….CODEEXTRN NearProc : NEAR , FarProc : FAR….MOV AX,MemVarMOV BX, OFFSET Array1MOV CX, ArrLength…CALL NearProc….CALL FarProc….. Chương 10: CHƯƠNG TRÌNH CON 14 CƠ CHẾ LÀM VIỆC CỦA CTC Cơ chế gọi và thực hiện CTC trong ASM cũng giống ...
Nội dung trích xuất từ tài liệu:
CẤU TRÚC MÁY TÍNH LẬP TRÌNH HỢP NGỮ_CHƯƠNG 9 Chương trình con Chương 9 STACK &CHƯƠNG TRÌNH CON Giới thiệu STACK Một số ứng dụng của STACK Cấu trúc của 1 CTC Cơ chế làm việc của 1 CTC Vấn đề truyền tham số Chương trình gồm nhiều MODULE Chương 10: CHƯƠNG TRÌNH CON 1 GiỚI THIỆU STACKSTACK : là một cấu trúc dữ liệu một chiều. Các phầntử cất vào và lấy ra theo phương thức LIFO (Last InFirst Out). Mỗi chương trình phải dành ra một khối bộnhớ để làm stack bằng khai báo STACK. Ví dụ :.STACK 100H ; Xin cấp phát 256 bytes làm stack Là 1 phần của bộ nhớ, được tổ chức lưu trữ dữ liệu theo cơ chế vào sau ra trước (LIFO). Chương 10: CHƯƠNG TRÌNH CON 2LẬP TRÌNH VỚI STACK Trong lập trình có khi cần truy xuất đến các phần tử trong STACK nhưng không được thay đổi trật tự của STACK. Để thực hiện điều này ta dùng thêm thanh ghi con trỏ BP : trỏ BP về đỉnh Stack : MOV BP,SP thay đổi giá trị của BP để truy xuất đến các phần tử trong Stack : [BP+2] Chương 10: CHƯƠNG TRÌNH CON 3 Phần tử được đưa vào STACK lần đầu tiên gọi làđáy STACK, phần tử cuối cùng được đưa vàoSTACK được gọi là đỉnh STACK. Khi thêm một phần tử vào STACK ta thêm từ đỉnh, khi lấy một phần tử ra khỏi STACK ta cũng lấy ra từ đỉnh địa chỉ của ô nhớ đỉnh STCAK luôn luôn bị thay đổi.SS dùng để lưu địa chỉ segemnt của đoạn bộ nhớ dùng làm STACKSP để lưu địa chỉ của ô nhớ đỉnh STACK (trỏ tới đỉnh STACK) Chương 10: CHƯƠNG TRÌNH CON 4THÍ DỤ STACK D A,B,C là các Word SP MOV BP,SP C ;AX = D MOV AX,[BP] B ;AX = C MOV AX,[BP+2] A MOV AX,[BP+6] ;AX = A Chương 10: CHƯƠNG TRÌNH CON 5Để lưu 1 phần tử vào Stack ta dùng lệnh PUSHĐể lấy 1 phần tử ra từ Stack ta dùng lệnh POPPUSH nguồn : đưa nguồn vào đỉnh STACKPUSHF : cất nội dung thanh ghi cờ vào STACK • nguồn là một thanh ghi 16 bit hay một từ nhớ Chương 10: CHƯƠNG TRÌNH CON 6POP và POPF : dùng để lấy một phần tử ra khỏi STACK.Cú pháp : POP đích : đưa nguồn vào đỉnh STACK POPF : cất nội dung ở đỉnh STACKvào thanh ghi cờChú ý : - Ở đây đích là một thanh ghi 16 bit (trừ thanh ghiIP) hay một từ nhớCác lệnh PUSH, PUSHF, POP và POPF không ảnh hưởngt ớ i các cờ Chương 10: CHƯƠNG TRÌNH CON 7MỘT SỐ ỨNG DỤNG CỦA STACK Khắc phục các hạn chế của lệnh MOV Ex : MOV CS,DS ; sai PUSH DS POP CS ; đúng•Truyền tham số cho các chương trình con• Lưu tạm thời giá trị thanh ghi hay biến. Chương 10: CHƯƠNG TRÌNH CON 8 THÍ DỤ 2 Nhập vào 1 chuổi, in chuổi đảo ngược Ex : nhập : Cong nghe thong tin xuất : int gnoht ehgn gnoC Chương 10: CHƯƠNG TRÌNH CON 9Ví dụ minh họa : dùng STACK trong thuật toánđảo ngược thứ tự như sau : ; Nhập chuỗi kí tự Khởi động bộ đếm Đọc một kí tự WHILE kí tự 13 DO Cất kí tự vào STACK Tăng biến đếm Đọc một kí tự END_WHILE ; Hiển thị đảo ngược FOR biến đếm lần DO Lấy một kí tự từ STACK Hiển thị nó END_FOR0: CHƯƠNG TRÌNH CON Chương 1 10 GiỚI THIỆU CHƯƠNG TRÌNH CON CTC là 1 nhóm các lệnh được gộp lại dưới 1 cái tên mà ta có thể gọi từ nhiều nơi khác nhau trong chương trình thay vì phải viết lại các nhóm lệnh này tại nơi cần đến chúng. Lợi ích CTC làm cho cấu trúc logic của của CT dễ kiểm soát hơn, dễ tìm sai sót hơn và có thể tái sử dụng mã tiết kiệm được công sức và thời gian lập trình. Chương 10: CHƯƠNG TRÌNH CON 11CẤU TRÚC CỦA CTCON TÊNCTC PROC [NEAR|FAR] CÁC LỆNH CỦA CTC RET TÊNCTC ENDP Chương 10: CHƯƠNG TRÌNH CON 12 MINH HỌA Viết chương trình nhập 1 số n (n nguyên dương và THÍ DỤ.DATAEXTRN MemVar : WORD, Array1 : BYTE , ArrLength :ABS….CODEEXTRN NearProc : NEAR , FarProc : FAR….MOV AX,MemVarMOV BX, OFFSET Array1MOV CX, ArrLength…CALL NearProc….CALL FarProc….. Chương 10: CHƯƠNG TRÌNH CON 14 CƠ CHẾ LÀM VIỆC CỦA CTC Cơ chế gọi và thực hiện CTC trong ASM cũng giống ...
Tìm kiếm theo từ khóa liên quan:
kỹ năng máy tính hệ thống mạng thiết bị mạng mẹo cài đặt thủ thuật mạng Cấu trúc máy tính kỹ thuật máy tính thủ thuật máy tính giáo trình tin học kỹ thuật công nghệGợi ý tài liệu liên quan:
-
50 trang 496 0 0
-
Giáo trình Tin học (Trình độ: Trung cấp nghề) - Trường Trung cấp nghề Củ Chi
268 trang 331 4 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 312 1 0 -
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 312 0 0 -
67 trang 299 1 0
-
Làm việc với Read Only Domain Controllers
20 trang 299 0 0 -
Bài giảng: Lịch sử phát triển hệ thống mạng
118 trang 244 0 0 -
Cách phân tích thiết kế hệ thống thông tin quan trọng phần 4
13 trang 215 0 0 -
122 trang 212 0 0
-
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 211 0 0