You are on page 1of 31

Gii bi tp Vi x l BachDH TTM K51 v1.0 Phn 1: K thut vi x l 1. B vi x l 8088 c khi to on ngn xp ti SS = 4200H.

H. Gi thit ti mt thi im BP=00FCH, BX=1234H, AX= 2006H, CX= 5566H, SP=0100H ang tr vo nh ngn xp. Hy tnh a ch v ni dung cc byte nh trong ngn xp sau cc lnh sau: PUSH AX PUSH BX POP DX PUSH CX MOV DL,[BP] POP SI Gii: Coi ln Stack l 1 byte v lu tr theo Little endian. + Ban u: a ch Ni dung

SP

0100H 4200H

SS + PUSH AX

SP

00FEH 00FFH 0100H 4200H

06H 20H

SS + PUSH BX SP 00FCH 00FDH 00FEH

34H 12H 06H


1

SS + POP DX

00FFH 0100H 4200H

20H

SP

00FEH 00FFH 0100H 4200H

06H 20H

SS + PUSH CX SP 00FCH 66H 00FDH 55H 00FEH 06H 00FFH 20H 0100H SS 4200H + MOV DL,[BP] ngn xp khng thay i SP 00FCH 66H 00FDH 55H 00FEH 06H 00FFH 20H 0100H SS 4200H + POP SI

SP

00FEH 00FFH

06H 20H
2

SS

0100H 4200H

2. B vi x l 8088 c khi to on d liu ti DS = 4200H. Gi thit ti mt thi im BX=ABF8H, SI=4E5CH, DI= 13C2H. Hy tnh a ch ton hng ngun ca cc lnh sau : a) MOV AL,[BX]+5 b) ADD AL,[3A5CH] c) MOV CL,[DI+7] d) MOV BX,[SI+BX+0FH] Gii: a) Ch a ch tng i c s 4200H:ABFDH = 4CBFDH b) Ch a ch trc tip 4200H:3A5CH = 45A5CH c) Ch a ch tng i ch s 4200H:13C9H = 433C9H d) Ch a ch tng i ch s c s 4200H:FA63H = 51A63H

3. Cho ni dung cc thanh ghi trong ca 8088 nh sau. AX= 94B3H ; BX=5AE4H ; CX= A4B7H ; DX= EA8DH. Hy cho bit kt qu cc php ton sau v ni dung cc c CF,OF,ZF sau mi php ton a) ADD AX,BX b) SUB BX,CX c) ADD CL,DL d) OR BH,AL Gii: a) Kt qu: 94B3H 1001 0100 1011 0011 ADD 5AE4H 0101 1010 1110 0100 AX = EF97H 1110 1111 1001 0111 C: CF = 0, OF = 0, ZF = 0 b) Kt qu: A4B7H 1010 0100 1011 0111 b 1 0101 1011 0100 1000 b 2 0101 1011 0100 1001 ADD 5AE4H 0101 1010 1110 0100 BX = B62DH 1011 0110 0010 1101 C: CF = 0, OF = 1, ZF = 0 c) Kt qu: B7H 1011 0111 ADD 8DH 1000 1101 44H CL = 0100 0100 C: CF = 1, OF = 1, ZF = 0 d) Kt qu: 5AH 0101 1010 OR B3H 1011 0011 FBH BH = 1111 1011 C: CF = 0, OF = 0, ZF = 0

4. a) Hy s dng cc mch gii m 1/4, cc mch logic, cc vi mch EPROM 512B thit

IC 1 IC 2 IC 3 IC 4

A19 A18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

k b nh 2kB t a ch cui cng l FFFFFH . b) Lit k a ch ca tng vi mch EPROM. Gii: Dung lng EPROM = 512B = 29B = 200H 9 chn a ch (A0 A8) Dung lng b nh = 2kB = 211B = 4.29B = 800H phi dng 4 vi mch EPROM 512B a ch u ca b nh = a ch cui ca b nh - (Dung lng b nh - 1) = FFFFFH (800H 1) = FF800H Mi vi mch EPROM c dung lng 200H nn a ch ca tng vi mch EPROM l: IC 1: a ch u = FF800H a ch cui = FF9FFH IC2: a ch u = FFA00H a ch cui = FFBFFH IC3: a ch u = FFC00H a ch cui = FFDFFH IC4: a ch u = FFE00H a ch cui = FFFFFH S a ch: A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 a ch a ch m un nh ni // add bus IC Chn mch gii m 1/4 (74LS139) S ghp ni:

