1. Trang chủ
  2. » Giáo án - Bài giảng

bài tập vi sử lý vi điều khiển

27 2,2K 2

Đ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 27
Dung lượng 67,3 KB

Nội dung

Chương 1. Chương 1 (N.T.Linh-32) 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: 112, 21, 32, 45, 92 , 156, 231, 143, 69. 1.2. Hãy chuyển đổi các số nguyên dương thập phân sau đây ra hệ thập lục phân : 41,39,58,91,146, 246, 99,88, 140,177. 1.3. Hãy chuyển đổi các số nhị phân 1 byte sau đây ra số thập phân: 0101 01100 , 0101 1110 , 0101 1100 , 0111 0111 , 0101 1110 , 0101 1001. 1.4. Hãy chuyển đổi các số nhị phân 1 byte sau đây ra số thập lục phân: 0101 01100 , 0101 1110 , 0101 1100 , 0111 0111 , 0101 1110 , 0101 1001. 1.5. Hãy chuyển đổi các số thập lục phân sau đây ra thập phân : AF , 20 , A5 , CF , B8 , D9 , E5 . 1.6. Hãy chuyển đổi các số thập lục phân sau đây ra nhị phân : AF , 20 , A5 , CF , B8 , D9 , E5 . 1.7. Hãy chuyển đổi các số thực biểu diễn dạng thập phân sau đây ra nhị phân : 112.18 , 21.25 , 32.04, 45.625, 92.40 , 156.2, 231.5 , 143.60 , 69.32 1.8. Hãy chuyển đổi các số thực biểu diễn dạng nhị phân sau đây ra số thập phân: 0101 01100.011 , 0101 1110.0011 , 0101 1100.011 , 0111 0111.1101 , 0101 1110.0111 , 0101 1001.0011 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: a) 28; b) 89; c) 294 d) 34,5; e) 55,25; f) 46,3125 1.11. Đổi các số sau từ hệ nhị phân sang hệ thập phân: a) 11001; b) 111001 c) 10111011; d) 10001001 1.12. Biểu diễn các số sau dùng dấu và độ lớn (8 bit): a) +69; b) +105; c) -28; d) -121 1.13. Biểu diễn các số sau dùng dấu và độ lớn (16 bit): a) +109; b) +105; c) -98; d) -101 1.14. Biểu diễn các số sau dùng mã bù 2 (8 bit - không dấu): a) 57; b) 48; c) 98; d) 111 1.15. Biểu diễn các số sau dùng mã bù 2 (8 bit - có dấu): a) +57; b) +48; c) -98; d) -31 1.16. Biểu diễn các số sau dùng mã bù 2 (16 bit - không dấu): a) 157; b) 108; c) 128; d) 35 1.17. Biểu diễn các số sau dùng mã bù 2 (16 bit - có dấu): a) 137; b) 119; c) -113; d) -53 1.18. Có các biểu diễn sau (dùng dấu và độ lớn), hãy xác định giá trị của chúng: a) 0100 1011 b) 1001 1100 c) 0000 0000 1001 0010; d) 1000 0000 0110 1100 1.19. Có các biểu diễn sau (dùng mã bù 2 - không dấu), hãy xác định giá trị: a) 0100 001 b) 1010 0100 c) 0000 0000 1001 0010; d) 1000 0000 0010 0100 1.20. Có các biểu diễn sau (dùng mã bù 2 - có dấu), hãy xác định giá trị của chúng: a) 0100 1011 b) 1101 1100 c) 0000 0000 0101 0011; d) 1111 1111 1110 1110 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) c) 68 + 40 (có dấu) ; d) 67 + (-100) (có dấu) e) 102 + 88 (có dấu); f) (-80) + (-62) (có dấu) 1.22. Sử dụng thuật toán dời bít của Booth thực hiện các phép nhân sau đây a) 11*13 ; b) 12*13 ; c) 9*11 ; d) 10*11 1.23. Hãy chuyển các số thập phân sau đây ra số nhị phân BCD : a) 235 ; b) 647 ; e) 568 f) 729 1.24. Hãy chuyển các số nhị phân BCD ra số thập phân sau đây : a) 1001 0011 0111 ; 0111 1000 0101 0110 ; 0101 1001 0011 0110 1.25. Hãy chuyển các số thập phân sau đây ra số nhị phân BCD rồi cộng theo nhị phân. Kết quả chuyển sang số thập phân. a) 123 + 456 ; 348 +241 ; 532 + 461 ; 255 + 433. 1.26. Tính tổng sau: 4A9Bh + 97A2h 1.27. Đổi các giá trị sau thành byte a. 2KB b. 4MB c. 128MB d. 1GB 1.28. Đổi các giá trị sau thành bit a. 2KB b. 4MB c. 128MB d. 1GB 1.29. Cho các s ố nhị phân sau, hãy xác đị nh giá trị c ủ a chúng n ếu chúng là (i) s ố nhị phân không dấu; (ii) s ố nhị phân có dấu a. 0000B b. 0001B c. 0111B d. 1000B e. 1001B f. 1110B g. 1111B 1.30. Thực hiện các phép toán sau trên số nhị phân có dấu 8 bit và cho biết kết quả có bị tràn hay không a. 15+109 b. 127-64 c. 64+64 d. -32-96 1.31. Xác định độ lớn các vùng không gian bộ nhớ có tầm địa chỉ: a. 0000H – FFFFH b. 000000H – FFFFFFH c. 14000000H – 17FFFFFFH d. 00000000H – FFFFFFFFH 1.32. Cho kích thước vùng nhớ là 862kB. Địa chỉ bắt đầu là 0, tính địa chỉ kết thúc viết dạng hexa. Chương 2. Chương 2 (T.Anh,Nhung) 2.1. Giải thích các lệnh sau: MOV AL,5Bh MOV BL,0ADh ADD AL,BL 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.2. Giải thích các lệnh sau: MOV AX,170Fh MOV BX,80EBh ADD AX,BX 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.3. Giải thích các lệnh sau: MOV AL,41h MOV BL,50h CMP AL,BL 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.4. Giải thích các lệnh sau: MOV AX,3D85h MOV BX,2CFEh CMP AX,BX 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. - 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: POP DX POP AX POP BX POP CX 2.10. Giải thích các lệnh trong đoạn chương trình sau: MOV AX,5729h MOV BX,922Dh MOV CX,723Fh PUSH AX PUSH BX PUSH CX POP AX POP CX POP BX ADD AX,BX ADD BX,CX 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: MOV AX,2534 MOV BX,5000 MUL BX Sau khi thực hiện các lệnh trên, kết quả sẽ được đưa vào các thanh ghi nào? Giá trị của các thanh ghi đó là bao nhiêu? 2.14. Giải thích các lệnh trong đoạn chương trình sau: MOV AL,7Fh MOV BL,13h MUL BL Sau khi thực hiện các lệnh trên, kết quả sẽ được đưa vào các thanh ghi nào? Giá trị của các thanh ghi đó là bao nhiêu? 2.15. Giải thích các lệnh trong đoạn chương trình sau: MOV AX,2500 MOV BL,50 DIV BL Sau khi thực hiện các lệnh trên, kết quả sẽ được đưa vào các thanh ghi nào? Giá trị của các thanh ghi đó là bao nhiêu? 2.16. Giải thích các lệnh trong đoạn chương trình sau: MOV DX,6400 MOV AX,2000 MOV BX,10000 DIV BX Sau khi thực hiện các lệnh trên, kết quả sẽ được đưa vào các thanh ghi nào? Giá trị của các thanh ghi đó là bao nhiêu? 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: Nhap: MOV AH,1 INT 21h CMP AL,41h JL nhap CMP AL,5Ah JG nhap SUB AL,20h MOV DL,AL MOV AH,2 INT 21h 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 INC AX ADD AH, 1 SUB AX, Array1 … … Array1 DW 10h, 20h Array2 DW 30h, 40h 2.20. 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 MOV BX, Array2 ; BX= …. XCHG AX, BX ; AX= …. INC AX ; AX=…. ADD Array2, Array1 ; Array2= SUB AX, Array1 ; AX=…. SUB BH, BL ; BX= …. …. …. 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 MOV AX, Array1 ; AX= …. XCHG Array2, AX ; AX= …. DEC AX ; AX=…. SUB Array2, 2 ; Array2= MOV BX, Array2 ; AX=…. ADD AH, BL ; AX= …. …. …. 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 ADD AX, 0123H ; AX= …. PUSH AX ; POP BX AX= …. BX SUB AX, BX ; AX=…. SUB Array2, 2 ; Array2= MOV BX, Array2 ; AX=…. ADD AH, BL ; AX= …. …. …. 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 ADD AX, 0123H ; AX= …. PUSH AX ; POP BX AX= …. BX SUB AX, BX ; AX=…. SUB Array2, 2 ; Array2= MOV BX, Array2 ; AX=…. 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 org 100h MOV AL, -52 MOV BL, -42 SAR AL, 4 IMUL BL SAL AL, 2 RCR AL, 1 SAR BL, 5 RET 2.25. Xác định giá trị trong thanh ghi AX và BX sau khi thực hiện xong đoạn chương trình sau org 100h MOV AL, -55 MOV BL, 23 SHR AL, 2 IMUL BL SAL AL, 2 RCR AL, 1 SHR BL, 4 RCR BL, 2 RET 2.26. Xác định giá trị trong thanh ghi AX và BX sau khi thực hiện xong đoạn chương trình sau org 100h MOV AL, -5 MOV BL, -12 SHR AL, 2 IMUL BL SAL AL, 2 ADD BL, AL RCR AL, 1 SHR BL, 4 RCR BL, 2 RET 2.27. Xác định giá trị trong các thanh ghi AX, BX, CX, DX sau khi thực hiện xong đoạn chương trình sau: org 100h mov AX, 1122h ; mov BX, 0A3Dh ; mov CX, 80A1h ; mov DX, 1357h ; start: ADD AL, BL SUB BL, AL CMP AL, BL JA TA1 XOR DX, CX JMP OK TA1:OR DX, CX JMP OK OK: ret 2.28. Xác định giá trị trong các thanh ghi AX, BX, CX, DX sau khi thực hiện xong đoạn chương trình sau: org 100h mov AX, 1234h; mov BX, 5678h; mov CX, 2468h; mov DX, 1357h; start: PUSH AX PUSH BX PUSH CX PUSH DX ADD AX, BX DEC CX POP BX DIV BL POP BX ADD AX, BX POP CX INC CX POP DX SUB DX, AX MUL DL RET 2.29. Sau khi thực hiện đoạn chương trình, thanh ghi BX có giá trị bằng bao nhiêu org 100h mov AX,0 Mov BX,0 mov al, 5 mov bl, 10h add bl, al xor bl, 55h 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 sau khi thực thi các đoạn chương trình sau: a. MOV AX,1000h MOV BL,7 MOV BH,0F0h AND BH,AH MOV WORD PTR DS:[1000h],0F0h MOV BYTE PTR DS:[1002h],0Fh MOV AX,DS:[1001h] [...]... chu kỳlàm vi c D = 40% tại chân P1.2 (Xtal 12 MHz) Vi t CT tạo chuỗi xung vuông có f = 10 KHz tại chân P1.3 (Xtal 24 MHz) Vi t CT tạo chuỗi xung vuông có f = 10 KHz và có chu kỳlàm vi c D = 30% tại chân P1.3 (Xtal 24 MHz) Vi t CT tạo chuỗi xung vuông có f = 10 Hz tại chân P1.4 (Xtal 12 MHz) Vi t CT tạo chuỗi xung vuông có f = 10 Hz và có chu kỳlàm vi c D = 25% tại chân P1.5 (Xtal 12 MHz) Sử dụng Timer... quan sát Tần số thạch anh là 12 Mhz Vi t CT con có tên DELAY500 có nhiệm vụtạo trễ 0,5ms dùng Timer (với Xtal 6MHz) Vi t CT con có tên DELAY10 có nhiệm vụtạo trễ 10ms dùng Timer (với Xtal 12MHz) Dùng CT con DELAY500 (bài 14) đ vi t CT tạo sóng vuông f=1KHz tại P1.0 Dùng CT con DELAY10 (bài 15) đ vi t CT tạo sóng vuông f=50Hz tại P1.1 Dùng CT con DELAY500 (bài 14) đ vi t CT tạo sóng vuông f=500Hz (D=25%)... con DELAY10 (bài 15) đ vi t CT tạo sóng vuông f=20Hz (D=20%) tại P1.3 Vi t CT dùng Timer tạo sóng vuông f=500Hz tại P1.4 (Xtal 12MHz) Vi t CT dùng Timer tạo sóng vuông f=20KHz tại P1.5 (Xtal 24MHz) Vi t CT dùng Timer tạo 2 sóng vuông có cùng f= 1KHz tại P1.6 và P1.7 Biết rằng sóng vuông tại P1.7 chậm pha hơn sóng vuông tại P1.6 100(s (Xtal 12MHz) Phần bài tập về UART 3.91 3.92 3.93 3.94 Vi t CT liên... độ UART 8 bit, 2400 baud Sử dụng ngắt serial Xtal 12MHz 3.102 Vi t CT chờ nhận data từ 1 thiết bị ngoài gửi đến 8051 qua port nối tiếp (chế độ UART 8 bit, 19200 baud) Nếu nhận được ký tự STX (02H) thì bật sáng LED, nếu nhận được ký tự ETX (03H) thì tắt LED, biết rằng LED được điều khiển bằng ngõ P1.3 (LED sáng khi bit điều khiển bằng 1) Sử dụng ngắt serial Xtal 11,059MHz 3.103 Vi t CT chờ nhận 1 xung... 3.120 Thiết kế mạch và vi t chương trình bằng ngôn ngữ ASM cho AT89S52 thực hiện công vi c sau: Điều khiển động cơ DC 24v/24w, mỗi khi bấm nút chạy (ghép với P2.0) thì động cơ chạy với tốc độ tối đa, không đảo chiều động cơ Khi bấm phím dừng (ghép nối P2.1) thì động cơ dừng lại 3.121 Thiết kế mạch và vi t chương trình bằng ngôn ngữ ASM cho AT89S52 thực hiện công vi c sau: Điều khiển động cơ 36V/200W... 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ỉ đượ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 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... 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 . 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. 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ó

Ngày đăng: 12/09/2014, 09:02

TỪ KHÓA LIÊN QUAN

w