Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
433,45 KB
Nội dung
Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cỏc lnh iu khin r nhỏnh Cỏc lnh nhy cú iu kin: * Phm vi ca lnh nhy cú iu kin: cu trỳc mó mỏy ca lnh nhy cú iu kin ũi hi nhón ớch phi ng trc lnh nhy khụng quỏ 126 byte hoc ng sau khụng quỏ 127 byte * Cú 3 loi lnh nhy cú iu kin: + Cỏc lnh nhy cú du: c dựng khi kt qu tr v l cỏc s cú du + Cỏc lnh nhy khụng du: c dựng khi kt qu tr v l cỏc s khụng du + Cỏc lnh nhy iu kin n: iu kin ph thuc vo 1 c riờng bit Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cỏc lnh iu khin r nhỏnh Cỏc lnh nhy cú iu kin: * Cỏc lnh nhy cú du: Ký hiu Chc nng iu kin nhy JG/JNLE Nhy nu ln hn ZF=0 v SF=0F JGE/JNL Nhy nu ln hn hoc bng SF=0F JL/JNGE Nhy nu nh hn SF<>0F JLE/JNG Nhy nu nh hn hoc bng ZF=1 hay SF=0F Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cỏc lnh iu khin r nhỏnh Cỏc lnh nhy cú iu kin: * Cỏc lnh nhy khụng du: Ký hiu Chc nng iu kin nhy JA/JNBE Nhy nu ln hn CF=0 v ZF=0 JAE/JNB Nhy nu ln hn hoc bng CF=0 JB/JNAE Nhy nu nh hn CF=1 JBE/JNA Nhy nu nh hn hoc bng CF=1 hay ZF=1 Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cỏc lnh iu khin r nhỏnh Cỏc lnh nhy cú iu kin: * Cỏc lnh nhy iu kin n: Ký hiu Chc nng iu kin nhy JE/JZ Nhy nu bng/Nhy nu bng 0 ZF=1 JNE/JNZ Nhy nu khụng bng/Nu khỏc 0 ZF=0 JC Nhy nu cú nh CF=1 JNC Nhy nu khụng nh CF=0 JO Nhy nu trn s OF=1 JNO Nhy nu khụng trn OF=0 JS Nhy nu du õm SF=1 JNS Nhy nu du dng SF=0 JP/JPE Nhy nu c chn PF=1 JNP/JPO Nhy nu c l PF=0 Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cỏc lnh iu khin r nhỏnh Cỏc lnh nhy cú iu kin: Vớ d: Vit chng trỡnh hin th ton b tp hp cỏc ký t ca h IBM TITLE BAITAP4:IBM .MODEL SMALL .STACK 100h .CODE MAIN PROC MAIN ENDP END MAIN MOV AH,4Ch ;tr quyn iu khin INT 21h MOV AH,2 MOV CX,256 ; s ký t MOV DL,0 ; NULL PRINT_LOOP INT 21h INC DL DEC CX JNZ PRINT_LOOP Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cỏc lnh iu khin r nhỏnh Cỏc lnh nhy cú iu kin: Lnh CMP Lnh CMP dựng so sỏnh gia 2 toỏn t bng cỏch ly toỏn t ớch tr i toỏn t ngun Cỳ phỏp: CMP <ớch>,<ngun> Chỳ ý: + Thng c s dng chung vi lnh nhy cú iu kin + CMP ging lnh SUB nhng toỏn hng ớch khụng b thay i giỏ tr. Vớ d: Vi AX=7FFFh, BX=0001h CMP AX,BX ;iu kin nhy AX>BX JG NHAN ;nu ln hn thỡ nh n nhón NHAN NHAN: Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cỏc lnh iu khin r nhỏnh Lnh nhy khụng iu kin: Lnh JMP Lnh JMP dựng nhy khụng iu kin, dựng khc phc gii hn ca lnh nhy cú iu kin: Cỳ phỏp: JMP <ớch> Vớ d: MOV CX,10 TOP: DEC CX ;gim b m JNZ BOTTOM ;ỳng lp li nu CX> JMP EXIT ;sai nhy n nhón EXIT BOTTOM: JMP TOP EXIT: MOV AX,BX Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cu trỳc r nhỏnh IFTHEN.ELSE Cu trỳc r nhỏnh IFTHEN ELSE biu din nh sau: iu kin ỳng Lnh 1 Sai Vớ d: Nu AX>0 thỡ AX = AX-1, ngc li (AX<=0) thỡ AX=AX+1 Mụ t: IF AX>0 THEN AX = AX - 1 ELSE AX = AX + 1 END IF CMP AX,0 ;AX>0? JNL ELSE_ ;AX<=0 nhy DEC AX ;AX=AX-1 JMP ENDIF_ ELSE_: INC AX ;AX=AX+1 ENDIF_: Lnh 2 Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cu trỳc CASE Cu trỳc r nhỏnh CASE biu din nh sau: Giỏ tr 1 Phỏt biu Kim tra giỏ tr Giỏ tr 2 Giỏ tr k Khụng cú giỏ tr no Tp lnh 1 Tp lnh 2 Tp lnh k Tp lnh Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cu trỳc CASE Vớ d: Nu AX>0 thỡ BX = 1, nu AX<0 thỡ BX=-1, nu AX=0 thỡ BX=0 Mụ t: CASE AX <0: BX= - 1 =0: BX= 0 >0: BX= 1 END_CASE CMP AX,0 ;kim tra AX JL NHO ;Nu AX<0 JE BANG ;Nu AX=0 JG LON ;Nu AX>0 JMP END_CASE NHO: MOV BX,-1 JMP END_CASE BANG: MOV BX,0 JMP END_CASE LON: MOV BX,1 JMP END_CASE END_CASE: [...]... db -1 j db -1 mov int mov int dl,0ah 21 h dl,0Dh 21 h mov inc cmp jl jge j,0 i i,5 for_j exit code mov ax,@data mov ds,ax mov ah ,2 mov int inc cmp jl jge dl,'*' 21 h j j ,20 for_j for_i exit: mov ah,4ch int 21 h end Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN BI TP Vit chng trỡnh: 1 Nhp vo 1 ký t, nu khụng phi l mt s thỡ nhp li, nu l s thỡ in s ú ra mn hỡnh 2 Nhp vo 2 ký t s (19), Tỡm s ln nht v s nh nht... INT 21 h JMP THOAT BUOI_TRUA: LEA DX,CBT MOV AH,9 INT 21 h JMP THOAT BUOI_CHIEU: LEA DX,CBC MOV AH,9 INT 21 h JMP THOAT END Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Vớ d: Vit chng trỡnh hin th lờn mn hỡnh hỡnh ch nht tụ kớn du * vi 10 ct v 5 hng: ********** ********** ********** ********** ********** Mụ t: for_j: stack 100h for_i: For I=1 to 5 For J=1 to 10 In(*) End_For_J End_For_I data i db -1 j db -1 ...Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cu trỳc lp FOR Vũng lp FOR l cu trỳc lp li cỏc dũng lnh vi s ln xỏc nh trc, thng dựng bin m iu khin) Vớ d: Hin th lờn mn hỡnh 80 du * Khi to m Mụ t: FOR 80 ln DO Hin th du * END_FOR Lnh MOV MOV MOV m=m-1 CX,80 AH ,2 DL,* ;Khi to m ;In du * FOR_: m=0? ỳng Sai JCXZ SKIP INT 21 h LOOP FOR_ SKIP: ;lp li Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cu... t u dũng DO m=m+1 c mt ký t END_WHILE Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cu trỳc lp WHILE Vớ d: m s ký t trong mt dũng MOV MOV INT WHILE_: CMP JE INC INT JMP END_WHILE: DX,0 AH,1 21 h ;DX m s ký t ;c 1 ký t AL,0Dh END_WHILE DX 21 h WHILE_ ;cú phi ký t u dũng khụng? ;ỳng Thoỏt vũng lp ;Khụng ỳng Tng m lờn 1 ;c li 1 ký t ;lp li Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cu trỳc lp REPEAT Vũng lp... t 21 h AL, REPEAT_ ; Khụng ỳng Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Vớ d: Vit chng trỡnh cho nhp 1 ký t t mn hỡnh v xut cõu thụng bỏo cho bui sỏng, bui tra hay bui chiu tng ng vi ký t nhpvo l 'S', 's', 'T', 't', 'C', 'c' CMP JE CMP JE MODEL SMALL STACK 100h DATA CBS CBT CBC DB "CHAO BUOI SANG$" DB "CHAO BUOI TRUA$" DB "CHAO BUOI CHIEU$" CODE MOV MOV AX, @DATA DS, AX ;nhp mt ký t MOV INT AH,1 21 h . MOV AH,4Ch ;tr quyn iu khin INT 21 h MOV AH ,2 MOV CX ,25 6 ; s ký t MOV DL,0 ; NULL PRINT_LOOP INT 21 h INC DL DEC CX JNZ PRINT_LOOP Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cỏc lnh iu. AX = AX - 1 ELSE AX = AX + 1 END IF CMP AX,0 ;AX>0? JNL ELSE_ ;AX<=0 nhy DEC AX ;AX=AX-1 JMP ENDIF_ ELSE_: INC AX ;AX=AX+1 ENDIF_: Lnh 2 Chửụng 2: CAC CHặ THề LOGIC VAỉ. Giỏ tr 2 Giỏ tr k Khụng cú giỏ tr no Tp lnh 1 Tp lnh 2 Tp lnh k Tp lnh Chửụng 2: CAC CHặ THề LOGIC VAỉ ẹIEU KHIEN Cu trỳc CASE Vớ d: Nu AX>0 thỡ BX = 1, nu AX<0 thỡ BX =-1 , nu AX=0