Tài liệu Đáp án môn học Kỹ thuật vi xử lý pptx

4 649 4
Tài liệu Đáp án môn học Kỹ thuật vi xử lý pptx

Đang tải... (xem toàn văn)

Thông tin tài liệu

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 ĐÁP ÁN BÀI TẬP VỀ NHÀ SỐ 3 Bài 1 (20 điểm). Cho trạng thái của một hệ vi xử 8086 như sau: Các thanh ghi: AX = 4A86, 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ớ Mục a: 15 điểm Mục b: 5 điểm a) CS:0003 02 00 ADD AL, [BX + SI] ; cộng ô nhớ DS:[BX + SI] vào AL CS:0005 72 04 JB Label ; Label = IP + 04h CF=1 CS:0009 02 61 04 ADD AH, [BX + DI + 4] ; cộng ô nhớ DS:[BX + DI + 4] vào AH b) AX = 4A19h và FLAGS = 0011h Bài 2 (20 điểm). Mục a: 10 điểm Mục b: 5 điểm Mục c: 5 điểm a) Trước Label3, BX = 0000, CX = 0003, DI = 0000 và các byte từ địa chỉ SS:SP là: 02 00 05 00 06 00 b) Lệnh CX = 3 CX = 2 CX = 1 pop ax AX 0002 0005 0006 or al, 30h AX 0032 0035 0036 mov [bx][di], al STR ‘2’,‘$’,’$’,‘$’,’$’,‘$’ ‘2’,‘5’,’$’,‘$’,’$’,‘$’ ‘2’,‘5’,’6’,‘$’,’$’,‘$’ inc di DI 0001 0002 0003 c) 256 Bài 3 (30 điểm). Viết lại thân hàm InsertionSort(short A[], short N) cho dưới đây bằng ASSEMBLY (cho 8086) Tổ chức được vòng FOR 10 điểm Tổ chức được vòng WHILE 10 điểm So sánh 2 phần tử 5 điểm Chú thích tốt 5 điểm void InsertionSort(short A[], short N) { __asm { mov bx, ss:A mov cx, ss:N shl cx, 1 mov di, 2 FOR: cmp di, cx jae END_FOR mov ax, [bx][di] mov si, di dec si dec si WHILE: test si, 8000h ; hoac cmp si, 0 js END_WHILE ; jb END_WHILE mov dx, [bx][si] cmp dx, ax jbe END_WHILE mov [bx][si+2], dx dec si dec si jmp WHILE END_WHILE: mov [bx][si+2], ax inc di inc di jmp FOR END_FOR: } } Bài 4 (30 điểm). Viết được đoạn main – 5 điểm Cất các thanh ghi – 5 điểm Gán địa chỉ của tham số vào ebx – 5 điểm Kiểm tra điều kiện kết thúc FOR – 5 điểm Đổi mã tự – 5 điểm Khôi phục các thanh ghi – 5 điểm .stack 100 .data STR DB 100 DUP(?) ; char STR[100] .code MAIN PROC mov ax, @data mov ds, ax ; gets(STR) mov ah, 10 lea edx, STR int 21h ; toupper(STR) lea eax, STR push eax CALL TOUPPER ; puts(STR) mov ah, 9 lea edx, STR int 21h ; exit to DOS mov ah, 4Ch int 21h MAIN ENDP TOUPPER PROC ; cất các thanh ghi vào stack, gán địa chỉ offset của tham số cho ebx push ebp mov ebp, esp push eax push edi mov ebx, [ebp + 16] ; duyệt xâu tự xor edi, edi FOR: mov al, [ebx][edi] ; al chứa mã tự đang duyệt ; kiểm tra điều kiện kết thúc vòng for cmp al, 13 je END_FOR ; đổi tự thường thành tự in hoa cmp al, 'a' jb NO_CHANGE cmp al, 'z' ja NO_CHANGE sub al, 20h mov [ebx][edi], al NO_CHANGE: inc edi ; duyệt tự tiếp theo jmp FOR END_FOR: ; khôi phục các thanh ghi pop edi pop eax pop ebp TOUPPER ENDP END MAIN . 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 ĐÁP ÁN BÀI TẬP VỀ NHÀ SỐ 3 Bài 1. 2009-2010 ĐÁP ÁN BÀI TẬP VỀ NHÀ SỐ 3 Bà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 = 4A86, DX = FF6A, BX = 075C, SI = 0008,

Ngày đăng: 25/01/2014, 09:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan