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

tổng hợp bài tập môn học vi xử lý vi điều khiển

28 2K 18

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 811,76 KB

Nội dung

Hãy chỉ ra trạng thái của các cờ trong thanh ghi cờ sau khi thực hiện các lệnh trên.. Giải thích cách xác định địa chỉ vật lý của một ô nhớ trong bộ nhớ.. Giải thích cách xác định địa ch

Trang 1

TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP

Trang 2

TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP

KHOA ĐIỆN TỬ

BỘ MÔN TIN HỌC CÔNG NGHIỆP

-o0o -

SÁCH GIAO BÀI TẬP TÊN HỌC PHẦN: VI XỬ LÝ – VI ĐIỀU KHIỂN

MÃ HỌC PHẦN: TEE408

Thái nguyên, ngày … tháng… năm 2014

TRƯỞNG BỘ MÔN THCN NGƯỜI BIÊN SOẠN

NGUYỄN TUÁN LINH

Lưu hành nội bộ

Trang 3

CHƯƠNG 1 TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN

1.1 Hãy chuyển đổi các số nguyên dương thập phân sau đây ra nhị phân 1 byte:

1.9 Hãy chuyển đổi các số thập lục phân lẻ sau đây ra thập phân :

AF.22 , 20.E , A5.2F , CF.04 , B8.9 , D9.E , E5.A

1.10 Đổi các số sau từ hệ thập phân sang hệ nhị phân:

Trang 4

1.21 Cho biết kết quả khi thực hiện trên máy tính các phép cộng sau (8 bit) và giải thích:

a) 56 + 78 (không dấu); b) 121 + 40 (không dấu)

1.26 Tính tổng sau: 4A9Bh + 97A2h

1.27 Đổi các giá trị sau thành byte

Trang 6

Hãy chỉ ra trạng thái của các cờ trong thanh ghi cờ sau khi thực hiện các lệnh trên

2.5 Giải thích cách xác định địa chỉ vật lý của một ô nhớ trong bộ nhớ

- Giả sử địa chỉ một ô nhớ được xác định qua thanh ghi đoạn DS và thanh ghi lệch BX với DS=0F35h, BX=150Dh Hãy xác định địa chỉ vật lý và địa chỉ logic của ô nhớ trên Ô nhớ trên thuộc đoạn nào trong bộ nhớ

2.6 Giải thích cách xác định địa chỉ vật lý của một ô nhớ trong bộ nhớ

- Giả sử địa chỉ một ô nhớ được xác định qua thanh ghi đoạn CS và thanh ghi lệch IP với CS=4530h, IP=49A6h Hãy xác định địa chỉ vật lý và địa chỉ logic của ô nhớ trên Ô nhớ trên thuộc đoạn nào trong bộ nhớ

2.7 Giải thích cách xác định địa chỉ vật lý của một ô nhớ trong bộ nhớ

- Giả sử địa chỉ một ô nhớ được xác định qua thanh ghi đoạn ES và thanh ghi lệch DI với ES=1793h, DI=2004h Hãy xác định địa chỉ vật lý và địa chỉ logic của ô nhớ trên Ô nhớ trên thuộc đoạn nào trong bộ nhớ

2.8 Giải thích cách xác định địa chỉ vật lý của một ô nhớ trong bộ nhớ

- Giả sử địa chỉ một ô nhớ được xác định qua thanh ghi đoạn SS và thanh ghi lệch SP với SS=11080, SP=2004 Hãy xác định địa chỉ vật lý và địa chỉ logic của ô nhớ trên Ô nhớ trên thuộc đoạn nào trong

bộ nhớ

2.9 Giả sử có một ngăn xếp có địa chỉ đáy là FFFEh

Trang 7

- Hãy giải thích và xác định địa chỉ đỉnh của ngăn xếp sau khi thực hiện đẩy vào các giá trị sau: 05F3h, 4D3Ch,796Ah,418Bh

- Giải thích và xác định địa chỉ đỉnh của ngăn xếp và giá trị của các thanh ghi AX, BX, CX, DX sau khi thực hiện các lệnh:

Hãy cho biết giá trị của các thanh ghi AX, BX, CX sau khi thực hiện các lệnh này

2.11 Giải thích các lệnh trong đoạn chương trình sau:

MOV AX,02B5h

MOV CX,5

SHL AX,CX

Hãy cho biết giá trị của thanh ghi AX sau mỗi lần dịch

2.12 Giải thích các lệnh trong đoạn chương trình sau:

MOV AX,0446h

MOV CX,4

SHR AX,CX

Hãy cho biết giá trị của thanh ghi AX sau mỗi lần dịch

