“Hello, World!”程序是一个只在计算机屏幕上打印出“Hello, World!”(英语,意为“世界,你好!”)字串的计算机程序。该程序通常是计算机程序设计语言的初学者所要学习编写的第一个程序。它还可以用来确定该语言的编译器、程序开发环境以及运行环境已经正确安装。 (0{Dn5MH
U0&myj 8L
将Hello World程序作为第一个学写的程序,现在已经成为一种传统。该程序最早出现在由Brian Kernighan和Dennis Ritchie写的计算机程序设计教程《C语言程序设计》。 q5f QTV
]#o;`5'
以下是用不同语言写成的Hello World程序的几个例子: R"cQyG4
Ada iOiFkka
with Ada.Text_Io; use Ada.Text_Io; 6n9/`D!
procedure Hello is kV'zAF
v
begin t&?jJ7 (&8
Put_Line ("Hello, world!"); "f91YX_)
end Hello; 2S8;=x}/
v=k+MvX
i}m'#b
汇编语言 " MnWd BS
}&0LoW/
x86 CPU,DOS,TASM RY;V@\pRY+
MODEL SMALL +hRy{Ps/
IDEAL
2E*=EjGV
STACK 100H 8m+~HSIR
+SFFwjI
DATASEG F_@B ` ,
HW DB 'Hello, world!$' e{x>u(
b|i4me@
CODESEG =xk>yw!O)
MOV AX, @data FGVw=G{r
MOV DS, AX |4+'YgO
MOV DX, OFFSET HW m` 1dB%;?
MOV AH, 09H z^9oaoTl
INT 21H o/-RGLzAo
MOV AX, 4C00H 8m0*89HEu
INT 21H 5{=+S]
END /\1'.GR
[n"eD4 )K|
\(Ma>E4PNU
x86 CPU,GNU/Linux,NASM @X/ 1`Mp
;"Hello World" for Linux on Intel 80x86 using nasm (Intel syntax). }3lG'Y#Kpy
;Enter this into "hello.asm" then type: 3@~a)E}T
;"nasm -f elf hello.asm" ilL%
;"ld hello.o -o hello" .gO|=E"
;"./hello" J!Z6$VERy
%R GZu\p
section .data ;data section declaration o*K7(yUL4
msg db 'Hello World!',0AH 0>Y3xNb
len equ $-msg ;string length DuC#tDP
K~:SLCv
E%
section .text ;code section declaration rWr'+v?
global _start ;entry point (start of execution) `l45T~`]$
_start: mov edx,len ;string length c/Pql!h+
mov ecx,msg ;string start [8'?G5/n
mov ebx,1 ;file handle: stdout -mO#HZ Iq
mov eax,4 ;sys_write q^xG%YdPz+
int 80h ;kernel system call 5(<O?#P
{IOc'W-C#2
mov ebx,0 ;return value -nGcm"'6F
mov eax,1 ;sys_exit 4U dk#
int 80h ;kernel system call > TYDkEs0
|X@s {?
vA6`};|
x86 CPU,Windows,MASM32 4b<|jVl\
.386 ;!f='QuA
.model flat,stdcall |uy@v6
option casemap:none WN]k+0#
;Include 文件定义 `)cI^!
include windows.inc b36{vcs~
include user32.inc 2)IM<rf'^
includelib user32.lib p&I>xu8fl
include kernel32.inc A.b^?k%I
includelib kernel32.lib k<*v6
sNs;
;数据段 JWHsTnB
.data #`y[75<n
szCaption db 'A MessageBox!',0 RQ=rB9~:ZN
szText db 'Hello,world!',0 U*+-#
;代码段 syu/"KY^!
.code ^:/c<(DQD
start: faOiNR7;h
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK dEYw_qJ2
invoke ExitProcess,NULL 4D&