1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

3 814 2
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài tập về nhà số 3
Chuyên ngành Kỹ thuật vi xử lý
Thể loại Bài tập về nhà
Năm xuất bản 2009-2010
Định dạng
Số trang 3
Dung lượng 49 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

lea bx, STR Label3: pop ax mov [bx][di], al inc di Lable4: END 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

Trang 1

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 34 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 = 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 64

46AC8: 38 C5 DE 80 29 73 44 E8

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/8086

Bài 2 (20 điểm) Cho chương trình ASSEMBLY sau:

.stack 100

.data

STR DB 6 DUP(‘$’)

.code

Label1:

test ax, ax

div bx

inc cx

Label2:

Trang 2

lea bx, STR

Label3:

pop ax

mov [bx][di], al

inc di

Lable4:

END

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)

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ằng ASSEMBLY

(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 <stdio.h>

#include <conio.h>

void toupper(char *s) {

int i = 0;

while (s[i] != 0) {

if (s[i] >= ‘a’ && s[i] <= ‘z’)

s[i] –= 32;

i++;

Trang 3

}

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.

Ngày đăng: 19/01/2014, 11:20

HÌNH ẢNH LIÊN QUAN

Bảng các mã lệnh: tra tại http://www.mlsite.net/8086 - Tài liệu Bài tập môn học Kỹ thuật vi xử lý pptx
Bảng c ác mã lệnh: tra tại http://www.mlsite.net/8086 (Trang 1)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w