Assembly Practice Exercises

2
I. Bài tp 1. Nhp vào hai sa và b. Tính tng, hiệu, tích, thương của hai sa và b vi tùy chọn: Khi người dùng nhn phím s1 stính tng, phím s2 sthc hin phép tr, phím 3 tính tích và 4 schia hai s. Và in kết quva tính ra màn hình. 2. Nhp N sbt kì. Đếm các slớn hơn 10 và nhỏ hơn 20 và tính tổng ca chúng. Sau đó hiển thkết qulên màn hình. 3. Nhp vào mt dãy các s. Tìm giá trln nhất, và đưa ra màn hình. 4. Nhp vào mt dãy các s. Tìm giá trnhnhất, và đưa ra màn hình. 5. Chuyn mt sthp phân sang snhphân. 6. Tính n! (n< 9) 7. Nhp vào một năm. Kiểm tra năm đó có nhuận hay không? 8. Nhp vào bán kính R. Tính chu vi và din tích hình tròn. 9. Nhp vào 2 cnh a và b. Tính chu vi, din tích hình chnht. 10. Nhp vào mt số nguyên dương N. Tính tổng S= 1+2+….+ N, và in kết qura màn hình. II. Hướng dn thc hành Để làm mt bài tp. Ví dtính tng dãy sS= 1+2+….+ N. Thc hin theo các bước như sau: - B1: viết chương trình in ra màn hình mt scó giá trị được lưu trong một thanh ghi dùng chung (ví dAX). - B2: viết chương trình nhp vào 1 s, giá trnhậ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 nhp vào mt sN, tính tổng S và lưu kết quvào thanh ghi dùng chung. Hin thgiá trtthanh ghi lên màn hình. Note : - Tách chương trình thành các bước nh, kim tra, bt li và chy mỗi bước. Sau khi làm xong bước 1, sbổ xung bước 2 vào chương trình. Tiếp tc dch và kim tra li. Chy thành công thì bsung và chuyn tiếp sang bước 3. - Làm tphn dễ và tăng dần cấp độ khó. Không làm một chương trình ln ngay từ đầu skhó dch, khó bt li, và ko hình dung được thut toán. - Viết tách ri tng nhóm lnh và ghi chú tác dụng hay tính năng của mi dòng lnh. Ví d: ;khoi tao gia tri ban dau cua DS mov ax,@data mov ds,ax ;In ra man hinh chuoi ki tu

Transcript of Assembly Practice Exercises

Page 1: 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

Page 2: Assembly Practice Exercises

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