A0 IO/M 0 1 0 1 0 0 1 0 1

IC 1 IC 2 IC 3

5. Thit k b nh dung lng 24KB t cc vi mch ROM 8KB v b gii m 74138 (1/8) ghp ni vi b vi x l 8088 (Ch MIN) vi a ch u t AA000H. Gii: Dung lng ROM = 8KB = 213B = 2000H 13 chn a ch (A0 A12) Dung lng b nh = 24KB = 6000H cn dng 3 vi mch ROM thit k a ch u b nh = AA000H a ch cui b nh = a ch u + (Dung lng 1) = AA000H + 6000H 1 = AFFFFH Mi vi mch ROM c dung lng 2000H nn a ch u v cui ca mi vi mch l: IC1: a ch u = AA000H a ch cui = ABFFFH IC2: a ch u = AC000H a ch cui = ADFFFH IC3: a ch u = AE000H a ch cui = AFFFFH S a ch: A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 a ch m un nh a ch IC ni // add bus Chn mch gii m 1/8 (74LS138) S ni:

A0 IO/M 0 1 0 0 1 0 1

6. Thit k mch gii m a ch cho 8 cng ra c a ch 3A8H 3AFH dng cc mch gii m 74139 (1/4). Gii: Mi mch gii m 1/4 c 4 cng ra cn dng 2 mch gii m 1/4 thit k. S a ch: A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 IO/M 3A8H 1 1 1 0 1 0 1 0 0 0 3A9H 1 1 1 0 1 0 1 0 0 1 3AAH 1 1 1 0 1 0 1 0 1 0 3ABH 1 1 1 0 1 0 1 0 1 1 1 3ACH 1 1 1 0 1 0 1 1 0 0 3ADH 1 1 1 0 1 0 1 1 0 1 3AEH 1 1 1 0 1 0 1 1 1 0 3AFH 1 1 1 0 1 0 1 1 1 1 a ch cng Chn mch gii m 1/4 (74LS139) S ni:

7. H vi x l 8088 c 2 vi mch cng PPI 8255A (Mi vi mch c 4 a ch).Hy thit k

mch gii m a ch bit a ch c s ca vi mch 1 l 2B0H cn vi mch 2 l 2B4H. Gii: S a ch: A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 IO/M 2B0H 1 0 1 0 1 1 0 0 0 0 2B1H 1 0 1 0 1 1 0 0 0 1 2B2H 1 0 1 0 1 1 0 0 1 0 2B3H 1 0 1 0 1 1 0 0 1 1 1 2B4H 1 0 1 0 1 1 0 1 0 0 2B5H 1 0 1 0 1 1 0 1 0 1 2B6H 1 0 1 0 1 1 0 1 1 0 2B7H 1 0 1 0 1 1 0 1 1 1 a ch cng S ni:

8. Cho vi mch cng 8255A c 4 cng PA, PCA, PB, PCB. Hy Vit on chng trnh t

cu hnh cho cc cng mode 0 nh sau: PA, PCA l cng vo, cn PB, PCB l cng ra. Gii: V mode 0 nn MA1MA0 = 00 MB = 0 V PA, PCA l cng vo A = CA = 1 V PB, PCB l cng ra B = CB = 0 Vy t iu khin l: IO/M MA1 MA0 A CA MB B CB 1 0 0 1 1 0 0 0 T iu khin = 98H on chng trnh t cu hnh cho cc cng: nh ngha cc hng: CW EQU 98H Cu hnh cho 8255A: MOV DX,CWR ;a CWR vo DX MOV AL,CW ;t iu khin cha trong AL OUT DX,AL ;a t iu khin ra CWR

10

