DIỄN ĐÀN LỚP ĐHKT TIN_K4
Liên hệ quảng cáo MR XUÂN LỘC
EMAIL:lexuanloc350@gmail.com
SĐT:01673925350

sưu tầm những bài tập hay môn vi xử lý
DIỄN ĐÀN LỚP ĐHKT TIN K4 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VINH.


DIỄN ĐÀN LỚP ĐHKT TIN_K4

Diễn đàn được xây dựng bởi các thành viên của lớp ĐHKT TIN_K4

IndexIndex  tra cứu điểmtra cứu điểm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
(¯`’•.¸(¯`’•.¸† -‘๑’- Chủ đề có bài mới -‘๑’- †¸.•’´¯)¸.•’´¯) (¯`’•.¸ Người gửi ¸.•’´¯)-‘๑’- Thời gian -‘๑’-
THẺ VISA TRẢ TRƯỚC (PREPAID CARD). Admin Tue Mar 11, 2014 9:39 pm
vay von ngan hang daohanvndainam Sun Nov 04, 2012 8:32 am
vay mua o to tra gop daohanvndainam Sun Nov 04, 2012 8:32 am
vay mua nha tra gop daohanvndainam Sun Nov 04, 2012 8:31 am
vay bo sung von kinh doanh daohanvndainam Sun Nov 04, 2012 8:30 am
đáo hạn ngân hàng daohanvndainam Sun Nov 04, 2012 8:29 am
ẢNH THÀNH VIÊN LÊ XUÂN LỘC Admin Thu Oct 25, 2012 12:01 pm
Luyện thi IELTS hiệu quả tại Hà Nội nhungntbac Tue Apr 24, 2012 4:39 pm
Học tiếng anh giao tiếp ở đâu tốt nhất nhungntbac Thu Apr 05, 2012 2:43 pm
HỘI HỌC PHOTOSHOP tin_k4 Sun Feb 26, 2012 11:06 am
Luyện phát âm miễn phí nhungntbac Thu Feb 23, 2012 4:56 pm
Luyện thi IELTS nhungntbac Fri Feb 10, 2012 2:09 pm

Share | 
 

 sưu tầm những bài tập hay môn vi xử lý

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
LÊ XUÂN LỘC
THÀNH VIÊN TÍCH CỰC
THÀNH VIÊN TÍCH CỰC
avatar

Tổng số bài gửi : 73
Points : 131
Reputation : 1
Join date : 18/06/2011
Age : 27
Đến từ : THƯỜNG XUÂN -THANH HÓA

Bài gửiTiêu đề: sưu tầm những bài tập hay môn vi xử lý   Sat Oct 08, 2011 8:19 pm

ĐỀ BÀI

1. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào từ bàn phím một ký tự, nếu không phải là ký tự số thì nhập lại. Sau đó hiển thị ký tự vừa nhập trên dòng tiếp theo.
2. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào từ bàn phím 2 ký tự trong đó phải có 1 ký tự là số, 1 ký tự là chữ in thường.
3. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào 2 số tự nhiên nhỏ hơn 10. Tìm số lớn nhất trong 2 số và in kết quả ra màn hình trên dòng tiếp theo.
4. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào 2 số tự nhiên nhỏ hơn 10. Tìm số nhỏ nhất trong 2 số và in kết quả ra màn hình trên dòng tiếp theo.
5. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào từ bàn phím một chữ cái in thường ch và in ra các chữ cái in thường từ ‘a’ đến ch.
6. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào từ bàn phím một chữ cái in thường ch và in ra các chữ cái in thường từ ch đến ‘z’.
7. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào từ bàn phím 1 số tự nhiên N (N <10), tính tổng các số nguyên từ N đến 10 và lưu kết quả vào thanh ghi BX.
8. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào từ bàn phím 1 ký tự là chữ cái in hoa, sau đó đếm số lượng bit 1 trong biểu diễn nhị phân mã ASCII của ký tự vừa nhập.
9. Cho trước 2 chữ cái in hoa ch1 và ch2 (ch110. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào một số tự nhiên N<8, tính N! và lưu kết quả vào BX.
11. Viết chương trình hợp ngữ dạng .EXE thực hiện in dạng biểu diễn nhị phân của thanh ghi BX.
12. Cho trước 2 số tự nhiên trong 2 thanh ghi AX và BX, viết chương trình hợp ngữ dạng .EXE kiểm tra số nhỏ nhất nằm trong thanh ghi nào?
13. Cho trước 2 số tự nhiên trong 2 thanh ghi AX và BX, viết chương trình hợp ngữ dạng .EXE kiểm tra số lớn nhất nằm trong thanh ghi nào?
14. Cho trước 2 số tự nhiên trong 2 thanh ghi AX và BX, viết chương trình hợp ngữ dạng .EXE kiểm tra hiệu của 2 số, nếu có trị tuyệt đối nhỏ hơn 10 thì in trị tuyệt đối ra màn hình, ngược lại ghi kết quả vào thanh ghi DX.
15. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập một số tự nhiên N (N<65536) vào từ bàn phím và lưu kết quả vào thanh ghi BX.
16. Cho trước một số tự nhiên trong thanh ghi BX, viết chương trình hợp ngữ dạng .EXE in biểu diễn thập phân của số tự nhiên đó.
17. Cho trước một số tự nhiên trong thanh ghi BX, viết chương trình hợp ngữ dạng .EXE in biểu diễn thập lục phân của số tự nhiên đó.
18. Cho trước một số tự nhiên trong thanh ghi BX, viết chương trình hợp ngữ dạng .EXE in biểu diễn bát phân của số tự nhiên đó.
19. Cho một xâu S gồm các chữ cái in thường, viết chương trình hợp ngữ dạng .EXE tạo ra xâu S1 là xâu chứa các chữ cái in hoa của xâu S và in xâu S1 ra màn hình.
20. Cho một xâu ký tự S, viết chương trình hợp ngữ dạng .EXE tạo ra xâu S1 là xâu đảo ngược của xâu S và in xâu S1 ra màn hình.
21. Cho 2 xâu ký tự S1 và S2, viết chương trình hợp ngữ dạng .EXE kiểm tra xem S1 và S2 có bằng nhau hay không?
22. Cho xâu ký tự S, viết chương trình hợp ngữ dạng .EXE kiểm tra xem S có phải là xâu đối xứng hay không?
23. Cho xâu ký tự S, viết chương trình hợp ngữ dạng .EXE đếm số ký tự là chữ số có trong S.
24. Viết chương trình hợp ngữ dạng .EXE nhập vào từ bàn phím một xâu ký tự và lưu độ dài của xâu vào thanh ghi BX.
25. Cho xâu ký tự S độ dài l, viết chương trình hợp ngữ dạng .EXE tạo ra xâu S1 từ xâu S bằng cách lấy trong S từ vị trí thứ i (026. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập một ký tự ch vào từ bàn phím và in ra màn hình 10 dòng, mỗi dòng chứa 10 ký tự ch.
27. Cho xâu ký tự S, viết chương trình hợp ngữ dạng .EXE thực hiện tạo xâu S1 từ xâu S bằng cách loại bỏ trong xâu S các ký tự là dấu cách.
28. Cho xâu ký tự S, viết chương trình hợp ngữ dạng .EXE nhập từ bàn phím một ký tự ch và kiểm tra xem ch có trong xâu S hay không?
29. Cho xâu ký tự S, viết chương trình hợp ngữ dạng .EXE đếm số lượng ký tự ‘A’ có trong xâu S.
30. Cho xâu ký tự S, viết chương trình hợp ngữ dạng .EXE tính tổng của các ký tự số có trong xâu S và lưu kết quả vào thanh ghi BX.
31. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập số tự nhiên N (N<10) từ bàn phím và tính tổng N+(N+1)+…+10, lưu kết quả vào thanh ghi BX.
32. Viết chương trình hợp ngữ dạng .EXE thực hiện nhập N (N<10) số tự nhiên trong đoạn [0, 9] và tính tổng của các số đó lưu vào thanh ghi BX.
33. Viết chương trình hợp ngữ dạng .EXE thực hiện tính tổng của các số chẵn trong đoạn [0, 100] và lưu kết quả vào thanh ghi BX.
34. Viết chương trình hợp ngữ dạng .EXE thực hiện tính tổng của các số lẻ trong đoạn [0, 100] và lưu kết quả vào thanh ghi BX.
35. Viết chương trình hợp ngữ dạng .EXE kiểm tra số nguyên lưu trong thanh ghi BX là số chẵn hay số lẻ.

BÀI LÀM

Bài 1:
.model small
.stack 100h
.Data
Msg1 db 'Nhap vao mot ki tu la so:$'
Msg2 db 'Ki tu vua nhap khong phai la so, moi ban nhap lai:$'
Msg3 db 'So ban vua nhap la:$'
.Code
Main Proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
Lea dx,Msg1
int 21h
Mov ah,1
Int 21h
jmp tiep
Nhaplai:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,Msg2
int 21h
Mov ah,1
Int 21h
tiep:
cmp al,'0'
jl Nhaplai
cmp al,'9'
Jg Nhaplai
Mov bl,al
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,Msg3
Int 21h
Mov ah,2
Mov dl,bl
Int 21h

Mov ah,4ch
Int 21h
Main Endp
End Main

Bài 2:
.model small
.stack 100h
.Data
s db 'Nhap vao mot ki tu la so:$'
s1 db 'Ki tu vua nhap khong phai la so, moi ban nhap lai:$'
s2 db 'So ban vua nhap la:$'
s3 db 'Nhap vao mot chu in thuong:$'
s4 db 'Nhap sai, xin nhap lai:$'
s5 db 'Chu ban vua nhap:$'

.Code
Main Proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
Lea dx,s
int 21h
Mov ah,1
Int 21h
jmp tiep

Nhapso:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s1
int 21h
Mov ah,1
Int 21h
tiep:
cmp al,'0'
jb Nhapso
cmp al,'9'
Ja Nhapso
Mov bl,al
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s2
Int 21h
Mov ah,2
Mov dl,bl
Int 21h

Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Xor bl,bl
Mov ah,9
Lea dx,s3
int 21h
Mov ah,1
Int 21h
jmp tiep1

Nhapchu:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s4
int 21h
Mov ah,1
Int 21h

tiep1:
cmp al,'a'
jb Nhapchu
cmp al,'z'
Ja Nhapchu
Mov bl,al
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s5
Int 21h
Mov ah,2
Mov dl,bl
Int 21h
Call VEDOS

Main Endp
VEDOS Proc
Mov ah,4ch
Int 21h
VEDOS Endp
End Main

Bài 3:
.model small
.stack 100h
.Data
s1 db 'Nhap vao so thu nhat:$'
s2 db 'Nhap vao so thu hai:$'
s3 db 'So lon nhat la:$'
s4 db ?
s5 db 'Hai so bang nhau!$'
.Code
Main Proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
Lea dx,s1
Int 21h
Mov ah,1
Int 21h
Mov bl,al

Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s2
Int 21h
Mov ah,1
Int 21h
Mov s4,al

cmp bl,s4
je kq1
ja kq
xchg bl,s4

kq:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s3
Int 21h
Mov ah,2
Mov dl,bl
Int 21h

Mov ah,4ch
Int 21h
kq1:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s5
Int 21h

Mov ah,4ch
Int 21h
Main Endp
End Main



Bài 4:
.model small
.stack 100h
.Data
s1 db 'Nhap vao so thu nhat:$'
s2 db 'Nhap vao so thu hai:$'
s3 db 'So nho nhat la:$'
s4 db ?
s5 db 'Hai so bang nhau!$'
.Code
Main Proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
Lea dx,s1
Int 21h
Mov ah,1
Int 21h
Mov bl,al

Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s2
Int 21h
Mov ah,1
Int 21h
Mov s4,al

cmp bl,s4
jb kq
xchg bl,s4
je kq1

kq:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s3
Int 21h
Mov ah,2
Mov dl,bl
Int 21h
Mov ah,4ch
Int 21h
kq1:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s5
Int 21h

Mov ah,4ch
Int 21h
Main Endp
End Main



Bài 5:

.Model Small
.Stack 100h
.Data
s db 'Nhap vao mot chu cai in thuong:$'
s1 db 'Nhap sai! Nhap lai:$'
.Code
Main Proc
Mov ax,@Data
Mov ds,ax

Mov ah,9
Lea dx,s
Int 21h

Mov ah,1
Int 21h
Jmp Tiep
Nhap:
Mov ah,9
Lea dx,s1
Int 21h
Mov ah,1
Int 21h

Tiep:
cmp al,'a'
jb Nhap
cmp al,'z'
ja Nhap

Xor ah,ah
Sub al,60h
Mov cx,ax
Mov bl,61h
Kq:
Mov ah,2
Mov dl,bl
Int 21h
Inc bl

Loop Kq
Mov ah,4ch
Int 21h
Main Endp
End Main





Tham Khảo:
Bạn nhiệt tình quá. Mình cũng có vài bài muốn đóng góp cùng diễn đàn đây.
;================================================= =============================
; Ngay : 30/11/2006
; Chuong trinh: nhap vao 1 ki tu , xuat ra ki tu do
;================================================= =============================

.MODEL small
.STACK 100h
.DATA
sThBao1 DB 13,10,"Moi ban nhap 1 ki tu: $"
sThBao2 DB 13,10,"Ki tu vua nhap : $"
sKiTu DB ?
.CODE

@Main:
; lay dia chi data dua vao DS
MOV AX,@data
MOV DS,AX
; xuat sThBao1
MOV AH,9
MOV DX,offset sThBao1
INT 21h
; nhap 1 ki tu tu ban phim va luu trong sKiTu
MOV AH,1
INT 21h
MOV sKiTu,AL
; xuat sThBao2
MOV AH,9
MOV DX,offset sThBao2
INT 21h
; dua ki tu vao DL va xuat ki tu da nhap
MOV AH,2
MOV DL,sKiTu
INT 21h
; ket thuc chuong trinh
MOV AH,2
MOV DL,10
INT 21h
MOV AH,4Ch
INT 21h
END @Main
/////////////////////////////////////////////////////////////////
;================================================= =============================
; Ngay : 30/11/2206
; Chuong trinh: nhap vao 1 ki tu hoa , xuat ra ki tu thuong
;================================================= =============================

.MODEL small
.STACK 100h
.DATA
sThBao1 DB 13,10,"Moi ban nhap 1 ki tu: $"
sThBao2 DB 13,10,"Ki tu thuong : $"
cKiTuTh DB ?
.CODE
; lay dia chi data dua vao DS
MOV AX,@data
MOV DS,AX
; xuat sThBao1
MOV AH,9
MOV DX,offset sThBao1
INT 21h
; nhap 1 ki tu tu ban phim va luu vao AL
MOV AH,1
INT 21h
; chuyen thanh ki tu thuong va dua vao cKiTuTh
ADD AL,20h ; hoac ADD AL,32
MOV cKiTuTh,AL
; xuat sThBao2 va cKiTuTh
MOV AH,9
MOV DX,offset sThBao2
INT 21h

MOV AH,2
MOV DL,cKiTuTh
INT 21h
; ket thuc chuong trinh
MOV AH,4Ch
INT 21h
END
/////////////////////////////
;================================================= =============================
; Ngay : 30/11/2006
; Chuong trinh: nhap vao 2 so nguyen duong (1 <= x2 < x1 < 9)
; thuc hien cac phep tinh: x1-1 , x1+2 , x1+x2 , x1-x2
;================================================= =============================

.MODEL small
.STACK 100h
.DATA
sThBao1 DB 13,10,"x1 = $"
sThBao2 DB 13,10,"x2 = $"
sTBKetQua1 DB 13,10,"x1 - 1 = $"
sTBKetQua2 DB 13,10,"x1 + 1 = $"
sTBKetQua3 DB 13,10,"x1 + x2= $"
sTBKetQua4 DB 13,10,"x1 - x2= $"

iSo1 DB ?
iSo2 DB ?
.CODE
; lay dia chi data dua vao DS
MOV AX,@data
MOV DS,AX
; xuat sThBao1 & nhap iSo1 tu ban phim
MOV AH,9
MOV DX,offset sThBao1
INT 21h

MOV AH,1
INT 21h
MOV iSo1,AL
; xuat sThBao2 & nhap iSo2 tu ban phim
MOV AH,9
MOV DX,offset sThBao2
INT 21h

MOV AH,1
INT 21h
MOV iSo2,AL
; chuyen ki tu thanh so
SUB iSo1,48
SUB iSo2,48
; xuat sTBKetQua1 va ket qua phep tinh iSo1 - 1
MOV AH,9
MOV DX,offset sTBKetQua1
INT 21h

MOV BH,iSo1 ; dua iSo1 vao thanh ghi BH
DEC BH ; thuc hien phep tinh iSo1 - 1
ADD BH,48 ; chuyen ket qua tu so sang ki tu

MOV AH,2
MOV DL,BH
INT 21h
; xuat sTBKetQua2 va ket qua phep tinh iSo2 + 1
MOV AH,9
MOV DX,offset sTBKetQua2
INT 21h

MOV BH,iSo2 ; dua iSo2 vao thanh ghi BH
INC BH ; thuc hien phep tinh iSo2 + 1
ADD BH,48 ; chuyen ket qua tu so sang ki tu

MOV AH,2
MOV DL,BH
INT 21h
; xuat sTBKetQua3 va ket qua phep tinh iSo1 + iSo2
MOV AH,9
MOV DX,offset sTBKetQua3
INT 21h

MOV BH,iSo1 ; dua iSo1 vao BH
ADD BH,iSo2 ; thuc hien phep tinh iSo1 + iSo2
ADD BH,48 ; chuyen ket qua tu so sang ki tu

MOV AH,2
MOV DL,BH
INT 21h
; xuat sTBKetQua4 va ket qua phep tinh iSo1 - iSo2
MOV AH,9
MOV DX,offset sTBKetQua4
INT 21h

MOV BH,iSo1 ; dua iSo1 vao BH
SUB BH,iSo2 ; thuc hien phep tinh iSo1 - iSo2
ADD BH,48 ; chuyen ket qua tu so sang ki tu

MOV AH,2
MOV DL,BH
INT 21h
; ket thuc chuong trinh
MOV AH,4Ch
INT 21h
END
/////
Tham khảo:
Một số các mẫu bài tập lập trình hợp ngữ
Bài 1:Lập chương trình nhập vào 2 số kiểu byte,in ra màn hình tích 2 số vừa nhập
.model tiny
.stack 100h
.data
tb1 db 'nhap a=$'
tb2 13,10,'nhap b=$'
tb3 13,10,'tich 2 so la:$'
so1 db 0
so2 db 0
.code
main proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
;in thong bao nhap so thu 1
Lea dx,tb1
int 21h
nhap1:
mov ah,1
int 21h
cmp al,13 ;so sanh al voi 13
je nhap2 ;neu bang thi nhay den nhap 2
sub al,30h ; chuyen ky tu thanh so
mov dl,al ;cat al vao dl
mov al,so1 ; dua so vua nhap ve kieu byte
mov bl,10 ;gan bl =10
mul bl ;nhan al voi 10
add al,dl ;lay ket qua vua nhan cong voi so vua nhap
mov s01,al ;cat ket qua sau khi doi vao bien so1
jmp nhap1 ;nhay den nhan nhap 1
nhap2:
lea dx,tb2; in thong bao nhap so thu 2
mov ah,9
int 21h
nhap: mov ah,1
int 21h
cmp al,13 ; so sanh so vua nhap voi enter
je tinhtich ;neu bang thi tinh tich
sub al,30h ; chuyen xau vua nhap thanh so
mov dl,al ;cat so vua nhap vao dl
mov al,so2 ;dua so vua nhap ve kieu byte
mov bl,10 ;gan bl=10
mul bl ; lay so ban dau nhan voi 10
add al,dl ;lay ket qua vua nhan cong voi so vua nhap
mov s02,al ;cat ket qua sau khi doi vao bien so2
jmp nhap
tinhtich:
mov al,so1 ;dua so vua nhap ra thanh ghi al
mul so2 ;nhan voi so 2
mov bx,ax ;lay ket qua vua tinh chuyen vao thanh ghi bx
jmp tinhtich
;in tich
mov ah,9 ;hien thong bao in tich
lea dx,tb3
int 21h
mov ax,bx ;chuyen ket qua ra thanh ghi ax
mov bx,10 ;gan bx=10
xor cx,cx ;khoi tao bien dem
chia: xor dx,dx ;xoa bit cao
div bx ;lay ket qua chia cho 10 du dat dx,thuong dat ax
push dx ;day du trong dx vao ngan xep
inc cx ;tang bien dem
cmp ax,0 ;so sanh thuong voi 0
ja chia ;neu lon hon thi chia
mov ah,2 ;lay chuc nang in ky tu ra man hinh
lay: pop dx ;lay du trong stasck khoi dx
add dl,30h ;chuyen so vua nhap sang dang ky tu
int 21h ;thuc hien in ky tu nam trong dl ra man hinh
loop lay
ra: mov ah,4ch
int 21h
Main endp
End main
Bài 2 : Lập chương trình nhập vào 2 số kiểu word,in ra màn hình tổng 2 số vừa nhập
.model tiny
.stack 100h
.data
tb1 db 'nhap so thu 1:$'
tb2 db 13,10 ,'nhap so thu 2:$'
tb3 db 13,10,'tong 2 so$'
so1 dw 0
so2 dw 0
tong dw 0
.code
main proc
mov ax,@data
mov ds,ax
;in thong bao nhap so thu nhat
lea dx,tb1
mov ah,9
int 21h
nhap1:
mov ah,1
int 21h
cmp al,13 ;so sanh ky tu vua nhap voi 13
je nhap2 ;neu bang nhap so thu 2
sub al,30h ;doi ky tu sang so
mov ah,0 ;xoa bit cao
mov cx,ax ;cat so vua nhap vào cx
mov ax,so1 ;đua bien sô 1 vê kiêu byte de chuan bi nhann vói 10
mov bx,10 ;gan bx =10
mul bx ; nhân ax voi 10
add ax,cx ;công ket qua vua nhan voi so vua nhap ket qua cât vào ax
mov so1,ax ; cat kêt qua vao bién sô1
jmp nhap1
nhap2:
lea dx,tb2 ;hiên thông báo nhâp sô thu 2
mov ah,9
int 21h
nhap: mov ah,1 ;nhap sô thu 2
int 21h
cmp al,13 ;so sánh ký tu vua nhâp voi 13
je tinhtong ;nêu băng thì tính tông
sub al,30h ;chuyên ký tu sang dang sô
mov ah,0 ;xoá bít cao
mov cx,ax ;cât kêt qua vua nhap vào cx
mov ax,so2 ;đua biên sô 2 vê kiêu byte
mov bx,10 ;gan bx=10
mul bx ;nhân kêt qua vua nhap voi 10
add ax,cx ;công kêt qua vua nhân vói sô vua nhâp
mov so2,ax ;cât kêt qua vào biên sô 2
jmp nhap
tinhtong:
mov dx,tong
mov ax,so1 ;đua biên sô 1 ra thanh ghi ax
mov bx,so2 ;đua biên só 2 ra thanh ghi bx
add ax,bx ;công ax voi bx kêt qua cat vao ax
mov tong,ax ;dua kêt qua tu ax vào biên tông
inso: mov ah,9 ;hiên thông báo in tông
lea dx,tb3
int 21h
mov ax,tong ;đua kêt qua trongv bien tông ra thanh ghi ax
mov dx,0 ;xoa bit cao dx
mov bx,10 ;gán bx=10
mov cx,0 ;khoi tao biên đêm
chia: div bx ;lây kêt qua chia cho 10
push dx ;du o dx đây vao ngăn xêp
inc cx ;tăng biên đêm
cmp ax,0 ;so sanh thuong voi 0
je hienkq ;neu băng thì hiên kêt qua
xor dx,dx ;xoa bit cao trong dx
jmp chia
hienkq: pop dx ;lây du trong ngăn xêp ra khoi dx
add dl,30h ;chuyên sô thành dang ký tu
mov ah,2 ;in tông
int 21h
loop hienkq
ra: mov ah,4ch
int 21h
Main endp
End main
Bài 3 : Cho một mảng M gồm 20 phần tử kiểu Word giá trị tuỳ ý(không phải nhập giá trị các phần tử).Tính tổng giá trị các phần tử có giá trị chia hết cho 7
.model tiny
.stack 100h
.data

st1 db 13,10,'tong cac phan tu chia het cho 7:$'
st2 db 13,10,'$'
m db 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
a db 0
.code
main proc
mov ax,@data
mov ds,ax
;in thông báo nhập số thứ 1
lea dx,st1
mov ah,9
int 21h
mov cx,20 ;gán cx=20
lea si,m ;si trỏ đến ngăn nhớ đầu tiên của mảng M
mov a,0 ; khởi tạo a=0
duyet:
mov al,[si] ; đưa các giá trị trong mảng do si trỏ đến vào al
mov bl,7 ;gán bl=7
mov ah,0 ;xoá bít cao
div bl ;chia al cho 7
cmp ah,0 ;so sánh thương với 0
je tong ;nếu bằng thì tính tổng
jmp tiep
tong:
mov al,[si] ; đưa các giá trị trong mảng do si trỏ đến vào al
mov bl,a ; đ ưa số a vào bl
add al,bl ;c ộng al v ơí bl kết quả cất vào al
mov a,al ;chuyển kết quae\r vào biến a
tiep:
inc si ;tăng chỉ số mảng
inc dl ;tăng dl
loop duyet
mov al,a ;chuyển số trở lại thanh ghi al
mov bl,10 ;gán bl =10
mov cx,0 ;khởi tạo biến đếm
chia:
mov ah,0 ;xoá bít cao
div bl ;lấy kết quả chia cho 10
mov dl,ah ;chuyển dư vào dl
add dl,30h ;chuyển số sang dạng ký tự
push dx ;dẩy dư vào ngăn xếp
inc cx ;tăng biến đếm
cmp al,0 ;so sánh thương với 0
je inso ;nếu bằng thì in số
jmp chia
inso:
pop dx
mov ah,2
int 21h
loop inso

ra:
mov ah,4ch
int 21h
main endp
end main
Bài 4 : Lập chương trình nhập vào 1 số kiêu word in ra màn hình mã nhị phân tương ứng của số đó
.model tiny
.stack 100h
.data
st1 db 'Nhap so kieu WORD :$'
st2 db 13,10,'Ma nhi phan tuong ung:$'
so dw 0
.code
main proc
mov ax,@data
mov ds,ax
lea dx,st1
mov ah,9
int 21h ;In xau st1
nhap:
mov ah,1
int 21h
cmp al,13
je nhiphan
sub al,30h
mov ah,0
mov cx,ax
mov bx,10
mov ax,so
mul bx
add ax,cx
mov so,ax
jmp nhap
nhiphan:
lea dx,st2
mov ah,9
int 21h
mov cx,0
mov bx,2
mov ax,so
chia:
mov dx,0
div bx
add dx,30h
push dx
inc cx
cmp ax,0
je inso
jmp chia
inso:
pop dx
mov ah,2
int 21h
loop inso
ra:
mov ah,4ch
int 21h
main endp
end main
Bài 5 : Lập chương trình nhập vào 1 số kiêu word in ra màn hình mã Hexa tương ứng của số đó
.model tiny
.stack 100h
.data
st1 db 'nhap so kieu word:$'
st2 db 13,10,'so do duoi dang hecxa:$'
a dw 0
.code
main proc
;
mov ax,@data
mov ds,ax
;
lea dx,st1
mov ah,9
int 21h
nhap:
mov ah,1
int 21h

cmp al,13
je inso
mov ah,0
sub al,30h
mov cx,ax
mov ax,a
mov bx,10
mul bx
add ax,cx
mov a,ax
jmp nhap
inso:
;
lea dx,st2
mov ah,9
int 21h
mov bx,16
mov ax,a
mov cx,0
chia:
mov dx,0
div bx
cmp dx,10
jae doi
add dx,30h
jmp cat
doi: add dx,37h
cat:
push dx
inc cx
cmp ax,0
je hien
jmp chia
hien:
pop dx
mov ah,2
int 21h
loop hien
ra:
mov ah,4ch
int 21h
main endp
end main
Bài 6 : Nhập vào 1 mảng 15 ptu kiểu word in ra màn hình mã Hexa tương ứng của số đó
.model tiny
.stack 100h
.data
tb1 db 'Nhap mang 15 phan tu kieu word: $'
tb2 db 10,13,'Nhap phan tu : $'
tb3 db 10,13,'Phan tu co gia tri lon nhat la: $'
a dw 20 dup(0)
.code
main proc
mov ax,@data
mov ds,ax
;-----------------
lea dx,tb1
mov ah,9
int 21h
mov cx,15 ;Nhap 15 phan tu kieu word
xor si,si
nhapmang:
mov ah,9
lea dx,tb2
int 21h
push cx
nhapso:
mov ah,1
int 21h
cmp al,13
je catkq

sub al,30h
mov cl,al
xor ch,ch
mov bx,10
mov ax,a[si]
mul bx
add ax,cx
mov a[si],ax
jmp nhapso
catkq:
add si,2
pop cx
loop nhapmang
lea dx,tb3
mov ah,9
int 21h
xor si,si
mov ax,a[si]
mov cx,15 ; mov cx,14 add si,2
duyet:
cmp a[si],ax
jbe qua
mov ax,a[si]
qua:
add si,2
loop duyet

;mov ax,a[0]
xor cx,cx
mov bx,10
chia:
xor dx,dx
div bx
push dx
inc cx
cmp ax,0
jne chia
mov ah,2
hienso:
pop dx
add dl,30h
int 21h
loop hienso
;-----------------
mov ah,4ch
int 21h
main endp
end main
Tham khảo
Tiêu đề: bai tap ki thuat vi xu li( demo) Mon Mar 14, 2011 7:42 pm
________________________________________
Mình mới giải được một số bài Post cho mọi người cùng tham khảo nhé.
Bài 1:
.model small
.stack 100h
.Data
Msg1 db 'Nhap vao mot ki tu la so:$'
Msg2 db 'Ki tu vua nhap khong phai la so, moi ban nhap lai:$'
Msg3 db 'So ban vua nhap la:$'
.Code
Main Proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
Lea dx,Msg1
int 21h
Mov ah,1
Int 21h
jmp tiep
Nhaplai:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,Msg2
int 21h
Mov ah,1
Int 21h
tiep:
cmp al,'0'
jl Nhaplai
cmp al,'9'
Jg Nhaplai
Mov bl,al
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,Msg3
Int 21h
Mov ah,2
Mov dl,bl
Int 21h

Mov ah,4ch
Int 21h
Main Endp
End Main


Bài 2:
.model small
.stack 100h
.Data
s db 'Nhap vao mot ki tu la so:$'
s1 db 'Ki tu vua nhap khong phai la so, moi ban nhap lai:$'
s2 db 'So ban vua nhap la:$'
s3 db 'Nhap vao mot chu in thuong:$'
s4 db 'Nhap sai, xin nhap lai:$'
s5 db 'Chu ban vua nhap:$'

.Code
Main Proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
Lea dx,s
int 21h
Mov ah,1
Int 21h
jmp tiep

Nhapso:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s1
int 21h
Mov ah,1
Int 21h
tiep:
cmp al,'0'
jb Nhapso
cmp al,'9'
Ja Nhapso
Mov bl,al
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s2
Int 21h
Mov ah,2
Mov dl,bl
Int 21h

Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Xor bl,bl
Mov ah,9
Lea dx,s3
int 21h
Mov ah,1
Int 21h
jmp tiep1

Nhapchu:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s4
int 21h
Mov ah,1
Int 21h

tiep1:
cmp al,'a'
jb Nhapchu
cmp al,'z'
Ja Nhapchu
Mov bl,al
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s5
Int 21h
Mov ah,2
Mov dl,bl
Int 21h
Call VEDOS

Main Endp
VEDOS Proc
Mov ah,4ch
Int 21h
VEDOS Endp
End Main


Bài 3:
.model small
.stack 100h
.Data
s1 db 'Nhap vao so thu nhat:$'
s2 db 'Nhap vao so thu hai:$'
s3 db 'So lon nhat la:$'
s4 db ?
s5 db 'Hai so bang nhau!$'
.Code
Main Proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
Lea dx,s1
Int 21h
Mov ah,1
Int 21h
Mov bl,al

Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s2
Int 21h
Mov ah,1
Int 21h
Mov s4,al

cmp bl,s4
je kq1
ja kq
xchg bl,s4

kq:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s3
Int 21h
Mov ah,2
Mov dl,bl
Int 21h

Mov ah,4ch
Int 21h
kq1:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s5
Int 21h

Mov ah,4ch
Int 21h
Main Endp
End Main



Bài 4:
.model small
.stack 100h
.Data
s1 db 'Nhap vao so thu nhat:$'
s2 db 'Nhap vao so thu hai:$'
s3 db 'So nho nhat la:$'
s4 db ?
s5 db 'Hai so bang nhau!$'
.Code
Main Proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
Lea dx,s1
Int 21h
Mov ah,1
Int 21h
Mov bl,al

Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s2
Int 21h
Mov ah,1
Int 21h
Mov s4,al

cmp bl,s4
jb kq
xchg bl,s4
je kq1

kq:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s3
Int 21h
Mov ah,2
Mov dl,bl
Int 21h
Mov ah,4ch
Int 21h
kq1:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s5
Int 21h

Mov ah,4ch
Int 21h
Main Endp
End Main



Bài 5:

.Model Small
.Stack 100h
.Data
s db 'Nhap vao mot chu cai in thuong:$'
s1 db 'Nhap sai! Nhap lai:$'
.Code
Main Proc
Mov ax,@Data
Mov ds,ax

Mov ah,9
Lea dx,s
Int 21h

Mov ah,1
Int 21h
Jmp Tiep
Nhap:
Mov ah,9
Lea dx,s1
Int 21h
Mov ah,1
Int 21h

Tiep:
cmp al,'a'
jb Nhap
cmp al,'z'
ja Nhap

Xor ah,ah
Sub al,60h
Mov cx,ax
Mov bl,61h
Kq:
Mov ah,2
Mov dl,bl
Int 21h
Inc bl

Loop Kq
Mov ah,4ch
Int 21h
Main Endp
End Main

Bài 17:Viết chương trình hợp ngữ dạng .EXE thực hiện nhập vào 2 số tự nhiên nhỏ hơn 10. Tìm số nhỏ nhất trong 2 số và in kết quả ra màn hình trên dòng tiếp theo.
.model small
.stack 100h
.Data
s1 db 'Nhap vao so thu nhat:$'
s2 db 'Nhap vao so thu hai:$'
s3 db 'So nho nhat la:$'
s4 db ?
s5 db 'Hai so bang nhau!$'
.Code
Main Proc
Mov ax,@Data
Mov ds,ax
Mov ah,9
Lea dx,s1
Int 21h
Mov ah,1
Int 21h
Mov bl,al

Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h
Mov ah,9
Lea dx,s2
Int 21h
Mov ah,1
Int 21h
Mov s4,al

cmp bl,s4
jb kq
xchg bl,s4
je kq1

kq:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s3
Int 21h
Mov ah,2
Mov dl,bl
Int 21h
Mov ah,4ch
Int 21h
kq1:
Mov ah,2
Mov dl,0DH
int 21h
Mov dl,0AH
int 21h

Mov ah,9
Lea dx,s5
Int 21h

Mov ah,4ch
Int 21h
Main Endp
End Main
Về Đầu Trang Go down
hoangtink4



Tổng số bài gửi : 13
Points : 15
Reputation : 0
Join date : 29/06/2011

Bài gửiTiêu đề: Re: sưu tầm những bài tập hay môn vi xử lý   Sun Oct 30, 2011 7:41 pm

cac chu dua bai len thi phai co link chu bat anh em copy pates nj a
Về Đầu Trang Go down
LÊ XUÂN LỘC
THÀNH VIÊN TÍCH CỰC
THÀNH VIÊN TÍCH CỰC
avatar

Tổng số bài gửi : 73
Points : 131
Reputation : 1
Join date : 18/06/2011
Age : 27
Đến từ : THƯỜNG XUÂN -THANH HÓA

Bài gửiTiêu đề: Re: sưu tầm những bài tập hay môn vi xử lý   Mon Oct 31, 2011 4:00 pm

hoangtink4 đã viết:
cac chu dua bai len thi phai co link chu bat anh em copy pates nj a
link gì.mi không hiểu đề tài gì đây à.nhìn lại bài viết và chủ đề xem.cái gì mà link
Về Đầu Trang Go down
Sponsored content




Bài gửiTiêu đề: Re: sưu tầm những bài tập hay môn vi xử lý   

Về Đầu Trang Go down
 
sưu tầm những bài tập hay môn vi xử lý
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
DIỄN ĐÀN LỚP ĐHKT TIN_K4 :: GÓC HỌC TẬP :: MÔN VI XỬ LÝ-
Chuyển đến