浏览代码

test timer

Phil 5 年之前
父节点
当前提交
01a9eef9a3
共有 1 个文件被更改,包括 66 次插入0 次删除
  1. 66 0
      timer.asm

+ 66 - 0
timer.asm

@@ -0,0 +1,66 @@
+SYS_TIMERFD_CREATE equ 0x142
+SYS_TIMERFD_GETTIME equ 0x146
+SYS_TIMERFD_SETTIME equ 0x145
+
+section .bss
+	tfd RESB 4
+	tst RESB 4
+	lt RESB 1
+
+section .data
+	tick equ 2
+	msg db 'tick',0xa
+	msgl equ 5
+
+section .text
+	global _start
+
+_start:
+
+	mov [lt], byte 0x0
+	
+	;prepeare sys_timerfd_create
+	mov eax, SYS_TIMERFD_CREATE
+	mov ebx, 1
+	mov ecx, 0
+	int 0x80
+	
+	;get timer fd
+	mov [tfd], eax
+
+	mov [tst], dword 0x0
+
+	;settime sys_timerfd_settime
+	mov eax, SYS_TIMERFD_SETTIME
+	mov ebx, [tfd]
+	mov ecx, dword 0x0
+	mov edx, tst
+	mov esi, tst
+	int 0x80
+
+poll:
+	;get time
+	mov eax, SYS_TIMERFD_GETTIME
+	mov ebx, [tfd]
+	mov ecx, tst
+	int 0x80
+	
+	mov bx, [tst]
+	sub bx, [lt] 
+	cmp bx, tick 
+	jg  poll		
+
+	mov [lt], bx
+	
+	mov eax, 4
+	mov ebx, 1
+	mov ecx, msg
+	mov edx, msgl
+	int 0x80	
+
+	;jmp poll
+
+exit:	
+	mov eax, 1
+	mov ebx, 0
+	int 0x80