最短 hello world elf
Posted by tjwei on 星期六, 1月 06, 2007 with 2 comments
很久沒碰 linux 了,剛才玩了一下,看到了一個網頁
http://blog.linux.org.tw/~jserv/archives/001762.html
順便練了一下,由於我幾乎完全不懂組合語言和 elf 結構,所以
只是單純的修改了一下簡單的程式邏輯,改過之後長度從 115 降到 110
要能編譯,參考
http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
並且用上面的程式碼取代其中的
; your program here
應該還可以更短,因為我不太懂組合語言。
http://blog.linux.org.tw/~jserv/archives/001762.html
順便練了一下,由於我幾乎完全不懂組合語言和 elf 結構,所以
只是單純的修改了一下簡單的程式邏輯,改過之後長度從 115 降到 110
xor ebx, ebx ; zero ebx
lea eax, [byte ebx + 4] ; 4: write syscall
lea edx, [byte ebx + 13] ; 13: size of msgtext
inc ebx ; 1: (stdout)
mov ecx,msgtext ; msgtext: (output buffer)
int 0x80 ; syscall (write)
mov eax,ebx ; 1 exit syscal
dec ebx ; 0: successful exit code
int 0x80 ; syscall (exit)
msgtext: db 'Hello World!', 10
要能編譯,參考
http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
並且用上面的程式碼取代其中的
; your program here
應該還可以更短,因為我不太懂組合語言。
Categories: programming
2 意見:
感謝 weijr 前輩指點,受教了。
你太客氣了
張貼留言