Phn 2: Lp trnh hp ng A. Gii thch chng trnh 1. Cho on chng trnh hp ng sau, hy gii thch tng lnh (theo ng cnh) v cho bit kt qu trn mn hnh. MOV BH,41H ;Gn BH=41H (k t A) MOV BL,4 ;Gn BL=4 MOV AH,2 ;Gn AH=2 LAP: MOV CX,5 ;Gn CX=5 LAI: MOV DL,BH ;Chuyn ni dung BH vo DL INT 21H ;Gi ngt 21H, in ra mn hnh k t trong DL(=BH) LOOP LAI ;Lp li vic in ra mn hnh k t trong DL 5 ln (CX=5) MOV DL,_ ;Gn DL= k t _ INT 21H ;Gi ngt 21H 3 ln, in ra mn hnh 3 k t _ lin tip INT 21H INT 21H INC BH ;Tng BH 1 DEC BL ;Gim BL 1 JNZ LAP ;Nhy ti nhn LAP nu c ZF cha bt Kt qu trn mn hnh: AAAAA___BBBBB___CCCCC___DDDDD___ 2. Gii thch tng lnh v vit kt qu trn mn hnh ca on chng trnh sau MOV BH,48 ;Gn BH=48 (k t 0) MOV BL,4 ;Gn BL=4 FO1: MOV CX,5 ;Gn CX=5 MOV AH,2 ;Gn AH=2 FO2: MOV DL,BH ;Chuyn ni dung BH vo DL INT 21H ;Gi ngt 21H, in ra mn hnh k t trong DL (=BH) INC DL ;Tng DL 1 LOOP FO2 ;Lp li vic in ra mn hnh k t trong DL 5 ln MOV DL,0AH ;Gn DL=0AH (LF) INT 21H ;Gi ngt 21H, in k t iu khin LF (to mt dng mi) MOV DL,0DH ;Gn DL=0DH (CR) INT 21H ;Gi ngt 21H, in k t iu khin CR (v u dng) INC BH ;Tng BH 1 DEC BL ;Gim BL 1 JNZ FO1 ;Nhy ti nh FO1 nu c ZF cha bt Kt qu trn mn hnh: 00000 11111 22222 33333

11

3. Cho on chng trnh hp ng sau. .................................... .DATA M1 DB 0Bh,10h,15h,2DUP(?) B1 DB 10 .CODE Thu proc ................................... MOV AL,B1 ;AL = B1 = 10 (= 0Ah) LEA BX,M1 ;BX tr ti M1 ADD [BX+2],AL ;[BX+2] += AL (= M1[2] = 15h + 0Ah = 1Fh) ADD AL,[BX]+1 ;AL += [BX+1] (= 0Ah + 10h = 1Ah) MOV BX,3 ;BX = 3 MOV M1[BX],AL ;M1[3] = AL = 1Ah SUB B1,10h ;B1 -= 0Ah - 10h = FAh MOV AL,B1 ;AL = B1 = FAh INC BX ;BX += 1 = 4 MOV M1[BX],AL ;M1[4] = AL = FAh .................................. Hy cho bit gi tri mi ca mng M1 sau cc lnh trn. M1: 0Bh,10h,1Fh,1Ah,FAh

12

4. Cho on chng trnh hp ng sau. ................................. .DATA M1 DB t,h,i,l,a,i,2 DUP(*) B1 DB 20H .CODE ................................... MOV AL,B1 ;Gn AL = B1 = 20H LEA BX,M1 ;BX tr ti M1 MOV CX,6 ;Gn CX = 6 LAP: SUB [BX],AL ;[BX] -= AL = [BX] 20H (ch thng thnh ch hoa) ADD BX,1 ;BX += 1 LOOP LAP ;Lp li 6 ln ................................... MOV AH,2 ;Gn AH = 2 MOV BX,0 ;Gn BX = 0 MOV CX,8 ;Gn CX = 8 LAI: MOV DL,M1[BX] ;Gn DL = M1[BX] INT 21H ;In ra mn hnh k t trong DL INC BX ;Tng BX 1 LOOP LAI ;Lp li qu trnh trn 8 ln (CX = 8) Hy cho bit gi tri mi ca mng M1 sau cc lnh trn v kt qu trn mn hnh. M1: T,H,I,L,A,I,*,* Kt qu trn mn hnh: THILAI**

13

5. Gii thch tng lnh v vit kt qu trn mn hnh ca on chng trnh sau MOV BH,41H ;Gn BH = 41H (k t A) MOV BL,4 ;Gn BL = 4 MOV AH,2 ;Gn AH = 2 LAP: MOV CX,5 ;Gn CX = 5 LAI: MOV DL,BH ;Chuyn ni dung BH vo DL INT 21H ;Gi ngt 21H, in ra mn hnh k t trong DL OR DL,20H ;DL OR 20H (chuyn ch hoa thnh ch thng) INT 21H ;Gi ngt 21H, in ra mn hnh k t trong DL LOOP LAI ;Lp li qu trnh trn 5 ln (CX = 5) MOV DL,_ ;Gn DL = _ INT 21H ;Gi ngt 21H 3 ln, in ra 3 ln k t _ INT 21H INT 21H INC BH ;Tng BH 1 DEC BL ;Gim BL 1 JNZ LAP ;Nhy ti nhn LAP nu c ZF bt . Kt qu trn mn hnh: AaAaAaAaAa___BbBbBbBbBb___CcCcCcCcCc___DdDdDdDdDd___

14

6. Gii thch tng lnh v vit kt qu trn mn hnh ca on chng trnh sau MOV BH,0AH ;Gn BH = 0AH (k t iu khin LF) MOV DL,39H ;Gn DL = 39H (k t 9) ADD DL,BH ;DL += BH = 39H + 0AH = 43H (k t C) MOV CX,5 ;Gn CX = 5 MOV AH,2 ;Gn AH = 2 LAP: INT 21H ;Gi ngt 21H, in ra mn hnh k t trong DL LOOP LAP ;Lp li qu trnh trn 5 ln (CX = 5) XCHG BH,DL ;i ch gi tr trong BH v DL (BH = 43H, DL = 0AH) INT 21H ;Gi ngt 21H, in ra mn hnh k t trong DL (k t LF) MOV DL,0DH ;Gn DL = 0DH (k t iu khin CR) INT 21H ;Gi ngt 21H, in ra mn hnh k t trong DL (k t CR) MOV CX,8 ;Gn CX = 8 MA: XOR DL,DL ;DL XOR DL (Xa DL = 0) ROL BH,1 ;Quay tri BH 1, CF = MSB RCL DL,1 ;Quay tri DL qua c CF 1, LSB = CF ADD DL,30H ;DL += 30H (i s thnh m ASCII) INT 21H ;Gi ngt 21H, in ra mn hnh k t trong DL LOOP MA ;Lp li qu trnh trn 8 ln (CX = 8) Kt qu trn mn hnh: CCCCC 01000011

15

Bi tp lp trnh 1. Vit chng trnh hp ng y thc hin cng vic sau - Thng bo vo mt dng ch bt k, kt thc bng Enter. - Vo mt dng ch. - m s ch hoa trong dng. - Nu khng c ch hoa hin th thng bo Khng c ch hoa. - Ngc li hin th s ch hoa ln mn hnh.(gi thit s ch hoa khng qu 9). - V DOS. Gii: .MODEL SMALL .STACK 100H .DATA S1 DB 'Vao mot dong chu bat ki: $ S2 DB Khong co chu hoa$ S3 DB 0AH,0DH,$ .CODE MAIN PROC MOV AX,@DATA ;Khi to DS MOV DS,AX MOV AH,9 LEA DX,S1 INT 21H MOV AH,1 XOR CX,CX LAP1: INT 21H CMP AL,0DH JE TIEP1 CMP AL,41H JL NOTUPPER CMP AL,5AH JG NOTUPPER INC CX NOTUPPER: JMP LAP1 TIEP1: MOV AH,9 LEA DX,S3 INT 21H ;In ra thng bo vo mt dng ch bt k

;Bt u c k t vo ;CX cha s ch hoa trong dng ;c mt k t ;Xem c phi l Enter khng? ;Nu l Enter th nhy ti nhn TIEP1 ;Xem c <A khng? ;Nu <A th nhy ti nhn NOTUPPER ;Nu >=A, xt xem c >Z khng? ;Nu ln hn th nhy ti nhn NOTUPPER ;Nu <=Z th l ch hoa, tng CX 1 ;Nu khng phi l ch hoa th lp li vic c k t ;In ra chui CRLF, xung dng

16

CMP CX,0 JE NOUPPER MOV DX,CX ADD DL,30H MOV AH,2 INT 21H JMP EXIT NOUPPER: MOV AH,9 LEA DX,S2 INT 21H EXIT: MOV AH,4CH INT 21H MAIN ENDP END MAIN

