b) IF_THEN_ELSE
4.3.2 Câu trúc laịp
Moơtvònglaịpgoămnhieăuleơnhđượclaịplái,sôlaănlaịpphúthuoơcđieăukieơn. a) Vòng FOR
LeơnhLOOPcótheơdùngđeơthựchieơnvòngFOR.CúphápcụaleơnhLOOPnhư sau:
LOOP destination_label
SôđêmchovònglaịplàthanhghiCXmàbanđaăunóđượcgán1giátrịnào đó.KhileơnhLOOPđượcthựchieơnCXsẽtựđoơnggiạmđi1.NêuCXchưabaỉng0 thì vònglaịpđượcthựchieơntiêptúc.NêuCX=0leơnhsauleơnhLOOPđượcthựchieơn
DùngleơnhLOOP,vòngFORcótheơthựchieơnnhư sau: ;gánchochoCX sôlaănlaịp
TOP:
;thađncụavònglaịp LOOP TOP
Vídú:Dùngvònglaịpinra1hàng80dâu‘*’ MOV CX,80 ;CXchưásôlaănlaịp MOV AH,2 ;hàmxuâtkýtự
Chương 3: Các leơnh laịp và rẽ nhánh 38 MOV DL,’*’ ;DLchưákýtự‘*’
TOP:
INT 21h ;indâu‘*’ LOOP TOP ;laịp80laăn
Lưuýraỉng vòngFORcũngnhưleơnhLOOPthựchieơnítnhâtlà1laăn.Dođo nêubanđaăuCX=0thìvòng laịpsẽlàmchoCX=FFFH,tứclàthựchieơnlaịpđên 65535laăn.Đeơtránhtìnhtrángnày,leơnhJCXZ(JumpifCXiszero)phạiđượcdùng trướcvònglaịp.LeơnhJXCZcócúphápnhưsau:
JCXZ destination_label
NêuCX=0đieăukhieơnđượcchuyeơnchodestination_label.Cácleơnhsauđađy sẽđạmbạovònglaịpkhođngthựchieơnnêuCX=0
JCXZ SKIP TOP: ;thađnvònglaịp LOOP TOP SKIP: b) Vòng WHILE
VòngWHILEphúthuoơcvào1đieăukieơn.Nêuđieăukieơnđúngthì thựchieơn vòng WHILE.VìvaơynêuđieăukieơnsaithìvòngWHILEkhođngthựchieơngìcạ.
Ví
dú : Viêtđốnmãđeơđêmsôkýtự đượcnhaơpvàotređncùngmoơthàng. MOV DX,0 ;DXđeơđêmsôkýtự
MOV AH,1 ;hàmđĩc1kýtự INT 21h ;đĩckýtựvàoAL WHILE_:
CMP AL,0DH ;cóphạilàkýtựCR? JE END_WHILE ;đúng,thoát INC DX ;taíngDXleđn1 INT 21h ;đĩckýtự JMP WHILE_ ;laịp END_WHILE:
c) Vòng REPEAT
CâutrúccụaREPEATlà repeatstatements untilcondition
Trongcâutrúcrepeatmeơnhđeăđượcthihànhđoăngthờiđieăukieơnđượckieơm tra.Nêuđieăukieơnđúng thìvònglaịpkêtthúc.
Chương 3: Các leơnh laịp và rẽ nhánh 39 Vídú:viêtđốnmã đeơđĩcvàocáckýtựchođênkhigaịpkýtựtrông.
MOV AH,1 ;đĩckýtự REPEAT: INT 21h ;kýtựtređnAL ;until CMP AL,’ ‘ ;AL=‘‘? JNE REPEAT Lưu
ý:vieơcsửdúngREPEAThayWHILElàtuỳtheochụ quancụamoêi người.TuynhieđncótheơthâyraỉngREPEATphạitiênhànhítnhâtù laăn,trongkhiđó WHILE cótheơkhođngtiênhànhlaănnàocạnêungaytừđaăuđieău kieơnđãbịsai.