Bài tập kĩ thuật vi xử lý assembly 80286 năm 2024
Was this document helpful? Was this document helpful? Bài tập Kỹ Thuật Vi Xử Lý Số 3. Hạn nộp:26/9/2013 Câu 1 Viết đoạn lệnh Assembly 8086 tương đương cho đoạn code C sau int b,c; long int a; a=b*c; b=a/c; Câu 2 Cho đoạn code C sau: int a; a=2; for (i=1;i<10;i++) { a=a*2; } Viết chương trình assembly tương đương cho 8086 và arm cortex Trong chương trình này em đã dùng các kỹ thuật gì để tối ưu hóa, làm cho chương trình chạy nhanh hơn. Viết chương trình assembly trên sử dụng cấu trúc vòng lặp While hoặc do- while Câu 3 Viết lại hàm C sau đây bằng hợp ngữ cho 8086 (tham số của hàm truyền qua ngăn xếp, giá trị trả về lưu trong thanh ghi chứa) /* Hàm tính số bit 1 của số nguyên 2 byte */ int Count(int a) { int s = 0; while (a != 0) { if ((a & 1) != 0) s++; a >>= 1; } return s; } Hướng dẫn: Chương trình chính và chương trình con với biến số truyền qua ngăn xếp có khung như sau, (sinh viên chỉ cần viết đoạn code ở phần chú thích bôi đậm) (15 điểm) .Code MAIN Proc ... PUSH N ;cất nội dung của biến N vào ngăn xếp CALL Count; Hàm Count sẽ tính số bit 1 của số nguyên 2 byte N POP N; đưa biến A ra khỏi ngăn xếp (vì đã sử dụng xong rồi) ... MAIN Endp Count Proc PUSH AX ; và các thanh ghi khác mà chương trình con sử dụng
|