;Xem CX c bng 0 khng? ;Nu CX = 0, nhy ti nh NOUPPER ; Nu CX <> 0, chuyn s ch hoa trong CX sang DX ;i sang k t s ;In ra s ch hoa ;Nhy ti nhn EXIT ;Nu khng c ch hoa, in ra thng bo S2

;Tr li iu khin cho h thng

17

2. Cho mt mng s liu c tn M1 gm 50 phn t c WORD. Vit chng trnh hp ng y m v hin th s lng phn t l s m ln mn hnh. (Gi thit c chng trnh con hin th s h 10 tn l IN_DEC, s cn hin th trong AX.) Gii: .MODEL SMALL .STACK 100H .DATA M1 DW -10,-9,2,-3,5,45 DUP(-1) .CODE MAIN PROC MOV AX,@DATA ;Khi to DS MOV DS,AX XOR CX,CX XOR BX,BX LEA SI,M1 LAP1: CMP BX,50 JE TIEP1 MOV AX,[SI] CMP AX,0 JGE SO_DUONG INC CX SO_DUONG: INC BX ADD SI,2 JMP LAP1 TIEP1: MOV AX,CX CALL IN_DEC MOV AH,4CH INT 21H MAIN ENDP IN_DEC PROC PUSH AX PUSH BX PUSH CX PUSH DX CMP AX,0 JGE SODUONG PUSH AX MOV AH,2 MOV DL,'-' ;CX cha s s m ;BX ng vai tr ch s khi chy trong mng ;SI tr vo u mng M1 ;So snh BX vi 50 ;Nu BX = 50 nhy ti nhn TIEP1 ;AX = phn t tr bi SI ;So snh AX vi 0 ;Nu AX>=0, nhy ti nhn SO_DUONG ;Nu AX<0, tng s s m 1 ;Tng BX 1 ;Tng SI 2 (do mi phn t trong M1 l 1 word) ;Lp li n khi duyt ht mng M1 ;In ra s s m h 10 ;Tr li iu khin cho h thng ;Th tc in ra s h 10 cha trong AX ;Lu li cc thanh ghi

;So snh AX vi 0 ;Nu AX>=0, nhy ti SODUONG ;Nu AX<0, lu li s trong AX ;In ra du m -

18

INT 21H POP AX NEG AX SODUONG: XOR CX,CX MOV BX,10 LAY_SO_DU: XOR DX,DX DIV BX PUSH DX INC CX CMP AX,0 JNE LAY_SO_DU MOV AH,2 IN_SO_DU: POP DX OR DL,30H INT 21H LOOP IN_SO_DU POP DX POP CX POP BX POP AX RET IN_DEC ENDP END MAIN

;Ly li s m trong AX ;Ri i du s m trong AX thnh s dng ;CX cha s ch s ca s cn in ;Gn BX = 10 ;Chun b cho php chia DXAX cho 10 ;Chia AX cho 10 ;S d ct vo Stack ;Tng s ch s ln 1 ;So snh thng vi 0 ;Nu <> 0 th lp li qu trnh chia DXAX cho 10 ;In ra cc ch s ca AX ;Ly cc s d khi chia DXAX cho 10 ;i thnh k t s trong bng ASCII ;In ra ;Lp li s ln bng s ch s ca AX ;Khi phc cc thanh ghi

19

3. Cho mt mng s liu c tn M1 gm 80 phn t, mi phn t c 1 BYTE cha 1 k t. Vit chng trnh hp ng y lm cc cng vic sau: + Vo mt dng k t lu trong mng. + m v hin th nhng k t l ch s dng tip theo. Gii: .MODEL SMALL .STACK 100H .DATA M1 DB 80 DUP(0) S1 DB Vao mot dong ki tu: $ S2 DB So chu so: $ S3 DB Cac chu so: $ CRLF DB 13,10,$ .CODE MAIN PROC MOV AX,@DATA ;Khi to DS MOV DS,AX MOV AH,9 LEA DX,S1 INT 21H XOR CX,CX LEA SI,M1 MOV AH,1 LAP1: INT 21H CMP AL,0DH JE TIEP1 MOV [SI],AL INC SI CMP AL,48 JL LAP1 CMP AL,57 JG LAP1 INC CX JMP LAP1 TIEP1: MOV [SI],$ MOV AH,9 LEA DX,CRLF ;In ra thng bo vo mt dng k t

;CX cha s ch s ;SI tr vo u mng M1

