TIN TỨC CẬP NHẬT

Bài tập asembly

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Bài tập asembly

Bài gửi by pkt_zz on 28/5/2010, 9:19 pm

Bài tập Assembly!!
23.42pm 22-03-2010

===
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 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 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
===
*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!!!
===
nhìn qua biết sai rồi
===
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ó ai có tài liệu assembler không?bài tập ý.mình đang học môn này mà khó hiểu quá đi.
thanks nhê!

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

Tình Assembly

Tình anh đó như "infinite loop".
Chỉ vì em, anh "move" mãi chẳng ngừng
Trái tim anh vẫn "push", "pop" không ngưng
"Load" tâm tình kết nên bài thơ ngắn.
"Instruction" dẫu rằng dài hay vắn,
"Overflow", "carry set" chẳng màng
Trái tim anh luôn luôn mãi "branch" ngang
"Jump" thẳng tới phương trời thương bên nớ.
Tình rộn ràng "or" tình sẽ tan vỡ??
Còn tùy theo những tín hiệu "return".
Anh "exchange" trọn vẹn cả tâm hồn
Không cần biết đến "addressing mode".
Hãy "add" dùm cho anh thêm điểm tốt
"Multiply" theo cấp số tình yêụ
Đừng "compare" tính toán thiệt hơn nhiều,
Cứ "shift" theo nhịp trái tim, em nhé.
Thấy tật xấu, em nhớ "clear", đừng kể
Chỉ "extend" ưu điểm gấp bội thêm,
Rồi "link" cùng những kỷ niệm êm đềm
Mình đã "swap" cùng nhau từ thuở nớ.
Lưới tình yêu "trap" đôi ta vào rọ
Trói đời nhau theo "logic" của trái tim:


Hihi!học môn này mình thấy đau đầu quá bạn ơi!
===
ai lam duoc bai nao thi pót len cho anh em di!
thank!

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

tui thay hoc assem cung binh thuong ma.cac lenh de hieu nhung de viet duoc chuong trinh thi can phai cham,tui dang hoc viet chuong trinh...

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

anh em can bai giang lien lac voi tui theo mail [You must be registered and logged in to see this link.],tui se gui bai giang va bai tap huong dan lam cho.chuc moi nguoi hoc tot!
===
ban nao lam duoc bai nay ko:hiển thị thông tin đĩa cứng
dung assembly hay C gi cung duoc

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

help nhanh nha,minh sap het thoi han roi
===
co ai trong dien dan ko
cho minh hoi 1 ti

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

co ban nao con o dien dan ko
help minh voi

pkt_zz
THƯỢNG TƯỚNG V
THƯỢNG TƯỚNG V

Tổng số bài gửi : 1029
Join date : 15/12/2009
Age : 25
Đến từ : MẠC XÁ-QUANG PHỤC

Xem lý lịch thành viên http://lop12a5thpttk-0609.forumotion.net

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết