Tải bản đầy đủ (.doc) (22 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (294.65 KB, 22 trang )

BÁO CÁO
LẬP TRÌNH HỆ THỐNG VÀ
ASSEMBLY
ĐỀ 15 :
Giáo viên Hướng Dẫn : Đặng Thành Phu
Nhóm 16 : Ninh Văn Bình
Nguyễn Sỹ Danh
Đào Hoàng Nam
Vũ Đức Tuấn
Lớp : 09B2
Hà Nội, ngày 26 tháng 10 năm 2011
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.
2


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ớ,…
III. Mô tả phần thiết kế
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
Nguyen Sy Danh
Dao Hoang Nam
Vu Duc Tuan
Lop:09B2
An Phim bat ki de tiep tuc
3
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.
4
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?'
5
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 : $'
M3 db 13,10,' a[$'
M4 db ']=$'
M5 db 13,10,' Cac so vua vao la : $'
M6 db ' $'
M7 db 13,10,' Day so da sap xep la : $'
M8 db 13,10,' Co tiep tuc CT (c/k) ? $'
i dw ?

slcs dw ?
index dw ?
a dw 100 dup (?)
;Khai bao bien cho chuc nang MT co bao nhieu kRAM tren mainboard
kR1 db 13,10,' MAY TINH CO kRAM TREN MAINBOARD
KHONG ?'
db 13,10,' ----------------------------------------'
db 13,10,13,10,' So luong kRAM co them tren mainboard la : $'
6
kR2 db ' 0 k$'
kR3 db ' 16 k$'
kR4 db '32 k$'
kR5 db '64 k$'
kR6 db 13,10,' An phim bat ky de ve man hinh chuc nang $'
.CODE
PS:
mov ax,@data
mov ds,ax
mov ah,0fh ; lay mode cu 80*25
int 10h
mov mode_cu,al; cat mode cu(al)->bien mode_cu
mov al,0 ; dat mode 40*25
mov ah,0
int 10h
HienString GT1
lea si,GT2
BLINK 8,7,10101100b
HienString GT3
mov ah,1 ; cho an 1 phim
int 21h

cmp al,27 ; ESC 27
jne CONTINUE
mov al,mode_cu; hoi phuc lai mode 80*25
mov ah,0
int 10h
mov ah,4ch ; ve DOS
int 21h
7
CONTINUE:
mov al,mode_cu; hoi phung mode 80*25
mov ah,0
int 10h
HienString cn
mov ah,1 ; cho 1 ky tu tu ban phim
int 21h
cmp al,'1'
jne Test_2
call HIENBNR
jmp CONTINUE
Test_2:
cmp al,'2'
jne Test_3
call SXG
jmp CONTINUE
Test_3:
cmp al,'3'
jne Test_4
call KRAM
jmp CONTINUE
Test_4:

cmp al,'4'
jne Test_5
call PS
Test_5:
jmp CONTINUE
; Chuong trinh con hien 1 so ra dang binary
8

×