1. Trang chủ
  2. » Luận Văn - Báo Cáo

LẬP TRÌNH HỆ THỐNG VÀ ASSEMBLY

22 901 8
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lập Trình Hệ Thống Và Assembly
Tác giả Ninh Văn Bình, Nguyễn Sỹ Danh, Đào Hoàng Nam, Vũ Đức Tuấn
Người hướng dẫn Đặng Thành Phu
Trường học Đại Học Mở Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo
Năm xuất bản 2011
Thành phố Hà Nội
Định dạng
Số trang 22
Dung lượng 363 KB

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

Nội dung

Ngày nay, với sự nhảy vọt của khoa học công nghệ nói chung và ngành công nghệ thông tin nói riêng, với những tính năng ưu việt, sự tiện dụng và ứng dụng rộng rãi trong mọi lĩnh vực

Trang 1

BÁO CÁO LẬP TRÌNH HỆ THỐNG VÀ

Vũ Đức Tuấn

Hà Nội, ngày 26 tháng 10 năm 2011

Trang 2

I. Giới thiệu

Ngày nay, với sự nhảy vọt của khoa học công nghệ nói chung và ngành công nghệ thông tin nói riêng, với những tính năng ưu việt, sự tiện dụng và ứng dụng rộng rãi trong mọi lĩnh vực, hoạt động của tin học trong đời sống, yêu cầu chúng ta phải nắm vững các kiến thức cơ bản về máy vi tính, tuy nhiên việc hiểu các ngôn ngữ bậc thấp để có thể dễ dàng làm việc

và tiếp xúc gần hơn với ngôn ngữ máy là một điều rất quan trọng với những người đã, đang và sẽ trở thành Lập trình viên, đặc biệt là những người hoạt động trong các lĩnh vực đo lường, điều khiển và những người ứng dụng tin học vào các quá trình công nghệ

Ngôn ngữ Assembler là một ngôn ngữ bậc thấp, rất gần với ngôn ngữ máy và tất nhiên rất gần với phần cứng máy tính Với đặc điểm như vậy nên lập trình bằng ngôn ngữ Assembler có những đặc thù riêng có phần khác so với ngôn ngữ bậc cao

Sau một thời gian được thầy dẫn dắt và hướng dẫn hết sức nhiệt tình, nhóm 6 lớp 09B2 đã hiểu được cách viết một MACRO, một chương trình con, các mô-đun liên kết,…để viết được một chương trình hoàn thiện Sau đây, nhóm 6 lớp 09B2 xin được gửi tới thầy bản báo cáo bài tập lớn, được nhóm thực hiện trong thời gian qua

Trang 3

II. Mô tả

Yêu cầu: Viết chương trình thiết lập 1 màn hình giới thiệu(mode 40*25), màn hình các chức năng và màn hình từng chức năng (mode 80*25) thực hiện 4 chức năng:

1 Hiện một số nguyên ra dạng binary

2 Sắp xếp dãy số theo chiều giảm dần

3 Máy tính có kRAM nào trên mainboard không?

4 Trở về màn hình giới thiệu

Để giải quyết bài tập với yêu cầu trên ta sử dụng các MACRO, các chương trình con, các mô-đun liên kết, các biến nhớ,…

Chương trình khi chạy gồm:

* Màn hình giới thiệu: gồm 3 xâu:

+ Xâu 1: Chữ màu trắng, kết thúc bằng “$”

“ Vien Dai hoc Mo Ha Noi

Khoa cong nghe thong tin

-o0o -$ ”

+ Xâu 2: Sử dụng BLINK, hiển thị chữ có màu đỏ, nền xanh, nhấp nháy lên màn hình: “BAI TAP LON”

+ Xâu 3: Chữ màu trắng, kết thúc bằng “$”

“Sinh viên thực hiện:

Ninh Van Binh

Trang 4

Con an ESC thi tro ve DOS $!”

* Màn hình chức năng:

Chỉ chứa 1 xâu: Chữ màu trắng, kết thúc bằng “$”

CAC CHUC NANG HIEN DANG BINARY,

SAP XEP DAY SO THEO CHIEU GIAM DAN

VA kRAM TREN MAINBOARD

-1 Hien mot so nguyen ra dang binary -16 bit

2 Sap xep day so theo chieu giam dan

3 May tinh co kRAM tren mainboard khong?

4 Tro ve man hinh gioi thieu

Hay chon: $”

Dùng cmp để vào các chức năng

Dùng HienString để hiện chương trình con

Trang 5

IV. Lập trình các mô-đun

INCLUDE lib1.asm

.MODEL small ;code<64k, data<64k

.STACK 100h ;tinh theo byte

.DATA

GT1 db 13,10,' Vien Dai hoc Mo Ha Noi'

db 13,10,' Khoa cong nghe thong tin'

db 13,10,' -o0o -$'

GT2 db 'BAI TAP LON',0

GT3 db 13,10,13,10,13,10,' Cac sinh vien thuc hien:'

db 13,10,' 1 Ninh Van Binh'

db 13,10,' 2 Nguyen Sy Danh'

db 13,10,' 3 Dao Hoang Nam'

db 13,10,' 4 Vu Duc Tuan'

db 13,10,' Lop : 09b2'

db 13,10,13,10,13,10,' An phim bat ki de tiep tuc'

db 13,10,' Con ESC thi ve DOS$'

mode_cu db ?

;Khai bao bien cho man hinh chuc nang

cn db 13,10,' CAC CHUC NANG HIEN DANG BINARY,'

db 13,10,' SAP XEP DAY SO THEO CHIEU GIAM DAN'

db 13,10,' VA kRAM TREN MAINBOARD'

db 13,10,' -*** -'

db 13,10,13,10,' 1 Hien mot so nguyen ra dang binary 16 bit'

