“Hello, World!”程序是一个只在计算机屏幕上打印出“Hello, World!”(英语,意为“世界,你好!”)字串的计算机程序。该程序通常是计算机程序设计语言的初学者所要学习编写的第一个程序。它还可以用来确定该语言的编译器、程序开发环境以及运行环境已经正确安装。 'ZAl7k .
Q?/qQ}nNw
将Hello World程序作为第一个学写的程序,现在已经成为一种传统。该程序最早出现在由Brian Kernighan和Dennis Ritchie写的计算机程序设计教程《C语言程序设计》。 r>cN,C
njckPpyb@
以下是用不同语言写成的Hello World程序的几个例子: M$U Zn
Ada OU'm0Jlk
with Ada.Text_Io; use Ada.Text_Io; ;bRyk#
procedure Hello is >p
9~'
begin B/Z-Cpz]
Put_Line ("Hello, world!"); D-4{9[
end Hello; ~Aw.=Yi=
OZ,Xu&N
6os{q`/Q])
汇编语言 ($'5xPb
]-cSTtO
x86 CPU,DOS,TASM Kjt\A]R%
MODEL SMALL +0g L!r
IDEAL l;i/$Yu7
STACK 100H -mw`f)?Ev
{[dY$
DATASEG _)[UartKx
HW DB 'Hello, world!$' vp(ow]Q
Ticx]_+~T
CODESEG bW^C30m
MOV AX, @data {Bz E
MOV DS, AX 0sI7UK`m
MOV DX, OFFSET HW FaQc@4%o
MOV AH, 09H uYC1}Y5N
INT 21H nYE%@Up
MOV AX, 4C00H OXI>`$we
INT 21H ;b!qt-;.<
END p v]" 2'aQ
# p2`9o
*" +u^
x86 CPU,GNU/Linux,NASM ZQ{-6VCjl
;"Hello World" for Linux on Intel 80x86 using nasm (Intel syntax). {A'_5 X9
;Enter this into "hello.asm" then type: iTVZo?lVo
;"nasm -f elf hello.asm" T{)_vQ
;"ld hello.o -o hello" v?_L_{x;W
;"./hello" (D0\uld9
tE,&
G-jU
section .data ;data section declaration EYA=fU
msg db 'Hello World!',0AH 7=gcdfW,;x
len equ $-msg ;string length UCJx{7
9_fbl:qk;\
section .text ;code section declaration Up5 |tx7
global _start ;entry point (start of execution) E8BIb 'b;
_start: mov edx,len ;string length &O#,"u/q`
mov ecx,msg ;string start
fj'7\[nZ
mov ebx,1 ;file handle: stdout )3k?{1:
mov eax,4 ;sys_write <QD[hO^/
int 80h ;kernel system call JJK-+a6cX
Z@}qL1
mov ebx,0 ;return value bvS6xU-
J
mov eax,1 ;sys_exit 3~:9ZWQ/
int 80h ;kernel system call N-W>tng_x
[0vqm:P
IKV!0-={!z
x86 CPU,Windows,MASM32 " =6kH,
.386 nJ h)iQu
.model flat,stdcall 3S"
/l
option casemap:none 9g]%}+D
;Include 文件定义 c(aykIVOo
include windows.inc FLXn%/
include user32.inc &x7iEbRs
includelib user32.lib F^81?Fi.
include kernel32.inc 1)5$,+~lL
includelib kernel32.lib tAsap}(
;数据段
N'i)s{'
.data [iZH[7&j
szCaption db 'A MessageBox!',0 DLuaM?7
szText db 'Hello,world!',0 dz!m8D0
;代码段 zl(o/n
.code 5XV|*O;
start: -Nn<pq
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK t&