Chương 5: NGAÍN XÊP VÀ THỤ TÚC
5.3 Thụ túc ( Procedure)
Trong chương 3 chúng ta đã đeă caơp đên ý tưởng laơp trình top-down . Ý tưởng này có nghĩa là moơt bài toán nguyeđn thuỷ được chia thành các bài toán con mà chúng deê giại quyêt hơn bài toán nguyeđn thuỷ . Trong các ngođn ngữ câp cao người ta dùng thụ túc đeơ giại các bài toán con , và chúng ta cũng làm như vaơy trong hợp ngữ . Như vaơy là moơt chương trình hợp ngữ có theơ được xađy dựng baỉng các thụ túc .
Moơt thụ túc gĩi là thụ túc chính sẽ chứa noơi dung chụ yêu cụa chương trình . Đeơ thực hieơn moơt cođng vieơc nào đó , thụ túc chính gĩi ( CALL) moơt thụ túc con . Thụ túc con cũng có theơ gĩi moơt thụ túc con khác .
Khi moơt thụ túc gĩi moơt thụ túc khác , đieău khieơn được chuyeơn tới ( control transfer) thụ túc được gĩi và các leơnh cụa thụ túc được gĩi sẽ được thi hành . Sau khi thi hành hêt các leơnh trong nó , thụ túc được gĩi sẽ trạ đieău khieơn ( return control) cho thụ túc gĩi nó . Trong ngođn ngữ câp cao , laơp trình vieđn khođng biêt và khođng theơ biêt cơ câu cụa vieơc chuyeơn và trạ đieău khieơn giữa thụ túc chính và thụ túc con. Nhưng trong hợp ngữ có theơ thây rỏ cơ câu này ( xem phaăn 5.4) .
Khai báo thụ túc
Cú pháp cụa leơnh táo moơt thụ túc như sau : name PROC type
; body of procedure RET
name ENDP
Name do người dùng định nghĩa là teđn cụa thụ túc .
Chương 5 : Ngaín xêp và thụ túc 63 NEAR có nghĩa là thụ túc được gĩi naỉm cùng moơt đốn với thụ túc gĩi . FAR có nghĩa là thụ túc được gĩi và thụ túc gĩi naỉm khác đĩan . Trong phaăn này chúng ta sẽ chư mođ tạ thụ túc NEAR .
Leơnh RET trạ đieău khieơn cho thụ túc gĩi . Tât cạ các thụ túc phại kêt thúc bởi RET trừ thụ túc chính .
Chú thích cho thụ túc : Đeơ người đĩc deê hieơu thụ túc người ta thường sử dúng chú thích cho thụ túc dưới dáng sau :
; ( mođ tạ các cođng vieơc mà thụ túc thi hành)
; input: ( mođ tạ các tham sô có tham gia trong chương trình ) ; output : ( cho biêt kêt qụa sau khi cháy thụ túc )
; uses : ( lieơt keđ danh sách các thụ túc mà nó gĩi )
Hình 5-1 : Gĩi thụ túc và trở veă