db 13,10,' 2 Sap xep day so theo chieu giam dan'

db 13,10,' 3 May tinh co kRAM tren mainboard khong?'

Trang 6

db 13,10,' 4 Tro ve man hinh gioi thieu'

db 13,10,13,10,' HAY CHON : $'

;Khai bao bien cho chuc nang hien 1 so nguyen sang dang binary

hb1 db 13,10,' Chuc nang hien dang binary'

db 13,10,' -'

db 13,10,13,10,' Vao so nguyen : $ '

hb2 db 13,10,13,10,' Dang binary la : $ '

tieptuc db 13,10,' Co tiep tuc CT (c/k) ? $'

;Khai bao bien cho chuc nang sap xep 1 day so theo chieu giam dan

M1 db 13,10,' Chuc nang sap xep day so theo chieu giam dan'

db 13,10,' -'

db 13,10,13,10,' Hay vao so luong chu so : $ '

M2 db 13,10,' Hay vao day so : $'

db 13,10,' -'

db 13,10,13,10,' So luong kRAM co them tren mainboard la : $'

Trang 7

mov mode_cu,al; cat mode cu(al)->bien mode_cu

mov al,0 ; dat mode 40*25

Trang 14

mov DX,offset xau ; DX trỏ đến đầu xâu

mov AH,9 ; Chức năng hiện 1 xâu kí tự

Trang 15

“Hienstring” để hiện xâu kí tự ra màn hình.

Xâu thứ hai sử dụng MACRO “BLINK” để hiện xâu “BAI TAP LON” ramàn hình có màu sắc với nền màu xanh, chữ màu đỏ, nhấp nháy

Sau đó, màn hình dừng để chờ 1 kí tự được nhập vào từ bàn phím

Trang 16

Sau khi nhập 1 kí tự bất kì từ bàn phím khác ESC (nếu nhấn ESC thì thoát ramàn hình DOS) thì màn hình 40*25 được phục hồi về màn hình 80*25 và hiển thị màn hình chức năng.

Trang 17

2 Màn hình chức năng

Màn hình chức năng chỉ có 1 xâu kết thúc bằng ‘$’, sử dụng MACRO

“HienString” để hiện xâu đó ra màn hình

Sau đó chờ 1 kí tự được nhập từ bàn phím, sử dụng lệnh “cmp” để so sánh phím nhập vào với các số 1,2,3,4 và theo thứ tự đó để nhảy tới các chương trình con tương ứng

Trang 18

3 MH thực hiện chức năng hiện 1 số ra dạng binary 16 bit

Nếu phím nhập vào bằng 1 thì gọi chương trình con “HIENBNR” để thực hiện

Ở chương trình con “HIENBNR” ta thực hiện nhập một số nguyên bất kì thông qua chương trình con “VAO_SO_N” và MACRO “HienString” để hiện kết quả ra màn hình

Trang 19

4 MH thực hiện chức năng sắp xếp dãy số theo chiều giảm dần

Khi cmp al bằng số 2 thì chương trình con “SXG” được gọi để thực hiện Ban đầu sử dụng chương trình con “VAO_SO_N” và “HIEN_SO_N” để nhập vào số lượng chữ số và giá trị từng số Chương trình con

“HIEN_DAY” hiện dãy số vừa vào và hiện dãy số đã sắp xếp

Trang 20

5 MH thực hiện chức năng máy tính có kRAM trên mainboard

không?

Nếu cmp al bằng 3 thì chương trình con “KRAM” được gọi để thực hiện.Bit thứ ba và thứ tư của byte có địa chỉ 40h:10h của vùng nhớ biến BIOScho biết số lượng kRAM trên mainboard máy tính chúng ta đang dùng Đểbiết được số lượng kRAM trên mainboard ta phải tách 2 bit cho biết sốlượng kRAM qua lệnh and “al,0ch” và 2 lần lệnh “shr al,1” để chuyển 2 bitthứ ba và thứ tư này về vị trí 0 và 1

Thông qua lệnh nhảy jnz và jne để biết giá trị các bit cờ qua đó biết được sốlượng kRAM trên mainboard

Sau mỗi chương trình con, nhấn phím “c” để tiếp tục chương trình, còn nhấnphím bất kì để quay về màn hình chức năng bằng cách sử dụng lệnh cmp al với chữ “c”

Trang 21

LỜI CẢM ƠN

Lời cảm ơn đầu tiên và quan trọng nhất chúng em xin gửi tới thầy Đặng Thành Phu, giáo viên giảng dạy môn LẬP TRÌNH HỆ THỐNG VÀ ASSEMBLY của Viện Đại học Mở Hà Nội đã tận tình chỉ bảo, hướng dẫn chúng em trong quá trình học tập bộ môn và quá trình hoàn thành bài tập lớn.Nếu không có thầy tận tâm chỉ bảo thì chúng em sẽ khó có thể hoàn thành được bào tập này

Lời cảm ơn thứ hai chúng con xin gửi tới bố mẹ, những người đã hàngngày quan tâm, chăm sóc và lo lắng cho chúng con

Cảm ơn những người bạn lớp 09B2 và những người bạn đồng trang lứa, những người đã không ngần ngại chia sẻ cho chúng tôi kiến thức, đóng góp ý kiến giúp chúng tôi hoàn thiện hơn trong quá trình hoàn thành bài tập của mình

Hà Nội, ngày 30 tháng 11 năm 2011Nhóm thực hiện: Nhóm 6_Lớp 09B2

Ninh Văn BìnhNguyễn Sỹ DanhĐào Hoàng Nam

Vũ Đức Tuấn

Trang 22

MỤC LỤC

Ngày đăng: 26/04/2013, 11:44

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w