Professional Documents
Culture Documents
Giai Bai Tap Vi Xu Ly
Giai Bai Tap Vi Xu Ly
Giai Bai Tap Vi Xu Ly
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
00FDH
55H
00FEH
06H
00FFH
20H
0100H
SS
4200H
+ POP SI
SP
SS
0100H
4200H
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
A0 IO/M
0
1
0
0
1
0
1
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
12
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
;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
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
17
;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
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
;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
19
;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
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
;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
;In ra cc ch s ca AX
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
22
;In ra thng bo vo cc ch s
MOV AH,1
INT 21H
;Nhp gi tr cho b
SUB AL,30H
MOV BL,AL
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 =
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
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
;V tr tng i 10
;Gn DL = BL
;i ra m ASCII ca ch s tng ng
;In ra ch s trong BL
24
;In ra thng bo vo mt ci tn
;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
;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
26
;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
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
28
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
30
31