2.13 Giải thích các lệnh trong đoạn chương trình sau:

Trang 8

2.17 Hãy giải thích và chỉ ra chế độ địa chỉ của các lệnh sau:

a/ MOV AX,058Dh b/ MOV AL,[BX] c/ MOV AX,[BP]+[SI]+0100h d/ MOV BL,[0653h] e/ MOV AX,[SI]+50 f/ ADD DX,53h[BX][SI]

g/ ADD AL,3Bh[SI] h/ MOV BX,7Ch[BP] i/ SUB AL,BL

j/ AND AX,[BX+10] k/ OR CX,[DI+30h]

2.18 Giải thích các lệnh trong đoạn chương trình sau:

2.19 Thanh ghi AX bằng bao nhiêu sau khi thực hiện những câu lệnh sau

MOV AX, Array1

Trang 9

ADD Array2, Array1 ; Array2=

Array1 DW AAh, BBh Array2 DW 01h, 02h

2.21 Khi thực hiện câu lệnh sau, hãy điền giá trị HEX thích hợp vào chỗ trống

Array1 DW 20h, 10h Array2 DW 30h, 40h 2.22 Khi thực hiện câu lệnh sau, hãy điền giá trị HEX thích hợp vào chỗ trống

PUSH AX ; POP BX

AX= …

BX

Array1 DB 1Fh, 62h Array2 DB 2Fh, 49h 2.23 Khi thực hiện câu lệnh sau, hãy điền giá trị HEX thích hợp vào chỗ trống

PUSH AX ; POP BX

AX= …

BX

Trang 10

ADD AH, BL ; AX= …

Array1 DB 1Fh, 62h Array2 DB 2Fh, 49h

2.24 Xác định giá trị trong thanh ghi AL và BL sau khi thực hiện xong đoạn chương trình sau

Trang 12

2.30 Sau khi thực hiện đoạn chương trình, thanh ghi AX có giá trị bằng bao nhiêu ?

org 100h mov AX,0 Mov BX,0 mov al, 5 mov bl, 10h add al, bl xor bl, 55h

2.31 Sau khi thực hiện đoạn chương trình :

mov al, 5 mov bl, 10 add bl, al sub bl, 1 Giá trị trong thanh ghi BL bằng bao nhiêu ?

2.32 Sau khi thực hiện đoạn chương trình :

mov al, 5 mov bl, 10 add bl, al sub bl, 1 Giá trị trong thanh ghi AL bằng bao nhiêu ?

2.33 Giả sử cho: AX=1000H; BX=2000H; CX=3000H Sau khi thực hiện các lệnh:

PUSH AX PUSH BX PUSH CX POP AX POP BX POP CX Cho biết giá trị trong các thanh ghi AX, BX, CX

2.34 Giả sử cho: AX=FF00H; BX=0001H; CX=1000H Sau khi thực hiện các lệnh:

PUSH CX PUSH BX PUSH AX POP AX POP BX POP CX Cho biết giá trị trong các thanh ghi AX, BX, CX

2.35 Giả sử cho: AX=1234H; BX=3456H; DX=1111H Sau khi thực hiện các lệnh:

MOV AX, CX PUSH BX PUSH AX POP AX POP BX POP DX Cho biết giá trị trong các thanh ghi AX, BX, CX

2.36 Xác định nội dung của các thanh ghi AX, BX và các ô nhớ1000h, 1001h, 1002h, 1003h

Trang 13

sau khi thực thi các đoạn chương trình sau:

c MOV AX,12h

MOV DS:[1001h],AX MOV BX,AX

ADD BH,10h MOV DS:[1002h],BH

HD: xác định các chế độ địa chỉ được sử dụng trong mỗi ý

2.37 Giả sử có một đoạn chương trình C++ được thực hiện như sau:

if ( (AL>=0x41) && (AL<=0x5A) )

AL=AL+0x20;

Hãy chuyển đoạn chương trình trên thành mã lệnh gợi nhớ của bộ vi xử lý 8086

2.38 Giả sử có một đoạn chương trình C++ được thực hiện như sau:

if ( (AL=0x43) | (AL=0x63) )

printf(chr(AL));

Hãy chuyển đoạn chương trình trên thành mã lệnh gợi nhớ của bộ vi xử lý 8086

2.39 Giả sử có một đoạn chương trình C++ được thực hiện như sau:

for (AL=100; AL> 0;AL )

AL=AL+50;

Hãy chuyển đoạn chương trình trên thành mã lệnh gợi nhớ của bộ vi xử lý 8086

