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
2ch
của ngắt int21h
. - Sau khi dùng chức năng
2ch
của ngắtint 21h
thì giờ sẽ được chứa trong thanh ghich
, phút sẽ chứa trong thanh ghicl
, giây chứa trongdh
và 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