Bài tập Z80 môn Vi xử lý
Bài 1.1
Lấy bù một của byte dữ liệu ở địa chỉ 2040H rồi đặt kết quả vào địa chỉ 2041H.
Bài 1.2
Cộng byte dữ liệu ở địa chỉ 2040H với byte dữ liệu ở địa chỉ 2041H rồi đặt kết quả vào địa chỉ 2042H.
Bài 1.3
Dịch trái byte dữ liệu ở địa chỉ 2040H 1 bit rồi đặt kết quả vào địa chỉ 2041H.
Bài 1.4
Lấy byte dữ liệu ở địa chỉ 2040H xóa 4 bit cao sau đó đặt kết quả vào địa chỉ 2041H.
Bài 1.5
Xóa nội dung ô nhớ ở địa chỉ 2040H.
Bài 1.6
Lấy byte dữ liệu ở địa chỉ 2040H tách 4 bit cao chứa vào địa chỉ 2041H, tách 4 bit thấp chứa vào địa chỉ 2042H, xóa 4 bit cao của 2 byte dữ liệu ở địa chỉ 2041H và 2042H.
BÀI TẬP Z80 Bài 1.1 Lấy bù một của byte dữ liệu ở địa chỉ 2040H rồi đặt kết quả vào địa chỉ 2041H. Bài 1.2 Cộng byte dữ liệu ở địa chỉ 2040H với byte dữ liệu ở địa chỉ 2041H rồi đặt kết quả vào địa chỉ 2042H. Bài 1.3 Dịch trái byte dữ liệu ở địa chỉ 2040H 1 bit rồi đặt kết quả vào địa chỉ 2041H. Bài 1.4 Lấy byte dữ liệu ở địa chỉ 2040H xóa 4 bit cao sau đó đặt kết quả vào địa chỉ 2041H. Bài 1.5 Xóa nội dung ô nhớ ở địa chỉ 2040H. Bài 1.6 Lấy byte dữ liệu ở địa chỉ 2040H tách 4 bit cao chứa vào địa chỉ 2041H, tách 4 bit thấp chứa vào địa chỉ 2042H, xóa 4 bit cao của 2 byte dữ liệu ở địa chỉ 2041H và 2042H. Bài 1.7 So sánh 2 byte dữ liệu ở địa chỉ 2040H và 2041H, đặt số lớn hơn vào địa chỉ 2042H. Bài 1.8 Cộng dữ liệu 16 bit ở địa chỉ 2040H và 2041H với dữ liệu 16 bit ở địa chỉ 2042H và 2043H chứa kết quả vào địa chỉ 2044H và 2045H (trong đó 8 bit cao là ở địa chỉ 2041H, 2043H và 2045H). Bài 1.9 Lấy bù 1 của dữ liệu 16 bit ở địa chỉ 2040H và 2041H chứa kết quả vào địa chỉ 2042H và 2043H. Bài 1.10 Lấy bù hai của byte dữ liệu ở địa chỉ 2040H đặt kết quả vào địa chỉ 2041H. Bài 1.11 Lấy byte dữ liệu ở địa chỉ 2041H trừ cho byte dữ liệu ở địa chỉ 2040H đặt kết quả vào địa chỉ 2042H. Bài 1.12 Dịch trái byte dữ liệu ở địa chỉ 2040H 2 bit chứa kết quả vào địa chỉ 2041H. Bài 1.13 Che 4 bit thấp byte dữ liệu ở địa chỉ 2040H (lấy 4 bit cao) đặt kết quả vào 4 bit thấp địa chỉ 2041H. Bài 1.14 Set tất cả các bit của byte dữ liệu ở địa chỉ 2040H lên 1. Bài 1.15 Ghép 4 bit thấp của 2 byte dữ liệu ở địa chỉ 2040H và 2041H thành 1 byte dữ liệu mới chứa vào địa chỉ 2042H (trong đó 4 bit thấp của dữ liệu ở địa chỉ 2040H làm 4 bit cao, 4 bit thấp của byte dữ liệu ở địa chỉ 2041H làm 4 bit thấp của byte dữ liệu mới). Bài 1.16 So sánh 2 byte dữ liệu ở địa chỉ 2040H và 2041H đặt số nhỏ hơn vào địa chỉ 2042H. Bài 1.17 Lấy bù hai của dữ liệu 16 bit chứa ở địa chỉ 2040H và 2041H chứa kết quả vào địa chỉ 2042H và 2043H. Bài 2.1 Tính tổng một chuỗi các byte số liệu. Chiều dài chuỗi đặt ở địa chỉ 2041H. Chuỗi bắt đầu từ địa chỉ 2042H. Cất kết quả vào địa chỉ 2040H. Giả sử rằng tổng là một số 8 bit và bỏ qua số nhớ. Bài 2.2 Tính tổng một chuỗi dữ liệu 16 bit. Chiều dài chuỗi chứa ở địa chỉ 2042H. Chuỗi bắt đầu từ địa chỉ 2043H. Cất kết quả vào địa chỉ 2040H (8 bit thấp) và 2041H (8 bit cao). Bài 2.3 Đếm số byte âm (bit cao nhất là 1) trong một khối. Chiều dài khối chứa ở địa chỉ 2041H. Địa chỉ bắt đầu của khối là 2042H. Chứa kết quả vào địa chỉ 2040H. Bài 2.4 Tìm số lớn nhất trong một khối dữ liệu. Chiều dài khối chứa ở địa chỉ 2041H và khối bắt đầu từ địa chỉ 2042H. Đặt số lớn nhất tìm thấy vào địa chỉ 2040H. Giả sử rằng dữ liệu trong khối là những số 8 bit không dấu. Bài 2.5 Dịch trái byte dữ liệu ở địa chỉ 2040H cho đến khi bit cao nhất của byte này là 1. Đếm số lần dịch và đặt số đếm này vào địa chỉ 2042H. Chứa byte dữ liệu sau khi dịch xong vào địa chỉ 2041H. Nếu byte dữ liệu ở 2040H là 00H (không thể thực hiện bài toán) thì xóa cả hai byte ở địa chỉ 2041H và 2042H. Bài 3.1 Xác định chiều dài của 1 chuỗi mã ASCII. Chuỗi bắt đầu từ địa chỉ 2041H. Cuối chuỗi là ký tự CR (carriage return, mã ASCII là ODH), đặt kết quả vào địa chỉ 2040H. Bài 3.2 Tìm trong 1 chuỗi mã ASCII địa chỉ của ký tự khác khoảng trắng đầu tiên. Chuỗi bắt đầu từ địa chỉ 2042H. Đặt địa chỉ của ký tự tìm thấy vào địa chỉ 2040H (byte thấp) và 2041H (byte cao), biết rằng mã ASCII của khoảng trắng là 20H. Bài 3.3 Có một khối dữ liệu chứa toàn các số từ 0 đến 9 dưới dạng mã ASCII. Tìm các số 0 ở đầu khối nếu có và thay thế tất cả các số 0 ở đầu khối này bằng ký tự khoảng trắng. Khối bắt đầu từ địa chỉ 2041H. Chiều dài của khối chứa ở địa chỉ 2040H. Bài 3.4 So sánh hai chuỗi mã ASCII xem có giống hệt nhau không. Hai chuỗi có cùng chiều dài và chiều dài được đặt ở địa chỉ 2041H. Một chuỗi bắt đầu ở địa chỉ 2042H và chuỗi kia bắt đầu ở địa chỉ 0052H. Nếu hai chuỗi giống nhau thì nạp 00H vào địa chỉ 40H. Nếu hai chuỗi khác nhau thì nạp FFH vào địa chỉ 2040H. Bài 4.1 Đổi nội dung của địa chỉ 2040H sang mã ASCII của số tương ứng. Giả sử rằng địa chỉ 2040H chứa 1 số hệ hexadecimal một digit (4 bit cao là 0) chứa kết quả vào địa chỉ 2041H. Bài 4.2 Đổi nội dung của địa chỉ 2040H sang mã của đèn Led 7 đoạn anode chung. Chứa kết quả vào địa chỉ 2042H. Nếu 2040H không chứa nhiếu hơn một digit thì nạp 00H vào địa chỉ 2042H. Bài 4.3 Giả sử địa chỉ 2040H đang chứa mã ASCII của một con số. Hãy đổi mã ASCII này sang con số tương ứng. Chứa kết quả vào địa chỉ 2041H. Nếu 2040H không chứa mã ASCII của một con số thì nạp 00 vào địa chỉ 2041H. Bài 5.1 Viết đoạn chương trình cộng hai số nhị phân nhiều byte. Số byte của mỗi số chứa ở địa chỉ 2040H. Hai số bắt đầu từ địa chỉ 2041H và 0051H. Kết quả được đặt thế vào chỗ của số bắt đầu ở địa chỉ 2041H. Bài 5.2 Viết đoạn chương trình di chuyển một khối dữ liệu có địa chỉ bắt đầu chứa ở thanh ghi HL sang vị trí mới có địa chỉ chứa trong DE. Tổng số byte của khối dữ liệu chứa ở thanh ghi BC. Bài 5.3 Viết đoạn chương trình nhân hai số nhị phân 8 bit không dấu ở địa chỉ 2040H và 2041H. Đặt byte thấp của kết quả vào địa chỉ 2042H và byte cao vào địa chỉ 2043H. Bài 6.1 Giả sử có một khối dữ liệu bắt đầu ở địa chỉ 2042H. Chiều dài khối dữ liệu chứa ở 2041H. Tìm xem byte dữ liệu ở 2040H có trong khối dữ liệu hay không. Nếu chưa có thì thêm byte này vào khối. Bài 6.2 Tìm trong 1 khối dữ liệu gồm các số 8 bit không dấu xem có số nào giống như số ở địa chỉ 2041H. Khối dữ liệu bắt đầu ở địa chỉ 2043H. Chiều dài khối chứa ở 2042H. Khối được xếp theo thứ tự tăng dần. Nếu tìm thấy thì nạp 00 vào địa chỉ 2040H nếu không tìm thấy thì nạp FFH vào 2040H. Bài 6.3 Sắp xếp 1 dãy các số nhị phân không dấu 8 bit bất kỳ theo thứ tự giảm dần. Chiều dài dãy chứa ở 2040H và dãy bắt đầu ở địa chỉ 2041H.
File đính kèm:
- bai_tap_z80_mon_vi_xu_ly.doc