You are on page 1of 9

Bài tập Assembly!!

Em có 35 bài tập Assembly cần giải quyết!! Không biết tại em ngu hay là tại Assembly
cao cấp mà e chẳng hiểu gì cả! Em post lên để nhờ các anh chú cậu zì giúp em!!

1.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.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.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.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.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ữ in thường
từ 'a' đến 'ch'.
6.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ữ in thường
từ 'ch' đến 'z'.
7.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.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 (ch1<ch2), thực hiện đếm số chữ cái trong đoạn
từ ch1 đến ch2 và lưu kết quả vào thanh ghi BX.
10.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.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. 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, 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, 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 in kết quả vào thanh ghi
DX.
15.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, 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, 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, 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, tạo ra sâ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, 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, kiểm tra xem S1 và S2 có bằng nhau hay không?
22.Cho xâu ký tự S, kiểm tra xem S có phải là xâu đối xứng hay không?
23.Cho xâu ký tự S, đếm số ký tự là chữ số có trong S.
24.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, tạo ra xâu S1 từ xâu S bằng cách lấy trong S từ vị trí thứ
i(0<i<l) n ký tự (0<n<l-i).
26.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, 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, 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, đếm số lượng ký tự 'A' có trong xâu S.
30.Cho xâu ký tự S, 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.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.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.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.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.Kiểm tra số nguyên lưu trong thanh ghi BX là số chẵn hay lẽ.

Đa tạ muôn phần

#2
13-02-2009, 16:17
Tham gia: 10-03-2008
hoang hiep Location: Nam Định
Registered User Bài viết: 24

Hình như vậy


