Assembly Practice Exercises

Post on 17-Feb-2015

179 views 2 download

Transcript of Assembly Practice Exercises

I. Bài tập1. Nhập vào hai số a và b. Tính tổng, hiệu, tích, thương của hai số a và b với tùy

chọn: Khi người dùng nhấn phím số 1 sẽ tính tổng, phím số 2 sẽ thực hiện phép trừ, phím 3 tính tích và 4 sẽ chia hai số. Và in kết quả vừa tính ra màn hình.

2. Nhập N số bất kì. Đếm các số lớn hơn 10 và nhỏ hơn 20 và tính tổng của chúng. Sau đó hiển thị kết quả lên màn hình.

3. Nhập vào một dãy các số. Tìm giá trị lớn nhất, và đưa ra màn hình.4. Nhập vào một dãy các số. Tìm giá trị nhỏ nhất, và đưa ra màn hình.5. Chuyển một số thập phân sang số nhị phân.6. Tính n! (n< 9)7. Nhập vào một năm. Kiểm tra năm đó có nhuận hay không?8. Nhập vào bán kính R. Tính chu vi và diện tích hình tròn.9. Nhập vào 2 cạnh a và b. Tính chu vi, diện tích hình chữ nhật.10. Nhập vào một số nguyên dương N. Tính tổng S= 1+2+….+ N, và in kết quả ra

màn hình.

II. Hướng dẫn thực hành Để làm một bài tập. Ví dụ tính tổng dãy số S= 1+2+….+ N. Thực hiện theo các bước như sau:

- B1: viết chương trình in ra màn hình một số có giá trị được lưu trong một thanh ghi dùng chung (ví dụ AX).

- B2: viết chương trình nhập vào 1 số, giá trị nhập lưu trong thanh ghi dùng chung (ví dụ AX), sau đó in giá trị đó lên màn hình.

- B3: Viết chương trình nhập vào một số N, tính tổng S và lưu kết quả vào thanh ghi dùng chung. Hiển thị giá trị từ thanh ghi lên màn hình.

Note:- Tách chương trình thành các bước nhỏ, kiểm tra, bắt lỗi và chạy mỗi bước.

Sau khi làm xong bước 1, sẽ bổ xung bước 2 vào chương trình. Tiếp tục dịch và kiểm tra lỗi. Chạy thành công thì bổ sung và chuyển tiếp sang bước 3.

- Làm từ phần dễ và tăng dần cấp độ khó. Không làm một chương trình lớn ngay từ đầu sẽ khó dịch, khó bắt lỗi, và ko hình dung được thuật toán.

- Viết tách rời từng nhóm lệnh và ghi chú tác dụng hay tính năng của mỗi dòng lệnh.

Ví dụ:

;khoi tao gia tri ban dau cua DSmov ax,@data mov ds,ax

;In ra man hinh chuoi ki tu

mov dx,offset msg mov ah,09 int 21h

;Dung man hinh ket qua( doi nhan 1 ki tu) mov ah,1 int 21h

;Tro lai Dos( tra lai quyen cho HDH)mov ah,4chint 21h

- Viết các lệnh thành các cấp và có thụt lùi đầu dòng

Ví dụ:.model small.stack 100h.data

msg db 'Hello world$'

.code

;khoi tao gia tri ban dau cua DSmov ax,@data mov ds,ax

………………;Dung man hinh ket qua( doi nhan 1 ki tu)

mov ah,1 int 21h

;Tro lai Dos( tra lai quyen cho HDH)mov ah,4chint 21h

end