Viết chương trình lấy thời gian hệ thống máy tính assembly (giờ, phút, giây và % giây).
Xem thêm:
Liệu máy tính có cổng máy in nối tiếp không?
Floating Point Unit là gì? chương trình kiểm tra FPU bằng ngôn ngữ lập trình assembly
1. Ý tưởng thuật toán
Ý tưởng:
- Đầu tiên ta hiện thông báo “Giờ phút giây của máy tính”.
- Để lấy time ta sử dụng chức năng
2chcủa ngắt int21h. - Sau khi dùng chức năng
2chcủa ngắtint 21hthì giờ sẽ được chứa trong thanh ghich, phút sẽ chứa trong thanh ghicl, giây chứa trongdhvà phần trăm giây được chứa trongdl. Sau đó ta lần lượt hiển thị giá trị của các thanh ghi sau đó dùng MacroCALL_HIEN_SO_Nđể hiển thị giờ trongax, dùng MacroHienStringđể hiển thị thông báo hoặc các kí tự ngăn cách thành phần.
Các MACRO và chương trình con sử dụng:
- HienString: hiện một xâu ký tự kết thúc bằng ‘$’ ra màn hình
- clrscr: Xóa màn hình
- HIEN_SO_N: hiện giá trị có trong AX ra màn hình
2. Code lấy thời gian assembly
INCLUDE lib1.asm
.MODEL small
.STACK 100h
.DATA
header db 13,10,' CHUC NANG GET TIME'
db 13,10,' ------------------'
db 13,10,' Current time is: $'
hc db ':$'
dc db '.$'
thoat db 13,10,' An phim bat ky de ve Main menu$'
.CODE
PS:
mov ax, @data
mov ds, ax
clrscr
HienString header ;Hien thong noi dung dau tien
mov ah,2ch ;Chuc nang lay gio phutvaf giay cua may tinh
int 21h
mov al,ch ;Dua gio tu ch -> al
xor ah,ah ;ah=0
call HIEN_SO_N ;Hien gio
HienString hc ;Hien dau ':'
mov al,cl ;Dua phut tu cl -> al
xor ah,ah ;ah=0
call HIEN_SO_N ;Hien phut
HienString hc ;Hien dau ':'
mov al,dh ;Dua giay tu dh -> al
xor ah,ah ;ah=0
call HIEN_SO_N ;Hien giay
HienString dc ;Hien dau '.'
mov al,dl ;Dua % giay tu dl -> al
xor ah,ah ;ah=0
call HIEN_SO_N ;Hien % giay
HienString thoat
mov ah, 1
int 21h
cmp al,'c'
jne Exit
jmp PS
Exit:
mov ah, 4ch
int 21h
INCLUDE lib2.asm
END PS
3. Kết quả chạy chương trình lấy thời gian hệ thống máy tính

Trên đây là ý tưởng và code chương trình lấy thời gian hiện tại của máy tính assembly. Cảm ơn bạn đã tham khảo lập trình assembly trên ttnguyen.net.
Bài viết liên quan:
viết chương trình hello world assembly
chương trình gộp 2 tệp assembly