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,
Trang 3IL Méta
Yêu cầu: Viết chương trình thiết lập 1 màn hình giới thiệu(mode 40725), 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 đạng binary 2 Sắp xếp dãy số theo chiều giảm dan
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ớ,
HII 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
+ Xâu 2: Sử dung 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
Trang 4* 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
Trang 5IV Lập trình các mô-đun
INCLUDE libl.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' đb 13,10,' - 000 - $' 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, VAkRAM TREN MAINBOARD'
db 13,10,' - eee '
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'
Trang 6db 13,10,13,10, HAY CHON:$'
;Khai bao bien cho chuc nang hien | so nguyen sang dang binary hb1 db 13,10," Chuc nang hien dang binary’
db 13,10,' - đb 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 ? sles 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 kKRAM co them tren mainboard la : $'
Trang 7kR3 db ' 16 k$' kR4 db '32 k$' kRS db '64 k$' kRó 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 8025 int 10h
mov mode _ cu,al; cat mode cu(al)->bien mode_cu
Trang 14; MACRO HIEN MOT XAU KI TU |
; KET THUC BANG “$” RA MAN HINH |
HienString MACRO xau
push AX DX
mov DX,offset xau : DX trỏ đến đầu xâu mov AH,9 ; Chức năng hiện ] xâu kí tự int 21h , (kết thúc bằng “$”) lên MH pop DX AX
ENDM
; MACRO HIEN 1 XAU KI TU |
Trang 15mov cx,1 mov bi,tt mov ah,9 int 10h inc dl mov ah,2 int 10h inc Si jmp Bl Exit B pop dxcx bx ax si ENDM V Kết quả chạy 1 Ề Màn hình giới thiệu Ở màn hình giới thiệu được đặt mode 40*25, va bao gồm 3 xâu kí tự Xâu thứ nhất và thứ ba kết thúc bằng “$” và sử dụng MACRO
“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” ra
mà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 16fm Administrator: rarer ae) Uien Dai Hoc Ha Ha Hai Khoa Gong Nghe Thong Tin
Se
Gac sinh vien thuc hien: 1 Ninh Van Binh 2 Mguyen Sy Danh 3 Dao Hoang Nam 4 Uu Duc Tuan Ph : W9Wh2
An phim hat ki de tiep tuc Con ESC thi ve DOS
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 ra
màn hình DOS) thi man 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 172 Ề Màn hình chức nang
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
Ge Administrator: C:\Windows\system32\cmd.exe - asem =|) eam
CAC CHUC MANG HIEN DANG BINARY SAP REP DAY SO THEO CHIEU GIAM DAN
VA kKRAM TREN MAINBOARD
Hien mot so nguyen Pa dang binary 16 hit
Sap xep day so theo chieu giam dan
May tanh co kRAM tren mainboard khong?
Tro ve man hinh gioi thieu
HAY CHON =
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 I 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
fae Administrator: C:\Windows\system32\cmd.exe - asem [| CE) lS
Trang 194 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_ N7 và “HIEN SO _N” dé 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
EM Administrator: C:\Windows\system32\cmd,exe — asem_ , |x|), aaa
Chuc nang sap xep day so theo chieu giam dan
Hay vao so luong chu so : 5 Hay vao day so : aL 1=6 a L1 1=# aL2 1=3 al3 1=44 al41=12
Cac so vua vao la : b6 F 3 44 12 Day so da sap xep la : 44 12 9 6 3 Go tiep tuc CT tcrk> ?
Trang 204 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 BIOS cho 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 phai tach 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 bit
thứ 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 bít cờ qua đó biết được số lượng kRAM trên mainboard
So luong KRAN co them then maanboard la : k
fin phim bat ky de ve man hinh chuc nang _
Sau mỗi chương trình con, nhân phím “c” đề tiếp tục chương trinh, con nhan phim bat ki dé 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 21LỜ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àng ngày quan tâm, chăm sóc và lo lắng cho chúng con
Trang 22MỤC LỤC