;c cc k t nhp vo ;Xem c phi phm Enter khng ;Nu ng th nhy n nhn TIEP1 ;Lu k t c c vo nh tr bi SI ;Tng SI 1 (do cc phn t trong mng kiu BYTE) ;So snh k t nhp vo vi 0 ;Nu nh hn th c k t tip theo ;So snh k t nhp vo vi 9 ;Nu ln hn th c k t tip theo ;Nu < 9 th tng s ch s ln 1 ;c k t tip theo ;Gn cho k t cui cng ca xu l $ ;In ra chui CRLF, xung dng

20

INT 21H LEA DX,S2 INT 21H MOV AX,CX CALL IN_DEC MOV AH,9 LEA DX,CRLF INT 21H LEA DX,S3 INT 21H MOV AH,2 LEA SI,M1 LAP2: CMP [SI],$ JE TIEP2 MOV DL,[SI] CMP DL,0 JL NOT_NUMBER CMP DL,9 JG NOT_NUMBER INT 21H MOV DL, INT 21H NOT_NUMBER: INC SI JMP LAP2 TIEP2: MOV AH,4CH INT 21H MAIN ENDP IN_DEC PROC PUSH AX PUSH BX PUSH CX PUSH DX CMP AX,0

;In ra thng bo s ch s

;In ra s ch s di dng h 10

;In ra chui CRLF, xung dng

; In ra thng bo cc ch s

;SI tr vo u mng M1 ;So snh [SI] vi k t $ ;Nu ng th nhy ti nhn TIEP2 ;Nu khng th gn DL bng [SI] ;So snh DL vi 0 ;Nu <0th nhy ti nhn NOT_NUMBER ;Nu >=0 th so snh vi 9 ;Nu >9 th nhy ti nhn NOT_NUMBER ;Nu <=9 th in ra ch s ;In ra du

;Nu khng phi l ch s th tng SI 1 ;Chuyn sang xt k t tip theo trong mng M1 ;Tr li iu khin cho h thng

;Th tc in ra s h 10 cha trong AX ;Lu li cc thanh ghi

;So snh AX vi 0
21

JGE SODUONG PUSH AX MOV AH,2 MOV DL,'-' INT 21H POP AX NEG AX SODUONG: XOR CX,CX MOV BX,10 LAY_SO_DU: XOR DX,DX DIV BX PUSH DX INC CX CMP AX,0 JNE LAY_SO_DU MOV AH,2 IN_SO_DU: POP DX OR DL,30H INT 21H LOOP IN_SO_DU POP DX POP CX POP BX POP AX RET IN_DEC ENDP END MAIN

;Nu AX>=0, nhy ti SODUONG ;Nu AX<0, lu li s trong AX ;In ra du m -

;Ly li s m trong AX ;Ri i du s m trong AX thnh s dng ;CX cha s ch s ca s cn in ;Gn BX = 10 ;Chun b cho php chia DXAX cho 10 ;Chia AX cho 10 ;S d ct vo Stack ;Tng s ch s ln 1 ;So snh thng vi 0 ;Nu <> 0 th lp li qu trnh chia DXAX cho 10 ;In ra cc ch s ca AX ;Ly cc s d khi chia DXAX cho 10 ;i thnh k t s trong bng ASCII ;In ra ;Lp li s ln bng s ch s ca AX ;Khi phc cc thanh ghi

22

4. Vit chng trnh hp ng y tnh a=b+c vi iu kin:

+ a,b,c l cc bin kiu byte. + Thng bo vo gi tr b,c bng mt s h 10 t bn phm. + Tnh a=b+c v thng bo kt qu ln mn hnh. (Nu a>9 hy tr i 10 v in ra s 1, i a ra ch s v hin th. ) + V DOS. Gii: .MODEL SMALL .STACK 100H .DATA S1 DB Vao cac chu so tu 0 9: $ S2 DB b = $ S3 DB c = $ S4 DB Tong cua b va c la: $ CRLF DB 13,10,$ .CODE MAIN PROC MOV AX,@DATA ;Khi to DS MOV DS,AX MOV AH,9 LEA DX,S1 INT 21H LEA DX,CRLF INT 21H LEA DX,S2 INT 21H MOV AH,1 INT 21H SUB AL,30H MOV BL,AL MOV AH,9 LEA DX,CRLF INT 21H LEA DX,S3 INT 21H MOV AH,1 ;In ra thng bo vo cc ch s