2.40 Giả sử có một đoạn chương trình C++ được thực hiện như sau:

AX=1000;

WHILE (AX > 0) {AX=AX-100;}

Hãy chuyển đoạn chương trình trên thành mã lệnh gợi nhớ của bộ vi xử lý 8086

2.41 Giả sử có một đoạn chương trình C++ được thực hiện như sau:

AL=0x61;

CX=0x1A;

do{

Trang 14

AL=AL-0x20;

printf(chr(AL));

CX=CX-1;

while ( CX>0);

Hãy chuyển đoạn chương trình trên thành mã lệnh gợi nhớ của bộ vi xử lý 8086

2.42 Viết chương trình nhập vào từ bàn phím 1 kí tự Kiểm tra xem, nếu kí tự đó là chữ cái hoa hoặc thường thì in ra màn hình

2.43 Viết chương trình nhập vào từ bàn phím 1 kí tự In kí tự đó ra toàn màn hình

2.44 Viết chương trình in ra màn hình các kí tự trong bảng mã ASCII

2.45 Viết chương trình nhập vào hai số nguyên In ra màn hình tổng, hiệu, tích, thương của hai số đó

2.46 Viết chương trình nhập vào từ bàn phím một mảng Sắp xếp mảng theo thứ tự tăng dần, giảm dần

2.47 Viết chương trình nhập vào một mảng Tìm min, max của mảng và in ra màn hình 2.48 Viết chương trình nhập vào một xâu kí tự In xâu kí tự theo chiều ngược lại

2.49 Viết chương trình nhập vào một xâu họ và tên Tách tên và in ra màn hình

2.50 Viết chương trình nhập vào 3 số thực a,b,c

Giải và biện luận phương trình bậc 2: ax2 + bx +c =0

2.51 Viết chương trình trong C/C++ thực hiện xóa màn hình, tính tổng, hiệu, tích thương của hai số nhập vào từ bàn phím (Các thao tác này thực hiện bằng mã lệnh của

ASSEMBLY)

2.52 Viết chương trình liên kết giữa ASSEMBLY và C/C++ thực hiện tìm min, max của một mảng; sắp xếp mảng

2.53 Viết các chương trình con thực hiện các thao tác cơ bản (tùy giáo viên ra cụ thể)

2.54 Viết các MACRO thực hiện các thao tác cơ bản (tùy giáo viên ra cụ thể)

2.55 Điền giá trị vào (…) để chương trình thực hiện việc in một chuỗi ký tự màn hình? MODEL SMALL

MOV AX,… ; INT …

MOV …,02h ; MOV …,0C15h ; INT …

LEA DX,… ; MOV AH,… ; INT …

MOV AH,4Ch ; INT 21h

main ENDP END main

HD: quan tâm đến các ngắt sử dụng trong chương trình

Trang 15

2.56 *Viết chương trình in giá trị trong thanh ghi đa năng ra màn hình dưới dạng số nhị phân

HD: dựa vào thuật toán đổi một số từ hệ mười sang hệ 2 và sử dụng hàm 01h của ngắt 21h

2.57 *Viết chương trình in giá trị trong thanh ghi đa năng ra màn hình dưới dạng số thập phân

HD: dựa vào thuật toán đổi một số từ hệ 2 sang hệ 10 và sử dụng hàm 01h của ngắt 21h

2.58 *Viết chương trình in giá trị trong thanh ghi đa năng ra màn hình dưới dạng số hệ 16

HD: dựa vào thuật toán: lấy số cần đổi chia cho 10, nếu số dư nhỏ hơn hoặc 9 thì in ra màn hình, còn số dư lớn hơn 9 và nhỏ hoặc bằng 15 thì lấy số dư cộng với 37H Sử dụng hàm 01h của ngắt 21h

2.59 *Viết chương trình nhập một số hệ thập phân có 3 chữ số vào thanh ghi đa năng

HD: dựa vào thuật toán: chia số cần chuyển cho 10, lấy số dư chuyển vào thanh ghi và sử dụng hàm 02h của ngắt 21h để nạp vào thanh ghi

2.60 *Viết chương trình nhập một số hệ nhị phân có 8 chữ số vào thanh ghi AL

HD: sử dụng các lệnh dịch quay

2.61 *Viết chương trình nhập một số hệ hexa có 4 chữ số vào thanh ghi AX

2.62 *Khai báo ba mảng A, B, C kích thước 10 phần tử, mỗi phần tử có kích thước 1 byte, giá trị khởi tạo tùy ý Hãy viết chương trình thực hiện C=A+B

2.63 *Viết chương trình nhập một xâu, độ dài 5 ký tự, in ra màn hình xâu đó dưới dạng chữ hoa

2.64 Thực hiện nhập vào từ bàn phím một kí tự, nếu không phải là ký tự số thì nhập lại Sau

đó hiển thị ký tự vừa nhập trên dòng tiếp theo

2.65 Thực hiện nhập vào từ bàn phím 2 ký tự trong đó phải có 1 ký tự là số, 1 ký tự là chữ in thường

2.66 Thực hiện nhập vào 2 số tự nhiên nhỏ hơn 10 Tìm số lớn nhất trong 2 số và in kết quả

ra màn hình trên dòng tiếp theo

2.67 Thực hiện nhập vào 2 số tự nhiên nhỏ hơn 10 Tìm số nhỏ nhất trong 2 số và in kết quả

ra màn hình trên dòng tiếp theo

2.68 Thục hiện nhập vào từ bàn phím một chữ cái in thường 'ch' và in ra các chữ in thường

2.72 Cho trước 2 chữ cái in hoa ch1 và ch2 (ch1<ch2), thực hiện đếm số chữ cái trong đoạn

từ ch1 đến ch2 và lưu kết quả vào thanh ghi BX

2.73 Cho trước 2 chữ thường ch1 và ch2 (ch1<ch2), thực hiện đếm số chữ cái trong đoạn từ ch1 đến ch2 và lưu kết quả vào thanh ghi BX

2.74 Nhập vào một chuỗi ký tự bất kỳ từ bàn phím, và nhập vào một ký tự ch bất kỳ Đếm

số lượng ký ch trong chuỗi và lưu kết quả vào AX

2.75 Nhập vào một chuỗi ký tự bất kỳ từ bàn phím, đếm số lượng ký tự là chữ cái và nhập vào AX, số lượng ký tự là số nhập vào thanh ghi BX

Trang 16

2.76 Thực hiện nhập vào một số tự nhiên N<8, tính N! và lưu kết quả vào BX

2.77 Thực hiên in dạng biểu diễn nhị phân của thanh ghi BX

2.78 Cho trước 2 số tự nhiên trong 2 thanh ghi AX và BX kiểm tra số nhỏ nhất nằm trong thanh ghi nào?

2.79 Cho trước 2 số tự nhiên trong 2 thanh ghi AX và BX, kiểm tra số lớn nhất nằm trong thanh ghi nào?

2.80 Cho trước 2 số tự nhiên trong 2 thanh ghi AX và BX, kiểm tra hiệu của 2 số, nếu có trị tuyệt đối nhỏ hơn 10 thì in trị tuyệt đối ra màn hình, ngược lại in kết quả vào thanh ghi

2.87 Cho 2 xâu ký tự S1 và S2, kiểm tra xem S1 và S2 có bằng nhau hay không?

2.88 Cho xâu ký tự S, kiểm tra xem S có phải là xâu đối xứng hay không?

2.89 Cho xâu ký tự S, đếm số ký tự là chữ số có trong S

2.90 Nhập vào từ bàn phím một xâu ký tự và lưu độ dài của xâu vào thanh ghi BX

2.91 Cho xâu ký tự S độ dài l, tạo ra xâu S1 từ xâu S bằng cách lấy trong S từ vị trí thứ i(0<i<l) n ký tự (0<n<l-i)

2.92 Thực hiện nhập một ký tự ch vào từ bàn phím và in ra màn hình 10 dòng, mỗi dòng chưa 10 kí tự ch

2.93 Cho xâu ký tự S, thực hiện tạo xâu S1 từ xâu S bằng cách loại bỏ trong xâu S các ký tự

là dấu cách

2.94 Cho xâu ký tự S, nhập từ bàn phím một ký tự ch và kiểm tra xem ch có trong xâu S hay không?

2.95 Cho xâu ký tự S, đếm số lượng ký tự 'A' có trong xâu S

2.96 Cho xâu ký tự S, tính tổng của các ký tự số có trong xâu S và lưu kết quả vào thanh ghi

BX

Trang 17

CHƯƠNG 3 HỌ VI ĐIỀU KHIỂN 8051

3.1 Nếu thanh ghi A được sử dụng để chứa kết quả của các phép toán, hãy cho biết giá trị của thanh ghi A sau khi thực hiện các phép toán sau:

Trang 18

c A=00h

d A=FFh

Các bit không chịu ảnh hưởng có giá trị mặc định

3.7 Nếu chuyển các giá trị sau đây vào thanh ghi A, thanh ghi PSW có giá trị bằng bao nhiêu nếu thanh ghi A chưa kết quả của phép toán

3.10 Cho trước bảng sau:

Lệnh 8051 Cách định địa chỉ của toán hạng

Thứ nhất Thứ hai ORG 0

Điền vào các chỗ trống trong cột các cách địa chỉ cho toán hạng thứ nhất và thứ 2

3.11 Cho trước bảng sau:

Lệnh 8051 Cách định địa chỉ của toán hạng

Thứ nhất Thứ hai ORG 0

Trang 19

Điền vào các chỗ trống trong cột các cách địa chỉ cho toán hạng thứ nhất và thứ 2

3.12 Viết chương trình để sao chép giá trị 55H vào ngăn nhớ RAM tại địa chỉ 40H đến 44H

sử dụng:

a Chế độ đánh địa chỉ trực tiếp

b Chế độ đánh địa chỉ gián tiếp thanh ghi không dùng vòng lặp

3.13 Xác định chế độ địa chỉ để cộng nội dung của 2 ô nhớ 30h và 31h, kết quả lưu vào ô nhớ 32h trong RAM nội

3.14 Xác định chế độ địa chỉ để cộng nội dung của 2 ô nhớ 30h và 31h, kết quả lưu vào thanh ghi A trong RAM nội

3.15 Xác định chế độ địa chỉ để cộng nội dung của 2 thanh ghi R1 với R2, kết quả ghi vào ô nhớ 30h

3.16 Xác định chế độ địa chỉ để cộng nội dung của 2 thanh ghi R1 với R2, kết quả ghi vào ô nhớ 30h

3.17 Nạp giá trị 0FFh vào thanh ghi R1,lấy nội dung trong ô nhớ 35h cộng với nội dung trong thanh ghi R1, kết quả lưu vào thanh ghi R2 Hãy xác định các chế độ địa chỉ để thực hiện các thao tác trên

3.18 Nạp giá trị 0ABh vào ô nhớ 34h, nạp giá trị 1Dh thanh ghi R1, cộng nội dung trong ô nhớ 34h với nội dung trong thanh ghi R1, kết quả lưu vào ô nhớ 30h Hãy xác định các chế độ địa chỉ để thực hiện các thao tác trên

3.19 Câu 18 Địa chỉ của ô nhớ 40h được chứa trong thanh ghi R5, hãy cho biết các chế độ địa chỉ được sử dụng để cộng nội dung của ô nhớ được lưu trong R5 với nội dung của ô nhớ 41H Kết quả byte cao được đưa vào thanh ghi A, byte thấp được chứa trong ô nhớ 42h

3.20 Cộng nội dung của 5 ô nhớ liên tiếp, biết rằng địa chỉ của ô nhớ đầu tiên được lưu trong thanh ghi R1 và R1 bằng 42h Kết quả byte cao được lưu trong ô nhớ 30h, byte thấp lưu trong 31h Hãy xác định các chế độ địa chỉ của các thao tác trên

3.21 Hãy cho biết giá trị của các thanh ghi R0, R1, R2 sau khi thực hiện xong đoạn chương trình dưới đây

Trang 20

3.25 Write a program to move (write) 40H to location 30H in internal RAM using 2

methods of addressing: direct addressing and indirect addressing

3.26 Write a program to clear location 31H in internal RAM using 2 methods of addressing: direct addressing and indirect addressing

Hint: to clear means to reset the data to zero

7Fh R0

30h

A

00h

Trang 21

3.27 Write a program to move (read) the content of location 33H in internal RAM to register

A using 2 methods of addressing: direct addressing and indirect addressing

3.28 Write a program to move the content of registerA to location 0033H in external RAM

b Định địa chỉ ô nhớ gián tiếp

3.31 Viết các câu lệnh để ghi nội dung thanh ghi A vào ô nhớ 32H của RAM nội theo 2 cách:

a Định địa chỉ ô nhớ trực tiếp

b Định địa chỉ ô nhớ gián tiếp

3.32 Viết các câu lệnh để đọc ô nhớ33H của RAM nội vào thanh ghi A của RAM nội theo 2 cách:

a Định địa chỉ ô nhớ trực tiếp

b Định địa chỉ ô nhớ gián tiếp

3.33 Viết các câu lệnh để chuyển dữ liệu ô nhớ 34H của RAM nội vào ô nhớ 35H của RAM nội theo 2 cách:

DJNZ R1, L1

3.35 Viết chương trình nạp 32 byte trong vùng dữ liệu ngoại từ địa chỉ 20H với giá trị là 32h

MOV A,#CONST2 MOVDPTR,#20H

Ngày đăng: 21/03/2015, 22:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w