*Bài 1*
;;;;;
.code
;Nhập 1 ký tự
MOV AH,1
INT 21h
;Kiểm tra có phải là số không
CMP AL,'0'
JL ketthuc
CMP AL,'9'
JG ketthuc
;Xuống dòng
MOV AH,2
MOV DL,0Ah
;Về đầu dòng
MOV DL,0Dh
INT 21h
;Hiển thị
MOV DL,AL
INT 21h
ketthuc:
;Thoát ra DOS
MOV AH,4Ch
INT 21h
;Hình như vậy!!!
__________________
````````___!___`````````
_.:!! ______(_)______ !!:._We are Flying!!!
``````````! ! !

#3
10-04-2009, 23:05
guevara135 Tham gia: 23-03-2009
Registered User Bài viết: 2
nhìn qua biết sai rồi

#4
27-04-2009, 11:06
khacnguoi Tham gia: 01-09-2007
Registered User Bài viết: 1
Cái này thì mình biết tí chút tại vì đang học mà. cái của mình là chương trình dịch ra .exe
còn ra .com làm sao thì mình không biết vì thầy giáo bảo không cần học cái đó. Cái này
mình đã test thử rồi chạy ngon. Giá như là Visual Basic thì nhanh quá.
Bài làm:

.model small
.stack 100h
.data
msg1 db 'nhap vao mot ky tu so:$'
msg2 db 13,10,'$'
msg3 db 'ban da nhap sai!$'
a db ?
.code
main proc
mov ax,@data
mov ds,ax
;hien thi msg1
lap: mov ah,9
lea dx,msg1
int 21h
;nhap vao
mov ah,1
int 21h
mov a,al
;do ax co the bi thay doi do lenh xuong dong
;xuong dong_msg2
mov ah,9
lea dx,msg2
int 21h
;kiem tra
cmp a,30h
jl tb
cmp a,39h
jg tb
jmp thoat
;hien thi msg3
tb: mov ah,9
lea dx,msg3
int 21h
;xuong dong_msg2
lea dx,msg2
int 21h
jmp lap
;hien thi ky tu so
thoat:
mov ah,2
mov dl,a
int 21h
;tro ve dos
mov ah,4ch
int 21h
main endp
end main

[=========> Bổ sung bài viết <=========]

.model small
.stack 100h
.data
msg1 db 'nhap vao mot ky tu so va mot ky tu hoa thuong:$'
msg2 db 'nhap vao mot ky tu so $'
msg3 db 'nhap vao mot ky tu hoa thuong:$'
msg4 db 13,10,'$'
msg5 db 'ban da nhap sai!$'
a db ?
b db ?
.code
main proc
mov ax,@data
mov ds,ax

;hien thi msg1


mov ah,9
lea dx,msg1
int 21h
;xuong dong_msg4
mov ah,9
lea dx,msg4
int 21h
;nhap vao ky tu so
;hien thi msg2
lap1: mov ah,9
lea dx,msg2
int 21h
mov ah,1
int 21h
mov a,al
;do ax co the bi thay doi boi lenh xuong dong
;xuong dong_msg4
mov ah,9
lea dx,msg4
int 21h
cmp a,30h
jl tb1
cmp a,39h
jg tb1
jmp thoat1
;hien thi msg5
tb1: mov ah,9
lea dx,msg5
int 21h
;xuong dong_msg4
lea dx,msg4
int 21h
jmp lap1
;hien thi ky tu so
thoat1:
mov ah,2
mov dl,a
int 21h
;xuong dong_msg4
mov ah,9
lea dx,msg4
int 21h

;nhap vao ky tu hoa thuong


;hien thi msg3
lap2: mov ah,9
lea dx,msg3
int 21h
mov ah,1
int 21h
xor bx,bx
mov b,al
;do ax co the bi thay doi boi lenh xuong dong
;xuong dong_msg4
mov ah,9
lea dx,msg4
int 21h
;kiem tra
cmp b,61H
jl tb2
cmp b,7AH
jg tb2
jmp thoat2

;hien thi msg5


tb2: mov ah,9
lea dx,msg5
int 21h
;xuong dong_msg4
lea dx,msg4
int 21h
jmp lap2
;hien thi ky tu so
thoat2:
mov ah,2
mov dl,b
int 21h
;tro ve dos
mov ah,4ch
int 21h
main endp
end main
[=========> Bổ sung bài viết <=========]

bài 3 này thì quá dễ

.model small
.stack 100h
.data
msg1 db 'nhap so thu nhat: $'
msg2 db 13,10,'nhap so thu 2: $'
msg3 db 13,10,'so lon nhat trong 2 so la: $'
.code
main proc
mov ax,@data
mov ds,ax
;nhap so thu nhat
mov ah,9
lea dx,msg1
int 21h
;nhap vao
mov ah,1
int 21h
and al,0fh
xor cx,cx
mov cl,al
;nhap so thu hai
mov ah,9
lea dx,msg2
int 21h
;nhap vao
mov ah,1
int 21h
and al,0fh
xor bx,bx
mov bl,al
;hien thi so lon nhat
mov ah,9
lea dx,msg3
int 21h
;so sanh
cmp bl,cl
jg ht1 ;lon hon
jl ht2 ;nho hon
ht1: add bl,30h
mov ah,2
mov dl,bl
int 21h
jmp thoat
ht2: add cl,30h
mov ah,2
mov dl,cl
int 21h
thoat: ;tro ve dos
mov ah,4ch
int 21h
main endp
end main

[=========> Bổ sung bài viết <=========]

bài 4 thì tương tự như trên thay đổi máy dòng lệnh thôi

[=========> Bổ sung bài viết <=========]

bài 5 và 6 tương tự như nhau chỉ khác ở câu lệnh lặp là repeat .. until và while .. do

.model small
.stack 100h
.data
msg1 db 'nhap vao mot chu cai in thuong: $'
msg2 db 13,10,'chu in thuong tu a den $'
msg3 db 'la: $'
msg4 db 13,10,'$'
msg5 db ' $'
k db ?
.code
main proc
mov ax,@data
mov ds,ax
;hien thi msg1
mov ah,9
lea dx,msg1
int 21h
;nhap vao
mov ah,1
int 21h
mov k,al
xor bx,bx
mov bl,60h
;hien thi msg2 va msg3
mov ah,9
lea dx,msg2
int 21h
mov ah,2
mov dl,k
int 21h
mov ah,9
lea dx,msg3
int 21h
;xuong dong
lea dx,msg4
int 21h
lap: inc bl
mov ah,2
mov dl,bl
int 21h
mov ah,9
lea dx,msg5
int 21h
cmp bl,k
je thoi
jmp lap
thoi: ;tro ve dos
mov ah,4ch
int 21h
main endp
end main
Được sửa bởi khacnguoi lúc 14:18 ngày 27-04-2009. Reason: Bổ sung bài viết

You might also like