;Xung dng ;In ra thng bo nhp b =

;Nhp gi tr cho b

;i b thnh s v cha trong BL

;Xung dng

;In ra thng bo nhp c =

;Nhp gi tr cho c
23

INT 21H SUB AL,30H ADD BL,AL MOV AH,9 LEA DX,CRLF INT 21H LEA DX,S4 INT 21H CMP BL,10 JL NHO_HON_10 MOV AH,2 MOV DL,1 INT 21H SUB BL,10 NHO_HON_10: MOV AH,2 MOV DL,BL ADD DL,30H INT 21H MOV AH,4CH INT 21H MAIN ENDP END MAIN

;i c thnh s ;Thc hin b + c v cha kt qu trong BL ;Xung dng

;In ra thng bo tng ca b v c l

;So snh tng vi 10 ;Nu nh hn th nhy ti nhn NHO_HON_10 ;Nu ln hn 10 th ;In ra s 1 ;V tr tng i 10

;Gn DL = BL ;i ra m ASCII ca ch s tng ng ;In ra ch s trong BL ;Tr li iu khin cho h thng

24

5. Vit chng trnh hp ng y thc hin cng vic sau - Thng bo vo mt t bt k.( T di nht cng khng qu 15 k t) - Vo mt t v lu trong mng c tn Name ( m s ch). - Nu ch u l ch thng i thnh ch hoa. - Nu cc ch tip theo l hoa i thnh thng. - Hin th t sa dng tip theo. - V DOS. V d: Bn hy vo mt ci tn: BiNH Tn sa: Binh Gii: .MODEL SMALL .STACK 100H .DATA S1 DB Ban hay vao mot cai ten: $ S2 DB Ten da sua: $ S3 DB 15 DUP(0) CRLF DB 13,10,$ .CODE MAIN PROC MOV AX,@DATA ;Khi to DS MOV DS,AX MOV AH,9 LEA DX,S1 INT 21H XOR CX,CX LEA SI,S3 MOV AH,1 LAP1: INT 21H CMP AL,13 JE TIEP1 MOV [SI],AL INC CX INC SI JMP LAP1 TIEP1: MOV [SI],$ MOV AH,9 ;In ra thng bo vo mt ci tn

;CX cha s ch ci ca xu nhp vo ;SI tr vo u mng S3

;c mt k t ;Xem c n phm Enter khng? ;Nu l phm Enter, nhy ti nhn TIEP1 ;Lu k t va nhp vo mng ;Tng s ch ci ln 1 ;Tng SI 1 ;c k t tip theo ;Gn k t cui cng ca xu l $ ;Xung dng
25

LEA DX,CRLF INT 21H LEA DX,S2 INT 21H LEA SI,S3 MOV AL,[SI] CMP AL,a JL NOT_LOWER CMP AL,z JG NOT_LOWER SUB AL,20H NOT_LOWER: MOV AH,2 MOV DL,AL INT 21H DEC CX LAP2: INC SI MOV AL,[SI] CMP AL,A JL NOT_UPPER CMP AL,Z JG NOT_UPPER ADD AL,20H NOT_UPPER: MOV AH,2 MOV DL,AL INT 21H LOOP LAP2 MOV AH,4CH INT 21H MAIN ENDP END MAIN

;In ra thng bo Tn sa:

;SI tr vo u mng S3 ;Gn AL = [SI] ;So snh k t u vi a ;Nu <a th nhy ti nhn NOT_LOWER ;Nu >=a th so snh vi z ;Nu >z th nhy ti nhn NOT_LOWER ;Nu <=z th i thnh ch hoa ;In ra k t u tin ca xu cha trong AL

;Tng SI, tr ti k t tip theo trong xu ;Gn AL = [SI] ;So snh AL vi A ;Nu <A th nhy n nhn NOT_UPPER ;Nu >=A th so snh vi Z ;Nu >Z th nhy n nhn NOT_UPPER ;Nu <=Z th l ch hoa, i thnh ch thng ;In ra k t trong AL

;Lp li vi cc k t tip theo ;Tr li iu khin cho h thng

26

