0100 SP AX=1234BX=5678 SP=
5.3 Thụ túc ( Procedure)
Trongchương3chúngtađãđeăcaơpđên ýtưởnglaơptrìnhtop-down.Ýtưởng nàycónghĩalàmoơtbàitoán nguyeđnthuỷđượcchiathànhcácbàitoáncon mà chúngdeêgiạiquyêthơnbàitoán nguyeđnthuỷ .Trongcácngođnngữcâpcaongườita dùngthụtúc đeơgiạicácbàitoáncon,vàchúngtacũnglàmnhư vaơytronghợpngữ .Nhưvaơylàmoơtchươngtrìnhhợpngữcótheơđượcxađydựngbaỉngcácthụtúc.
Moơtthụtúcgĩilàthụtúcchínhsẽchứanoơidungchụyêucụachươngtrình. Đeơthựchieơnmoơtcođngvieơcnàođó,thụtúcchính gĩi(CALL)moơtthụtúccon. Thụtúcconcũngcótheơgĩimoơt thụtúcconkhác.
Khimoơtthụtúcgĩimoơtthụtúckhác,đieăukhieơnđượcchuyeơntới(control transfer)thụtúcđượcgĩivàcácleơnhcụathụtúcđượcgĩisẽđượcthihành.Saukhi thihànhhêtcácleơnhtrongnó,thụtúcđượcgĩisẽtrạđieăukhieơn(returncontrol) chothụtúcgĩinó.Trongngođnngữcâpcao,laơptrìnhvieđnkhođngbiêtvàkhođngtheơ biêt cơcâucụavieơcchuyeơnvàtrạđieăukhieơngiữathụtúcchínhvàthụtúccon. Nhưngtronghợpngữcó theơthâyrỏcơcâunày(xemphaăn5.4).
Khaibáothụtúc
Cúphápcụaleơnh táomoơtthụtúcnhưsau: name PROC type
;bodyofprocedure RET
name ENDP
Namedongườidùngđịnhnghĩa làteđncụathụtúc.
TypecótheơlàNEAR(cótheơkhođngkhaibáo)hoaịcFAR.
Chương 5 : Ngaín xêp và thụ túc 63 NEARcónghĩalàthụtúcđượcgĩinaỉmcùngmoơtđốnvớithụtúc gĩi.FARcó nghĩalàthụtúcđượcgĩivàthụtúcgĩi naỉmkhácđĩan.Trongphaănnàychúngtasẽ chưmođtạthụtúcNEAR .
LeơnhRETtrạđieăukhieơn cho thụtúcgĩi.Tâtcạcácthụtúcphạikêtthúc bởiRETtrừthụtúcchính.
Chú
thích cho thụ túc:Đeơ ngườiđĩcdeê hieơu thụtúcngườitathườngsử dúngchúthíchchothụtúcdướidángsau:
;(mođtạcáccođngvieơcmàthụtúcthihành)
;input:(mođtạcácthamsôcóthamgiatrongchươngtrình) ;output:(chobiêt kêtqụasaukhicháythụtúc)
;uses:(lieơtkeđdanhsáchcácthụtúcmànó gĩi) MAINPROC CALLPROC1 nextinstruction Hình 5-1:Gĩi thụtúcvàtrởveă PROC1 PROC firstinstruction RET