Phil 5 年 前
コミット
d645516932
3 ファイル変更52 行追加0 行削除
  1. 19 0
      helloworld.ass
  2. 10 0
      in_out.asm
  3. 23 0
      registers.asm

+ 19 - 0
helloworld.ass

@@ -0,0 +1,19 @@
+section .text
+
+	global _start
+
+_start:
+	mov edx,len	;set message length
+	mov ecx,msg	;set mesage content
+	mov ebx,1	;set file discriptor (stdout)
+	mov eax,4	;set? syscall
+	int 0x80	;call kernel
+
+	mov eax,1	;set sys exit
+	int 0x80	;kernel excute
+
+
+section .data
+msg db 'Hello World!', 0xa ;string
+len equ $ - msg 	;length of msg
+

+ 10 - 0
in_out.asm

@@ -0,0 +1,10 @@
+section .text
+	global _start
+
+_start:
+	mov edx,1	;expect message 1 byte
+	mov ecx,ecx	;set register?
+	mov ebx,1	;std in?
+	mov eax,3	;set call sys_read
+	int 0x80	;kernel exec
+

+ 23 - 0
registers.asm

@@ -0,0 +1,23 @@
+section	.text
+   global _start	 ;must be declared for linker (gcc)
+	
+_start:	         ;tell linker entry point
+   mov	edx,len  ;message length
+   mov	ecx,msg  ;message to write
+   mov	ebx,1    ;file descriptor (stdout)
+   mov	eax,4    ;system call number (sys_write)
+   int	0x80     ;call kernel
+	
+   mov	edx,10    ;message length
+   mov	ecx,st   ;message to write
+   mov	ebx,1    ;file descriptor (stdout)
+   mov	eax,4    ;system call number (sys_write)
+   int	0x80     ;call kernel
+	
+   mov	eax,1    ;system call number (sys_exit)
+   int	0x80     ;call kernel
+	
+section	.data
+msg db 'Displaying 10 stars',0xa ;a message
+len equ $ - msg  ;length of message
+st times 10 db '*'