PDA

View Full Version : ai lam được assembler giúp mình



131n76
15-05-2009, 21:03
BT là thế này:
Viết chương trình nhập vào một dãy số (một mảng) và thực hiện sắp xếp giảm dần theo thuật toán nổi bọt.

Ai biết thì giúp mình với . THANK

thuongshoo
16-05-2009, 11:16
đầu tiên, dùng ngắt 13 để nhập ký tự,
sau đó biến thành số.

rồi sắp xếp. Cái nổi bọt chỉ là dùng for nên đơn giản.

131n76
16-05-2009, 11:27
nhầm rồi bạn ơi. Cái này phải dùng ngắt 9 mà
Bạn nói vậy thà không nói còn hơn. Bạn có thể giành thời gian viết giúp tôi đc không

lqkhoi
16-05-2009, 16:14
Chú thuongshoo có thể im lặng rồi đấy. Người ta nói đôi khi lòng tốt đặt không đúng chỗ cũng không tốt đấy chú thuongshoo à :D

thuongshoo
16-05-2009, 16:59
hehehehe :D
vậy là có hiểu biết rồi! bạn hỏi như kiểu giải dùm bạn quá!

Thì y như tui nói đó thôi!

đầu tiên, làm sao để nhập số kìa!

dùng ngắt 9 để nhập từng ký tự. ví dụ nếu người dùng gõ 0 thì số nhận trong thanh ghi kết quả là 48. Như vậy trừ cho 48 thì sẽ biến thành số.
đó chỉ là nhận được từng số thôi!
nếu người dùng muốn nhập số 561 thì sao?
Vấn đề phải giải quyết nữa là nhập số lớn. Cho nhập hàng loạt các chữ vào 1 mảng. Rồi quét mà chuyển thành số.
1 = 1 x 10mũ0
61 = (1 x 10mũ0) + (6 x 10mũ2)

nói chung là có 1 công thức để đổi chuỗi ký tự thành số.

Với cách này thì có thể làm 1 số dài hết 1 thanh ghi 16 bit hoặc 32 bít nếu bạn xài assembler 32 bít. Hồi đó tui cũng làm tới cỡ này. Chứ chưa làm toán với số lớn 1 thanh ghi :D

Như vậy đã xong bài toán nhập số rồi nha! Không chỉ là nhập 1 ký tự đâu!

Tới đây thì chỉ là sắp xếp thôi! thuật giải nổi bọt thì chắc là bạn đã biết? Nếu học assembler thì chắc là bạn đã học C, Pascal rồi thì tới đây là dễ
chúc thành công! :)