Bài tập môn học Kỹ thuật vi xử lý
Số trang: 3
Loại file: doc
Dung lượng: 49.00 KB
Lượt xem: 21
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu tham khảo khoa điện tử viễn thông, bộ môn điện tử tin học.
Nội dung trích xuất từ tài liệu:
Bài tập môn học Kỹ thuật vi xử lý KHOA ĐIỆN TỬ VIỄN THÔNG BỘ MÔN ĐIỆN TỬ TIN HỌC ------------------------------- MÔN HỌC: KỸ THUẬT VI XỬ LÝ Học kỳ: 2 Năm học: 2009-2010 BÀI TẬP VỀ NHÀ SỐ 3 Hạn nộp: Buổi học VXL đầu tiên của tuần 32 (nộp quá hạn sẽ nhận điểm 0) Hạn trả bài: Buổi học cuối cùng của tuần 34Bài 1 (20 điểm). Cho trạng thái của một hệ vi xử lý 8086 như sau:Các thanh ghi: AX = 4A07, DX = FF6A, BX = 075C, SI = 0008, DI = 000A, CS = 8BB0, DS = 4636,IP = 0003, FLAGS = 0000.Bộ nhớ:Địa chỉ vật lý: Giá trị 8 ô nhớ46AC0: A6 43 C0 49 B5 F6 20 6446AC8: 38 C5 DE 80 29 73 44 E88BB00: B8 67 01 02 00 72 04 038BB08: C3 02 61 04 03 84 02 00 a) Giải mã 3 lệnh đầu tiên mà CPU sẽ thực hiện và viết các lệnh đó theo mẫu sau (15 điểm): CS:giá trị của IP các byte mã lệnh lệnh ASEMBLY ; chú thích b) Cho biết giá trị các thanh ghi AX và FLAGS sau lệnh thứ 3 (5 điểm)Bảng các mã lệnh: tra tại http://www.mlsite.net/8086Bài 2 (20 điểm). Cho chương trình ASSEMBLY sau:.stack 100.data STR DB 6 DUP(‘$’) A DW 100h.code mov ax, @data mov ds, ax mov ax, A mov bx, 10 xor cx, cxLabel1: test ax, ax jz Label2 xor dx, dx div bx push dx inc cx jmp Label1Label2: lea bx, STR xor di, diLabel3: pop ax or al, 30h mov [bx][di], al inc di loop Label3Lable4: mov dx, bx mov ah, 9 int 21hEND a) Sau khi thực hiện lệnh trước Label3, cho biết giá trị của các thanh ghi BX, CX, DI và các byte bắt đầu từ SS:SP? (10 điểm) b) Điền giá trị vào bảng sau khi thực hiện từng lệnh trong đoạn từ Lable3 đến Lable4 (5 điểm)Lệnh CX = ? … CX = ?pop ax AX …or al, 30h AX …mov [bx][di], al STR …inc di DI … c) Cho biết kết quả hiện trên màn hình (5 điểm)Bài 3 (30 điểm). Viết lại thân hàm InsertionSort(short A[], short N) cho dưới đây bằngASSEMBLY (cho 8086)void InsertionSort(short A[], short N) // short – kiểu biến 2 byte{ for (short i = 1; i < N; i++) { short X = A[i]; short j = i – 1; while (j >= 0 && A[j] > X) { A[j + 1] = A[j]; j– –; } A[j + 1] = X; }}Bài 4 (30 điểm). Viết lại chương trình C sau đây bằng ASSEMBLY (cho 80486): #include #include void toupper(char *s) { int i = 0; while (s[i] != 0) { if (s[i] >= ‘a’ && s[i] }}main(){ char STR[100]; gets(STR); // hàm nhập xâu ký tự toupper(STR); puts(STR); // hàm in xâu ký tự} Chú ý: Các hàm puts và gets có thể dùng ngắt 21h. Hàm toupper cần được viết dưới dạng chương trình con.
Nội dung trích xuất từ tài liệu:
Bài tập môn học Kỹ thuật vi xử lý KHOA ĐIỆN TỬ VIỄN THÔNG BỘ MÔN ĐIỆN TỬ TIN HỌC ------------------------------- MÔN HỌC: KỸ THUẬT VI XỬ LÝ Học kỳ: 2 Năm học: 2009-2010 BÀI TẬP VỀ NHÀ SỐ 3 Hạn nộp: Buổi học VXL đầu tiên của tuần 32 (nộp quá hạn sẽ nhận điểm 0) Hạn trả bài: Buổi học cuối cùng của tuần 34Bài 1 (20 điểm). Cho trạng thái của một hệ vi xử lý 8086 như sau:Các thanh ghi: AX = 4A07, DX = FF6A, BX = 075C, SI = 0008, DI = 000A, CS = 8BB0, DS = 4636,IP = 0003, FLAGS = 0000.Bộ nhớ:Địa chỉ vật lý: Giá trị 8 ô nhớ46AC0: A6 43 C0 49 B5 F6 20 6446AC8: 38 C5 DE 80 29 73 44 E88BB00: B8 67 01 02 00 72 04 038BB08: C3 02 61 04 03 84 02 00 a) Giải mã 3 lệnh đầu tiên mà CPU sẽ thực hiện và viết các lệnh đó theo mẫu sau (15 điểm): CS:giá trị của IP các byte mã lệnh lệnh ASEMBLY ; chú thích b) Cho biết giá trị các thanh ghi AX và FLAGS sau lệnh thứ 3 (5 điểm)Bảng các mã lệnh: tra tại http://www.mlsite.net/8086Bài 2 (20 điểm). Cho chương trình ASSEMBLY sau:.stack 100.data STR DB 6 DUP(‘$’) A DW 100h.code mov ax, @data mov ds, ax mov ax, A mov bx, 10 xor cx, cxLabel1: test ax, ax jz Label2 xor dx, dx div bx push dx inc cx jmp Label1Label2: lea bx, STR xor di, diLabel3: pop ax or al, 30h mov [bx][di], al inc di loop Label3Lable4: mov dx, bx mov ah, 9 int 21hEND a) Sau khi thực hiện lệnh trước Label3, cho biết giá trị của các thanh ghi BX, CX, DI và các byte bắt đầu từ SS:SP? (10 điểm) b) Điền giá trị vào bảng sau khi thực hiện từng lệnh trong đoạn từ Lable3 đến Lable4 (5 điểm)Lệnh CX = ? … CX = ?pop ax AX …or al, 30h AX …mov [bx][di], al STR …inc di DI … c) Cho biết kết quả hiện trên màn hình (5 điểm)Bài 3 (30 điểm). Viết lại thân hàm InsertionSort(short A[], short N) cho dưới đây bằngASSEMBLY (cho 8086)void InsertionSort(short A[], short N) // short – kiểu biến 2 byte{ for (short i = 1; i < N; i++) { short X = A[i]; short j = i – 1; while (j >= 0 && A[j] > X) { A[j + 1] = A[j]; j– –; } A[j + 1] = X; }}Bài 4 (30 điểm). Viết lại chương trình C sau đây bằng ASSEMBLY (cho 80486): #include #include void toupper(char *s) { int i = 0; while (s[i] != 0) { if (s[i] >= ‘a’ && s[i] }}main(){ char STR[100]; gets(STR); // hàm nhập xâu ký tự toupper(STR); puts(STR); // hàm in xâu ký tự} Chú ý: Các hàm puts và gets có thể dùng ngắt 21h. Hàm toupper cần được viết dưới dạng chương trình con.
Tìm kiếm theo từ khóa liên quan:
giáo dục đào tạo cao đẳng-đại học Bài tập môn học Kỹ thuật vi xử lý điện tử viễn thông điện tử tin họcTài liệu liên quan:
-
Đề cương chi tiết học phần Trí tuệ nhân tạo
12 trang 453 0 0 -
Đề cương chi tiết học phần Vi xử lý
12 trang 312 0 0 -
79 trang 232 0 0
-
Đồ án: Kỹ thuật xử lý ảnh sử dụng biến đổi Wavelet
41 trang 220 0 0 -
91 trang 211 0 0
-
BÀI THUYẾT TRÌNH CÔNG TY CỔ PHẦN
11 trang 210 0 0 -
CHẨN ĐOÁN XQUANG GAN VÀ ĐƯỜNG MẬT
11 trang 204 0 0 -
32 trang 186 0 0
-
Tìm hiểu chương trình đào tạo ngành Điện tử - Viễn thông hệ đại học: Phần 2
174 trang 180 0 0 -
Giáo trình Nguyên tắc phương pháp thẩm định giá (phần 1)
9 trang 169 0 0