Đại học Quang Trung
Môn Assembly – Hợp ngữ
Bài 1: Cộng Trừ Nhân Chia
.MODEL SMALL
.DATA
S1 DB 0AH,0DH,'Nhap so a:$'
S2 DB 0AH,0DH,'Nhap so b:$'
S3 DB 0AH,0DH,'Tich axb la:$'
S4 DB 0AH,0DH,'Hieu a/b la:$'
S5 DB 0AH,0DH,'Tong a+b la:$'
S6 DB 0AH,0DH,'Nhan phim bat ki ket thuc..$'
S7 DB 0AH,0DH,'NHAP SAI NHAP LAI$'
.CODE
MOV AX,@DATA
MOV DS,AX
NHAPSO:
MOV AH,9
LEA DX,S1
INT 21H
MOV AH,1
INT 21H
MOV BL,AL
MOV AH,9
LEA DX,S2
INT 21H
MOV AH,1
INT 21H
CALL KTSO
SUB BL,30H
SUB AL,30H
ADD BL,AL
ADD BL,30H
MOV AH,9
LEA DX,S5
INT 21H
MOV DL,BL
MOV AH,2
INT 21H
JMP THOAT
KTSO:
CMP AL,30H
JL TBLOI
CMP AL,39H
JG TBLOI
TBLOI:
MOV AH,9
LEA DX,S7
INT 21H
JMP NHAPSO
THOAT:
MOV AH,9
LEA DX,S6
INT 21H
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
END
Bài 2: In số lớn hơn 10
.MODEL SMALL
.DATA
S1 DB 'SO CO LAP DUOC LA:$'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV CL,0
MOV BL,0
LAP:
INC CL
CMP CL,50
JL LAP
JMP THOAT
THOAT:
MOV AH,9
LEA DX,S1
INT 21H
;In so > 10
;KT > 10 thi -10 de in so
LONHON:
SUB CL,10
INC BL
CMP CL,10
JGE LONHON
;xuat so hang chuc
MOV AH,2
MOV DL,BL
ADD DL,30h
INT 21H
;xuat so hang don vi
MOV DL,CL
ADD DL,30H
INT 21H
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
END
Bài 3 : kiểm tra số n nhập là chẵn hay lẽ
;nhap vao 1 so n, kiem tra so n chan hay le
.MODEL SMALL
.DATA
S1 DB 0AH,0DH,'Nhap so bat ky: $'
S2 DB 0AH,0DH,'So vua nhap la so LE $'
S3 DB 0AH,0DH,'So vua nhap la so CHAN $'
S4 DB 0AH,0DH,'Loi nhap so lieu. Vui long nhap so! $'
S5 DB 0AH,0DH,'Nhan 1 phim bat ky de ket thuc! $'
.CODE
MOV AX,@DATA
MOV DS,AX
NHAPSO:
MOV AH,9
LEA DX,S1
INT 21H
MOV AH,1
INT 21H
CMP AL,30H
JL TBLOINHAPSO
CMP AL,39H
JG TBLOINHAPSO
SUB AL,30H
MOV BL,AL
MOV CL,0
;Lay so vua nhap dem chia cho 2, de tim so du gan vao BL
CMP BL,0
JE SOCHAN
LAPCHIA:
SUB BL,2
CMP BL,2
JGE LAPCHIA
;So sanh so du BL voi 0
CMP BL,0
JE SOCHAN
JMP SOLE
SOLE:
MOV AH,9
LEA DX,S2
INT 21H
JMP THOAT
SOCHAN:
MOV AH,9
LEA DX,S3
INT 21H
JMP THOAT
TBLOINHAPSO:
MOV AH,9
LEA DX,S4
INT 21H
JMP NHAPSO
THOAT:
MOV AH,9
LEA DX,S5
INT 21H
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
END
Bài 4: Nhập 5 số in tổng
;nhap 5 so, in tong 5 so vua nhap
.MODEL SMALL
.DATA
S1 DB 0AH,0DH,'Nhap 5 so: $'
S2 DB 0AH,0DH,'Tong 5 so ban vua nhap= $'
S3 DB 0AH,0DH,'Nhap 1 phim de ket thuc chuong trinh!$'
S4 DB 0AH,0DH,'Loi nhap so lieu. Vui long nhap 5 so!!! $'
.CODE
MOV AX,@DATA
MOV DS,AX
NHAPSO:
MOV AH,9
LEA DX,S1
INT 21H
;Gan gia tri khoi dau cho cac bien
MOV CL,1
MOV BL,0
NHAP5SO:
MOV AH,1
INT 21H
INC CL
;Xu ly nhap sai so
CMP AL,30H
JL TBLOINHAPSO
CMP AL,39H
JG TBLOINHAPSO
;
SUB AL,30H
ADD BL,AL ; Cong don vao BL de tinh tong
CMP CL,5
JLE NHAP5SO
CMP BL,10
;Neu BL<10 thi INSO
JL INSO
;Neu BL>=10 thi chay LONHON
MOV CL,0
JGE LONHON
INSO:
MOV AH,9
LEA DX,S2
INT 21H
MOV AH,2
MOV DL,BL
ADD DL,30H
INT 21H
JMP THOAT
LONHON:
SUB BL,10
INC CL
CMP BL,10
JGE LONHON
MOV AH,9
LEA DX,S2
INT 21H
;in chu so hang chuc CL
MOV AH,2
MOV DL,CL
ADD DL,30H
INT 21H
;in chu so hang don vi BL
MOV DL,BL
ADD DL,30H
INT 21H
JMP THOAT
TBLOINHAPSO:
MOV AH,9
LEA DX,S4
INT 21H
JMP NHAPSO
THOAT:
MOV AH,9
LEA DX,S3
INT 21H
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
END
Bài 6 : Nhập 10 số có bao nhiêu số lẻ
;nhap 10 so, co bao nhieu so le?
.MODEL SMALL
.DATA
S1 DB 0AH,0DH,'Nhap 10 so: $'
S2 DB 0AH,0DH,'Tong so LE trong 10 so vua nhap la: $'
S3 DB 0AH,0DH,'Nhap 1 phim de ket thuc chuong trinh!$'
S4 DB 0AH,0DH,'Loi nhap so lieu. Vui long nhap 10 so!!! $'
.CODE
MOV AX,@DATA
MOV DS,AX
NHAPSO:
MOV AH,9
LEA DX,S1
INT 21H
;Gan gia tri khoi dau cho cac bien
MOV CL,1
MOV BL,0
NHAP10SO:
MOV AH,1
INT 21H
INC CL
;Xu ly nhap sai so
CMP AL,30H
JL TBLOINHAPSO
CMP AL,39H
JG TBLOINHAPSO
;
SUB AL,30H
;Neu so nhap vao là so 0, và chi nhap 10 so 0, quy uoc so 0 la so CHAN
CMP AL,0
JE ALL0
;Neu so nhap vao là so 1, và chi nhap 10 so 1
CMP AL,1
JE ALL1
;Nguoc lai voi cac so #0, #1
LAPCHIA:
SUB AL,2
CMP AL,2
JGE LAPCHIA
ADD BL,AL
CMP CL,10
JLE NHAP10SO
CMP BL,10
JGE LONHON
MOV AH,9
LEA DX,S2
INT 21H
MOV AH,2
MOV DL,BL
ADD DL,30H
INT 21H
JMP THOAT
ALL0:
ADD BL,0
CMP CL,10
JLE NHAP10SO
MOV AH,9
LEA DX,S2
INT 21H
MOV AH,2
MOV DL,BL
ADD DL,30H
INT 21H
JMP THOAT
ALL1:
ADD BL,1
CMP CL,10
JLE NHAP10SO
CMP BL,10
JGE LONHON
MOV AH,9
LEA DX,S2
INT 21H
MOV AH,2
MOV DL,BL
ADD DL,30H
INT 21H
JMP THOAT
LONHON:
MOV AH,9
LEA DX,S2
INT 21H
MOV AH,2
MOV DL,'1'
INT 21H
MOV DL,BL
SUB DL,10
ADD DL,30H
INT 21H
JMP THOAT
TBLOINHAPSO:
MOV AH,9
LEA DX,S4
INT 21H
JMP NHAPSO
THOAT:
MOV AH,9
LEA DX,S3
INT 21H
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
END