ว่ากันเรื่อง Hello World

เวลาที่จะเริ่มเรียนการเขียนโปรแกรม แต่ละภาษาก็มักจะเริ่มให้เขียนโปรแกรมที่เรียกว่า "hello world" กัน
ซึ่งโปรแกรมก็ไม่มีอะไรซับซ้อนแค่พิมพ์คำว่า "hello world" ออกมาที่หน้าจอ console เท่านั้น
ที่นี้ผมก็อยากจะลองเขียนโปรแกรม "hello world" ที่ใช้เนื้อที่ไฟล์น้อยที่สุดหลังจากที่ complie ออกมาแล้ว
ซึ่งก็จะลองทั้งหมด 2 ภาษา

------------------------------------------------------------------------
เริ่มต้นด้วยภาษาซีผมเขียนแบบง่ายๆตามนี้

D:\test>copy con hello.cpp   <-- สร้างไฟล์ hello.cpp โดยพิมพ์จากหน้าจอโดยตรง
#include <stdio.h>
int main(void) {
  printf("hello world\n");
  return 0;
}
^Z     <--- กด Clt+Z
        1 file(s) copied.

D:\test>gcc hello.cpp -o hello  <-- ต้องไป download โปรแกรม c complier มาก่อน ผมใช้ MinGW
D:\test>hello
hello world

ได้ไฟล์ hello.exe มาขนาด 23,308 bytes
07/03/2013  01:11 AM                82 hello.cpp
07/03/2013  01:19 AM            23,308 hello.exe
               2 File(s)         23,390 bytes
------------------------------------------------------------------------

แบบทีสองผมใช้ภาษาแอสแซมบลี เนื่องจากไม่มีตัว complier เลยใช้โปรแกรม debug ที่มากับ windows แทน

D:\test>debug
-a
1419:0100 mov ah,9
1419:0102 mov dx,109
1419:0105 int 21
1419:0107 int 20
1419:0109 db 'hello world$'
1419:0115
-rcx
CX 0000     
:15        <-- จำนวนไบต์ของโปรแกรมในที่นี้คือ 15 (ฐาน 16)
-n hello.com
-w
Writing 00015 bytes
-q

D:\test>hello.com
hello world

ได้ไฟล์ hello.com มาขนาด 21 bytes
07/03/2013  01:29 AM    <DIR>          ..
07/03/2013  01:27 AM                21 HELLO.COM
07/03/2013  01:11 AM                82 hello.cpp
07/03/2013  01:29 AM            23,308 hello.exe
               3 File(s)         23,411 bytes
               2 Dir(s)  71,600,300,032 bytes free
------------------------------------------------------------------------

สรุปเมื่อเขียนด้วยซีจะได้โปรแกรมทีมีขนาด 23,308 bytes
และถ้าเขียนด้วยภาษาแอสแซมบลีจะมีขนาด      21 bytes
จะมีใครที่สามารถเขียนโปรแกรม hello world ที่มีขนาดไฟล์น้อยกว่านี้ได้อีกหรือเปล่าครับ (ไม่ใช้ไฟล์ .bat น่ะ)
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่