Professional Documents
Culture Documents
Lap Trinh Assembler
Lap Trinh Assembler
value_n : Statements_n
V d : Nu AX <0 th t -1 vo BX
Nu AX =0 th t 0 vo BX
Nu AX >0 th t 1 vo BX
Thut ton :
CASE AX
<0 put -1 in BX
=0 put 0 in BX
>0 put 1 in BX
Case l mt cu trc r nhnh nhiu
hng. Cu trc ca CASE nh sau :
CASE expression
value_1 : Statements_1
value_2 : Statements_2
value_n : Statements_n
V d : Nu AX <0 th t -1 vo BX
Nu AX =0 th t 0 vo BX
Nu AX >0 th t 1 vo BX
Thut ton :
CASE AX
<0 put -1 in BX
=0 put 0 in BX
>0 put 1 in BX
C th m ho nh sau :
; case AX
CMP AX,0 ;test AX
J L NEGATIVE ;AX<0
J E ZERO ;AX=0
J G positive ;AX>0
NEGATIVE:
MOV BX,-1
J MP END_CASE
ZERO:
MOV BX,0
J MP END_CASE
POSITIVE:
MOV BX,1
J MP END_CASE
END_CASE :
C th m ho nh sau :
; case AX
CMP AX,0 ;test AX
J L NEGATIVE ;AX<0
J E ZERO ;AX=0
J G positive ;AX>0
NEGATIVE:
MOV BX,-1
J MP END_CASE
ZERO:
MOV BX,0
J MP END_CASE
POSITIVE:
MOV BX,1
J MP END_CASE
END_CASE :
Bin son: L Minh Trit
R nhnh vi t hp cc iu kin R nhnh vi t hp cc iu kin
i khi tnh trng r nhnh trong cc
lnh IF ,CASE cn mt t hp cc
iu kin di dng :
Condition_1 AND Condition_2
Condition_1 OR Condition_2
i khi tnh trng r nhnh trong cc
lnh IF ,CASE cn mt t hp cc
iu kin di dng :
Condition_1 AND Condition_2
Condition_1 OR Condition_2
Bin son: L Minh Trit
V d v iu kin AND : V d v iu kin AND :
c 1 k t v nu l k t hoa th in ra MH.
Thut ton :
Read a character ( into AL)
IF ( A<= character ) AND ( charater <= Z)
THEN
display character
END_IF
c 1 k t v nu l k t hoa th in ra MH.
Thut ton :
Read a character ( into AL)
IF ( A<= character ) AND ( charater <= Z)
THEN
display character
END_IF
Bin son: L Minh Trit
V d v iu kin AND:
c 1 k t v nu l k t hoa th in ra MH.
V d v iu kin AND:
c 1 k t v nu l k t hoa th in ra MH.
; read a character
MOV AH,1
INT 21H ; character in AL
; IF ( A<= character ) AND ( charater <= Z)
CMP AL,A ; char >=A?
J NGE END_IF ;no, exit
CMP AL,Z ; char <=Z?
J NLE END_IF ; no exit
; then display it
MOV DL,AL
MOV AH,2
INT 21H
END_IF :
; read a character
MOV AH,1
INT 21H ; character in AL
; IF ( A<= character ) AND ( charater <= Z)
CMP AL,A ; char >=A?
J NGE END_IF ;no, exit
CMP AL,Z ; char <=Z?
J NLE END_IF ; no exit
; then display it
MOV DL,AL
MOV AH,2
INT 21H
END_IF :
Bin son: L Minh Trit
V d v iu kin OR : c mt k t , nu k t l Y hoc y
th in n ln mn hnh , ngc li th kt thc chng trnh .
V d v iu kin OR : c mt k t , nu k t l Y hoc y
th in n ln mn hnh , ngc li th kt thc chng trnh .
Thut ton
Read a charcter ( into AL)
IF ( chr =Y) OR ( chr=y)
THEN
dispplay it
ELSE
terminate the program
END_IF
Code
;read a character
MOV AH,1
INT 21H
; character in AL
Thut ton
Read a charcter ( into AL)
IF ( chr =Y) OR ( chr=y)
THEN
dispplay it
ELSE
terminate the program
END_IF
Code
;read a character
MOV AH,1
INT 21H
; character in AL
;IF ( chr =y ) OR ( chr = Y)
CMP AL,y ; chr =y?
J E THEN ;=, in Chr
CMP AL,Y ; chr =Y?
J E THEN ;=, in Chr
J MP ELSE_ ;<> , terminate
THEN :
MOV DL,AL
MOV AH,2
INT 21H
J MP END_IF
ELSE_:
MOV AH,4CH
INT 21h
END_IF :
;IF ( chr =y ) OR ( chr = Y)
CMP AL,y ; chr =y?
J E THEN ;=, in Chr
CMP AL,Y ; chr =Y?
J E THEN ;=, in Chr
J MP ELSE_ ;<> , terminate
THEN :
MOV DL,AL
MOV AH,2
INT 21H
J MP END_IF
ELSE_:
MOV AH,4CH
INT 21h
END_IF :
Bin son: L Minh Trit
3.13 Cu trc lp 3.13 Cu trc lp
Mt vng lp gm nhiu lnh c
lp li, s ln lp ph thuc iu kin.
a. Vng FOR
b. Vng WHI LE
c. Vng REPEAT
Mt vng lp gm nhiu lnh c
lp li, s ln lp ph thuc iu kin.
a. Vng FOR
b. Vng WHI LE
c. Vng REPEAT
Bin son: L Minh Trit
a. Vng FOR a. Vng FOR
Lnh LOOP c th dng thc hin vng FOR.
C php :
LOOP destination_label
S m cho vng lp l thanh ghi CX m ban u n
c gn 1 gi tr no . Khi lnh LOOP c thc hin
CX s t ng gim i 1. Nu CX cha bng 0 th vng
lp c thc hin tip tc. Nu CX=0 lnh sau lnh LOOP
c thc hin
Dng lnh LOOP , vng FOR c th thc hin nh sau :
; gn cho cho CX s ln lp
TOP:
; thn ca vng lp
LOOP TOP
Lnh LOOP c th dng thc hin vng FOR.
C php :
LOOP destination_label
S m cho vng lp l thanh ghi CX m ban u n
c gn 1 gi tr no . Khi lnh LOOP c thc hin
CX s t ng gim i 1. Nu CX cha bng 0 th vng
lp c thc hin tip tc. Nu CX=0 lnh sau lnh LOOP
c thc hin
Dng lnh LOOP , vng FOR c th thc hin nh sau :
; gn cho cho CX s ln lp
TOP:
; thn ca vng lp
LOOP TOP
Bin son: L Minh Trit
V d : Dng vng lp in ra 1
hng 80 du *
V d : Dng vng lp in ra 1
hng 80 du *
MOV CX,80 ; CX ch s ln lp
MOV AH,2 ; hmxut k t
MOV DL,* ;DL ch k t *
TOP:
INT 21h ; in du *
LOOPTOP ; lp 80 ln
Lu rng vng FOR cng nh lnh LOOP thc
hin t nht l 1 ln. Do o nu ban u CX=0 th
vng lp s thc hin lp n 65535 ln.
trnh tnh trng ny, lnh J CXZ (J ump if CX is
zero) phi c dng trc vng lp.
MOV CX,80 ; CX ch s ln lp
MOV AH,2 ; hmxut k t
MOV DL,* ;DL ch k t *
TOP:
INT 21h ; in du *
LOOPTOP ; lp 80 ln
Lu rng vng FOR cng nh lnh LOOP thc
hin t nht l 1 ln. Do o nu ban u CX=0 th
vng lp s thc hin lp n 65535 ln.
trnh tnh trng ny, lnh J CXZ (J ump if CX is
zero) phi c dng trc vng lp.
Bin son: L Minh Trit
Lnh J XCZc c php nh sau :
J CXZ destination_label
Nu CX=0 iu khin c chuyn cho
destination_label. Cc lnh sau y s mbo
vng lp khng thc hin nu CX=0
J CXZ SKIP
TOP :
; thn vng lp
LOOPTOP
SKIP :
Lnh J XCZc c php nh sau :
J CXZ destination_label
Nu CX=0 iu khin c chuyn cho
destination_label. Cc lnh sau y s mbo
vng lp khng thc hin nu CX=0
J CXZ SKIP
TOP :
; thn vng lp
LOOPTOP
SKIP :
Bin son: L Minh Trit
b. Vng WHILE b. Vng WHILE
Vng WHILE phu thuc vo 1 iu kin. Nu iu kin
ng thi thc hin vng WHILE. V vy nu iu kin sai
thi vng WHILE khng thc hin gi c .
V d : Vit on m m s ky t c nhp vo trn
cng mt hng .
MOV DX,0 ; DX ms ky t
MOV AH,1 ;hmc 1 ky t
INT 21h ; c ky t vo AL
WHILE_:
CMP AL,0DH ; c phi l ky t CR?
J E END_WHILE ; ng , thot
INC DX ;tng DX ln 1
INT 21h ; c ky t
J MP WHILE_ ; lp
END_WHILE :
Vng WHILE phu thuc vo 1 iu kin. Nu iu kin
ng thi thc hin vng WHILE. V vy nu iu kin sai
thi vng WHILE khng thc hin gi c .
V d : Vit on m m s ky t c nhp vo trn
cng mt hng .
MOV DX,0 ; DX ms ky t
MOV AH,1 ;hmc 1 ky t
INT 21h ; c ky t vo AL
WHILE_:
CMP AL,0DH ; c phi l ky t CR?
J E END_WHILE ; ng , thot
INC DX ;tng DX ln 1
INT 21h ; c ky t
J MP WHILE_ ; lp
END_WHILE :
Bin son: L Minh Trit
c. Vng REPEAT c. Vng REPEAT
Cu trc REPEAT: repeat statements
until condition
Trong cu trc repeat mnh c thi hnh ng thi iu
kin c kimtra. Nu iu kin ng th vng lp kt thc.
V d : Vit on m c vo cc k t cho n khi gp k t trng .
MOV AH,1 ; c k t
REPEAT:
INT 21h ; k t trn AL
;until
CMP AL, ; AL= ?
J NE REPEAT
Lu : REPEAT tin hnh t nht 1 ln, trong khi WHILE c th
khng tin hnh ln no nu t u iu kin b sai.
Cu trc REPEAT: repeat statements
until condition
Trong cu trc repeat mnh c thi hnh ng thi iu
kin c kimtra. Nu iu kin ng th vng lp kt thc.
V d : Vit on m c vo cc k t cho n khi gp k t trng .
MOV AH,1 ; c k t
REPEAT:
INT 21h ; k t trn AL
;until
CMP AL, ; AL= ?
J NE REPEAT
Lu : REPEAT tin hnh t nht 1 ln, trong khi WHILE c th
khng tin hnh ln no nu t u iu kin b sai.
Bin son: L Minh Trit
3.14 Lp trnh vi cu trc cp cao 3.14 Lp trnh vi cu trc cp cao
Bi ton : Vit chng trnh nhc ngi dng
g vo mt dng vn bn. m s k t va
nhp vo v in ra kt qu
Kt qa chy chng trnh s nh sau :
Nhapvao 1 dongky tu:
SUPHAM
So ky tu nhap vao =7
Bi ton : Vit chng trnh nhc ngi dng
g vo mt dng vn bn. m s k t va
nhp vo v in ra kt qu
Kt qa chy chng trnh s nh sau :
Nhapvao 1 dongky tu:
SUPHAM
So ky tu nhap vao =7
Bin son: L Minh Trit
.MODEL SMALL
.STACK 100h
.DATA
Tbao DB Nhap vao 1 dong ky tu:$
Tbao2 DB 0Dh,0Ah, So ky tu ban nhap vao la:
Sokt DB ?,$
.CODE
Begin:
MOV AX, @DATA
MOV DS, AX
LEA DX,Tbao
MOV AH, 09h
INT 21h
MOV DX,0 ; DX ms ky t
MOV AH,1 ;hmc 1 ky t
INT 21h ; c ky t vo AL
.MODEL SMALL
.STACK 100h
.DATA
Tbao DB Nhap vao 1 dong ky tu:$
Tbao2 DB 0Dh,0Ah, So ky tu ban nhap vao la:
Sokt DB ?,$
.CODE
Begin:
MOV AX, @DATA
MOV DS, AX
LEA DX,Tbao
MOV AH, 09h
INT 21h
MOV DX,0 ; DX ms ky t
MOV AH,1 ;hmc 1 ky t
INT 21h ; c ky t vo AL
WHILE_:
CMP AL,0DH
; c phi l ky t CR?
J E END_WHILE;
ng , thot
INC DX
;tng DX ln 1
INT 21h
; c ky t
J MP WHILE_
; lp
END_WHILE :
MOV Sokt,DX
LEA DX,Tbao2
MOV AH, 09h
INT 21h
MOV AX,4C00h
INT 21h
END Begin
Bin son: L Minh Trit
3.14 Lp trnh vi cu trc cp cao 3.14 Lp trnh vi cu trc cp cao
Bi ton : Vit chng trnh nhc ngi dng
g vo mt dng vn bn. Trn 2 dng tip
theo in ra k t vit hoa u tin v k t vit
hoa cui cng theo th t alphabetical. Nu
ngi dng g vo mt k t thng, my s
thng bo No capitals
Kt qa chy chng trnh s nh sau :
Type a line of text :
TRUONGDAI HOC SUPHAM
First capital =A
Last capital =U
Bi ton : Vit chng trnh nhc ngi dng
g vo mt dng vn bn. Trn 2 dng tip
theo in ra k t vit hoa u tin v k t vit
hoa cui cng theo th t alphabetical. Nu
ngi dng g vo mt k t thng, my s
thng bo No capitals
Kt qa chy chng trnh s nh sau :
Type a line of text :
TRUONGDAI HOC SUPHAM
First capital =A
Last capital =U
Bin son: L Minh Trit
gii bi ton ny ta dng k thut lp
trnh TOP-DOWN, ngha l chia nh bi
ton thnh nhiu bi ton con. C th
chia bi ton thnh 3 bi ton con nh
sau :
1. Xut 1 chui k t ( li nhc)
2. c v x l 1 dng vn bn
3. In kt qa
gii bi ton ny ta dng k thut lp
trnh TOP-DOWN, ngha l chia nh bi
ton thnh nhiu bi ton con. C th
chia bi ton thnh 3 bi ton con nh
sau :
1. Xut 1 chui k t ( li nhc)
2. c v x l 1 dng vn bn
3. In kt qa
Bin son: L Minh Trit
Bc 1: Hin du nhc . Bc 1: Hin du nhc .
Bc ny c th m ho nh sau :
MOV AH,9 ; hmxut chui
LEA DX,PRMOPT ;ly a ch chui vo DX
INT 21H ; xut chui
Du nhc c th m ho nh sau trong on s liu .
PROMPT DB Type a line of text:,0DH,0AH,$
Bc ny c th m ho nh sau :
MOV AH,9 ; hmxut chui
LEA DX,PRMOPT ;ly a ch chui vo DX
INT 21H ; xut chui
Du nhc c th m ho nh sau trong on s liu .
PROMPT DB Type a line of text:,0DH,0AH,$
Bin son: L Minh Trit
Bc 2 : c v x l mt
dng vn bn
Bc 2 : c v x l mt
dng vn bn
c cc k t t bn phm , tm ra k t u v k t cui , nhc nh ngi dng
nu k t g vo khng phi l k t hoa.
C th biu din bc ny bi thut ton sau :
Read a character
WHILE character is not a carrige return DO
IF character is a capital (*)
THEN
IF character precedes first capital
Then
first capital=character
End_if
IF character follows last character
Then
last character =character
End_if
END_IF
Read a character
END_WHILE
Trong dng (*) c ngha l iu kin k t l hoa l iu kin AND
IF ( A<=character ) AND( character <=Z)
c cc k t t bn phm , tm ra k t u v k t cui , nhc nh ngi dng
nu k t g vo khng phi l k t hoa.
C th biu din bc ny bi thut ton sau :
Read a character
WHILE character is not a carrige return DO
IF character is a capital (*)
THEN
IF character precedes first capital
Then
first capital=character
End_if
IF character follows last character
Then
last character =character
End_if
END_IF
Read a character
END_WHILE
Trong dng (*) c ngha l iu kin k t l hoa l iu kin AND
IF ( A<=character ) AND( character <=Z)
Bin son: L Minh Trit
MOV AH,1 ; c k t
INT 21H ; k t trn AL
WHILE :
;trong khi k t g vo khng phi l CR th
thc hin
CMP AL,0DH ; CR?
J E END_WHILE ;yes, thot
; nu k t l hoa
CMP AL,A ; char >=A?
J NGE END_IF
;khng phi k t hoa th nhy n END_IF
CMP AL,Z ; char <= Z?
J NLE END_IF
; khng phi k t hoa th nhy n END_IF
; th
; nu k t nmtrc bin FIRST (gi tr ban
u l[ : k t sau Z )
CMP AL,FISRT ; char <FIRST ?
J NL CHECK_LAST; >=
; th k t vit hoa u tin =k t
MOV FIRST,AL ;FIRST=chr.
;end_if
MOV AH,1 ; c k t
INT 21H ; k t trn AL
WHILE :
;trong khi k t g vo khng phi l CR th
thc hin
CMP AL,0DH ; CR?
J E END_WHILE ;yes, thot
; nu k t l hoa
CMP AL,A ; char >=A?
J NGE END_IF
;khng phi k t hoa th nhy n END_IF
CMP AL,Z ; char <= Z?
J NLE END_IF
; khng phi k t hoa th nhy n END_IF
; th
; nu k t nmtrc bin FIRST (gi tr ban
u l[ : k t sau Z )
CMP AL,FISRT ; char <FIRST ?
J NL CHECK_LAST; >=
; th k t vit hoa u tin =k t
MOV FIRST,AL ;FIRST=chr.
;end_if
CHECK_LAST:
; nu k t l sau bin LAST ( gi tr ban u l
@: k t trc A)
CMP AL,LAST ; char > LAST ?
J NG END_IF ; <=
;th k t cui cng =k t
MOV LAST, AL ;LAST = character
;end_if
END_IF :
; c mt k t
INT 21H ; k t trn AL
J MP WHILE_ ; lp
END_WHILE:
Cc bin FIRST v LAST nh ngha nh sau:
FIRST DB [ $ ;[ l k t sau Z
LAST DB @ $ ;@ l k t trc A
CHECK_LAST:
; nu k t l sau bin LAST ( gi tr ban u l
@: k t trc A)
CMP AL,LAST ; char > LAST ?
J NG END_IF ; <=
;th k t cui cng =k t
MOV LAST, AL ;LAST = character
;end_if
END_IF :
; c mt k t
INT 21H ; k t trn AL
J MP WHILE_ ; lp
END_WHILE:
Cc bin FIRST v LAST nh ngha nh sau:
FIRST DB [ $ ;[ l k t sau Z
LAST DB @ $ ;@ l k t trc A
Bin son: L Minh Trit
MOV AH,1 ; c k t
INT 21H ; k t trn AL
;trong khi k t g vo khng phi l CR
th thc hin
CMP AL,0DH ; CR?
J E END_IF ; thot
;Xet ktu in hoa
CMP AL,A ; char >=A?
J NGE END_IF
CMP AL,Z ; char <= Z?
J NLE END_IF ; khng phi
k t hoa th nhy n END_IF
; nu tha th
;Thong bao ra MH la kt in hoa
Else_:
;Thong bao ra MH o la kt in hoa
END_IF :
MOV AH,1 ; c k t
INT 21H ; k t trn AL
;trong khi k t g vo khng phi l CR
th thc hin
CMP AL,0DH ; CR?
J E END_IF ; thot
;Xet ktu in hoa
CMP AL,A ; char >=A?
J NGE END_IF
CMP AL,Z ; char <= Z?
J NLE END_IF ; khng phi
k t hoa th nhy n END_IF
; nu tha th
;Thong bao ra MH la kt in hoa
Else_:
;Thong bao ra MH o la kt in hoa
END_IF :
Bin son: L Minh Trit
Bc 3 : In kt qa Bc 3 : In kt qa
Thut ton
IF no capital were typed
THEN
display No capital
ELSE
display first capital and last capital
END_IF
Bc 3 s phi in ra cc thng bo :
NOCAP_MSGnu khng phi ch in
CAP1_MSG ch in u tin
CAP2_MSG ch in cui cng
Chng c nh ngha nh sau trong on s liu .
NOCAP_MSG DB 0DH,0AH,No capitals $
CAP1_MSG DB 0DH,0AH, First capital=
FIRST DB [ $
CAP2_MSG DB 0DH,0AH,Last capital=
LAST DB @ $
Thut ton
IF no capital were typed
THEN
display No capital
ELSE
display first capital and last capital
END_IF
Bc 3 s phi in ra cc thng bo :
NOCAP_MSGnu khng phi ch in
CAP1_MSG ch in u tin
CAP2_MSG ch in cui cng
Chng c nh ngha nh sau trong on s liu .
NOCAP_MSG DB 0DH,0AH,No capitals $
CAP1_MSG DB 0DH,0AH, First capital=
FIRST DB [ $
CAP2_MSG DB 0DH,0AH,Last capital=
LAST DB @ $
Bin son: L Minh Trit
Bc 3 c th m ho nh sau : Bc 3 c th m ho nh sau :
;in kt qu
MOV AH,9 ; hmxut k t
; IF khng c ch hoa no c nhp th FIRST =[
CMP FIRST,[ ; FIRST=[ ?
J NECAPS ; khng , in kt qa
;THEN
LEADX,NOCAP_MSG
INT 21H
CAPS:
LEADX,CAP1_MSG
INT 21H
LEADX,CAP2_MSG
INT 21H
; end_if
;in kt qu
MOV AH,9 ; hmxut k t
; IF khng c ch hoa no c nhp th FIRST =[
CMP FIRST,[ ; FIRST=[ ?
J NECAPS ; khng , in kt qa
;THEN
LEADX,NOCAP_MSG
INT 21H
CAPS:
LEADX,CAP1_MSG
INT 21H
LEADX,CAP2_MSG
INT 21H
; end_if
Bin son: L Minh Trit
Chng trnh c th vit nh sau: Chng trnh c th vit nh sau:
.MODEL SMALL
.STACK 100h
.DATA
PROMPT DB Type a line of text, 0DH, AH, $
NOCAP_MSG DB 0DH,0AH, No capitals $
CAP1_MSGDB 0DH,0AH, First capital=
FIRST DB [ $
CAP2_MSGDB Last capital =
LAST DB @ $
.CODE
MAIN PROC
; khi to DS
MOV AX,@DATA
MOV DS,AX
; in du nhc
MOV AH,9 ; hmxut chui
LEA DX,PROMPT ;ly a ch chui vo DX
INT 21H ; xut chui
.MODEL SMALL
.STACK 100h
.DATA
PROMPT DB Type a line of text, 0DH, AH, $
NOCAP_MSG DB 0DH,0AH, No capitals $
CAP1_MSGDB 0DH,0AH, First capital=
FIRST DB [ $
CAP2_MSGDB Last capital =
LAST DB @ $
.CODE
MAIN PROC
; khi to DS
MOV AX,@DATA
MOV DS,AX
; in du nhc
MOV AH,9 ; hmxut chui
LEA DX,PROMPT ;ly a ch chui vo DX
INT 21H ; xut chui
Bin son: L Minh Trit
;c v x l 1 dng vn bn
MOV AH,1 ; c k t
INT 21H ; k t trn AL
WHILE :
;trong khi k t g vo khng phi l CR th thc hin
CMP AL,0DH ; CR?
J E END_WHILE ;yes, thot
; nu k t l hoa
CMP AL,A ; char >=A?
J NGE END_IF ;0 phi K.t hoa, nhy n END_IF
CMP AL,Z ; char <= Z?
J NLE END_IF ; 0 phi k.t hoa, nhy n END_IF
; th
; nu k t nmtrc bin FIRST
CMP AL,FISRT ; char < FIRST ?
J NL CHECK_LAST ; >=
; th k t vit hoa u tin =k t
MOV FIRST,AL ; FIRST=character
;end_if
;c v x l 1 dng vn bn
MOV AH,1 ; c k t
INT 21H ; k t trn AL
WHILE :
;trong khi k t g vo khng phi l CR th thc hin
CMP AL,0DH ; CR?
J E END_WHILE ;yes, thot
; nu k t l hoa
CMP AL,A ; char >=A?
J NGE END_IF ;0 phi K.t hoa, nhy n END_IF
CMP AL,Z ; char <= Z?
J NLE END_IF ; 0 phi k.t hoa, nhy n END_IF
; th
; nu k t nmtrc bin FIRST
CMP AL,FISRT ; char < FIRST ?
J NL CHECK_LAST ; >=
; th k t vit hoa u tin =k t
MOV FIRST,AL ; FIRST=character
;end_if
Bin son: L Minh Trit
CHECK_LAST:
; nu k t l sau bin LAST
CMP AL,LAST ; char > LAST ?
J NG END_IF ; <=
;th k t cui cng =k t
MOV LAST, AL ;LAST = character
;end_if
END_IF :
; c mt k t
INT 21H ; k t trn AL
J MP WHILE_ ; lp
END_WHILE:
CHECK_LAST:
; nu k t l sau bin LAST
CMP AL,LAST ; char > LAST ?
J NG END_IF ; <=
;th k t cui cng =k t
MOV LAST, AL ;LAST = character
;end_if
END_IF :
; c mt k t
INT 21H ; k t trn AL
J MP WHILE_ ; lp
END_WHILE:
Bin son: L Minh Trit
;in kt qu
MOV AH,9 ; hmxut k t
; IF khng c ch hoa no c nhp th FIRST =[
CMP FIRST,[ ; FIRST=[ ?
J NE CAPS ; khng , in kt qa
;Then
LEA DX,NOCAP_MSG
INT 21H
CAPS:
LEA DX,CAP1_MSG
INT 21H
LEA DX,CAP2_MSG
INT 21H
; end_if
; dos exit
MOV AH,4CH
INT 21h
MAIN ENDP
END MAIN
;in kt qu
MOV AH,9 ; hmxut k t
; IF khng c ch hoa no c nhp th FIRST =[
CMP FIRST,[ ; FIRST=[ ?
J NE CAPS ; khng , in kt qa
;Then
LEA DX,NOCAP_MSG
INT 21H
CAPS:
LEA DX,CAP1_MSG
INT 21H
LEA DX,CAP2_MSG
INT 21H
; end_if
; dos exit
MOV AH,4CH
INT 21h
MAIN ENDP
END MAIN
Bin son: L Minh Trit
Bi tp1:
Vit chng trnh nhp vo 2 s (0-9), tnh tng,
hiu 2 s .
Bi tp2:
Nhp vo 1 s nguyn n, khng du (1-9)
Tnh tng=1+2+..+N
Bi tp3:
Nhp vo 1 dy s Vd: 23145. ms k s c
trong dy Vd: Day co 5 ky so.
Bi tp4:
Nhp vo 1 k t hoa ( A<=gi s <= Z).
In dy k t t n Z
Bi tp1:
Vit chng trnh nhp vo 2 s (0-9), tnh tng,
hiu 2 s .
Bi tp2:
Nhp vo 1 s nguyn n, khng du (1-9)
Tnh tng=1+2+..+N
Bi tp3:
Nhp vo 1 dy s Vd: 23145. ms k s c
trong dy Vd: Day co 5 ky so.
Bi tp4:
Nhp vo 1 k t hoa ( A<=gi s <= Z).
In dy k t t n Z
Bin son: L Minh Trit
Mul desc
Desc l thanh ghi bt k, nhn vi gi tr
trong thanh ghi AL
Kt qu lu vo AX
AAM
AH,AL
Mul desc
Desc l thanh ghi bt k, nhn vi gi tr
trong thanh ghi AL
Kt qu lu vo AX
AAM
AH,AL