Giai Bai Tap Vi Xu Ly

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
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. 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

00FEH

06H

00FFH
0100H

4200H

20H

SS

+ PUSH AX

SP

SS

+ PUSH BX
SP
00FCH

00FDH
00FEH

34H
12H
06H
1

00FFH
0100H

4200H

20H

00FEH

06H

00FFH
0100H

4200H

20H

00FEH

06H

00FFH

20H

SS

+ POP DX

SP

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

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

IC1
IC2
IC3
IC4

A19
1
1
1
1
1
1
1
1

4. a) Hy s dng cc mch gii m 1/4, cc mch logic, cc vi mch EPROM 512B thit
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:
A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
1
1
1
1
1
1
1
1
0
0 0 0 0 0 0 0 0 0
1
1
1
1
1
1
1
1
0
0 1 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
1
0
1 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
1
0 1 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 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

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
IC1
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
IC2
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
IC3
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

B. 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
CMP CX,0

;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

;Xem CX c bng 0 khng?


16

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

;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

;CX cha s s m
;BX ng vai tr ch s khi chy trong mng
;SI tr vo u mng M1

MOV AH,4CH
INT 21H
MAIN ENDP
IN_DEC PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX

;Tr li iu khin cho h thng

CMP AX,0
JGE SODUONG
PUSH AX
MOV AH,2
MOV DL,'-'

;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

;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

;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

MOV AH,2
IN_SO_DU:
POP DX
OR DL,30H
INT 21H
LOOP IN_SO_DU

;In ra cc ch s ca AX

POP DX
POP CX
POP BX
POP AX
RET
IN_DEC ENDP
END MAIN

;Khi phc cc thanh ghi

;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

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

;In ra thng bo s ch s

MOV AX,CX
CALL IN_DEC

;In ra s ch s di dng h 10

MOV AH,9
LEA DX,CRLF
INT 21H

;In ra chui CRLF, xung dng

LEA DX,S3
INT 21H

; In ra thng bo cc ch s

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

;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

;Nu AX>=0, nhy ti SODUONG


;Nu AX<0, lu li s trong AX
;In ra du m -

MOV AH,2
IN_SO_DU:
POP DX
OR DL,30H
INT 21H
LOOP IN_SO_DU

;In ra cc ch s ca AX

POP DX
POP CX
POP BX
POP AX
RET
IN_DEC ENDP
END MAIN

;Khi phc cc thanh ghi

;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

;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

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 a9 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

;In ra thng bo vo cc ch s

MOV AH,1
INT 21H

;Nhp gi tr cho b

SUB AL,30H
MOV BL,AL

;i b thnh s v cha trong BL

MOV AH,9
LEA DX,CRLF
INT 21H
LEA DX,S3
INT 21H

;Xung dng

MOV AH,1

;Nhp gi tr cho c

;Xung dng
;In ra thng bo nhp b =

;In ra thng bo nhp c =

23

INT 21H
SUB AL,30H
ADD BL,AL
MOV AH,9
LEA DX,CRLF
INT 21H
LEA DX,S4
INT 21H

;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

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

;So snh tng vi 10


;Nu nh hn th nhy ti nhn NHO_HON_10
;Nu ln hn 10 th
;In ra s 1

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

;Tr li iu khin cho h thng

;V tr tng i 10

;Gn DL = BL
;i ra m ASCII ca ch s tng ng
;In ra ch s trong BL

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

;In ra thng bo Tn sa:

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

;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

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

;Tr li iu khin cho h thng

;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

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

;In ra thng bo nhp vo mt chui ch ci

LEA SI,M1
XOR CX,CX

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

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

;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