6. Vit chng trnh hp ng y thc hin cng vic sau - Hin th thng bo :Hy g vo mt chui ch ci hoa, CR thi - Nhn chui ch ci hoa. - Xung dng v u dng. - Hin th thng bo :Ch cui cng i ra ch thng - Hin th ch cui i ra ch thng. - V DOS. Gii: .MODEL SMALL .STACK 100H .DATA S1 DB Hay go vao mot chuoi chu cai hoa, CR de thoi: $ S2 DB Chu cuoi cung da doi ra chu thuong: $ CRLF DB 13,10,$ .CODE MAIN PROC MOV AX,@DATA ;Khi to DS MOV DS,AX MOV AH,9 LEA DX,S1 INT 21H MOV AH,1 LAP1: INT 21H CMP AL,13 JE TIEP1 MOV BL,AL JMP LAP1 TIEP1: MOV AH,9 LEA DX,CRLF INT 21H LEA DX,S2 INT 21H MOV AH,2 MOV DL,BL ADD DL,20H INT 21H ;In ra thng bo vo mt chui ch hoa

;c mt k t ;Xem c n Enter khng? ;Nu n Enter th nhy n nhn TIEP1 ;Cha k t va c trong BL ;c k t tip theo ;Xung dng

;In ra thng bo ch cui cng i ra ch thng

;Chuyn ch cui cng cha trong BL vo DL ;i ra ch thng ;In ra ch cui cng i thnh ch thng
27

MOV AH,4CH INT 21H MAIN ENDP END MAIN

;Tr li iu khin cho h thng

28

7. Vit chng trnh hp ng y thc hin cng vic sau - Hin th thng bo :Hy g vo mt chui ch ci, hai ch ging nhau thi - Nhn chui ch ci, lu vo mng, nu l ch thng i ra ch hoa. - Xung dng v u dng. - Hin th thng bo :Ch cui cng i ra ch hoa - Hin th ch cui i ra ch hoa. - V DOS. Gii: .MODEL SMALL .STACK 100H .DATA S1 DB Hay go vao mot chuoi chu cai, hai chu giong nhau de thoi: $ S2 DB Chu cuoi cung da doi ra chu hoa: $ M1 DB 100 DUP(0) CRLF DB 13,10,$ .CODE MAIN PROC MOV AX,@DATA ;Khi to DS MOV DS,AX MOV AH,9 LEA DX,S1 INT 21H LEA SI,M1 XOR CX,CX MOV AH,1 INT 21H MOV BL,AL MOV [SI],AL INC SI INC CX LAP1: INT 21H CMP AL,BL JE TIEP1 MOV BL,AL MOV [SI],AL INC SI INC CX ;In ra thng bo nhp vo mt chui ch ci

;SI tr vo u mng M1 ;CX cha s k t ca chui

;Nhp k t u tin ;Cha trong BL ;Lu k t u tin vo mng ;Tng SI 1 ;Tng CX 1 ;c k t tip theo ;So snh vi k t trc y ;Nu bng nhau th nhy n nhn TIEP1 ;Nu khc th lu li k t va nhp vo BL ;Lu k t va nhp vo mng ;Tng SI 1 ;Tng CX 1
29

JMP LAP1 TIEP1: MOV [SI],AL INC CX MOV [SI+1],$ LEA SI,M1 LAP2: MOV BL,[SI] CMP BL,a JL NOT_LOWER CMP BL,z JG NOT_LOWER SUB BL,20H MOV BH,BL NOT_LOWER: INC SI LOOP LAP2 MOV AH,9 LEA DX,CRLF INT 21H LEA DX,S2 INT 21H MOV AH,2 MOV DL,BH INT 21H MOV AH,4CH INT 21H MAIN ENDP END MAIN

;c k t tip theo ;Lu k t cui cng vo mng ;Tng CX 1 ;Lu k t cui cng ca xu l $ ;SI tr vo u mng M1 ;Gn BL = [SI] ;So snh BL vi a ;Nu <a th nhy n nhn NOT_LOWER ;Nu >=a th so snh vi z ;Nu >z th nhy n nhn NOT_LOWER ;Nu <=z th i thnh ch hoa ;Lu li ch thng cui cng i thnh ch hoa ;Tng SI ;Xt phn t tip theo trong mng, lp li CX ln ;Xung dng

;In ra thng bo ch cui cng i thnh ch hoa

;In ra ch cui cng trong BL

;Tr li iu khin cho h thng

30

31

You might also like