“Hello, World!”程序是一个只在计算机屏幕上打印出“Hello, World!”(英语,意为“世界,你好!”)字串的计算机程序。该程序通常是计算机程序设计语言的初学者所要学习编写的第一个程序。它还可以用来确定该语言的编译器、程序开发环境以及运行环境已经正确安装。 [P"R+$"
Z
)dz
将Hello World程序作为第一个学写的程序,现在已经成为一种传统。该程序最早出现在由Brian Kernighan和Dennis Ritchie写的计算机程序设计教程《C语言程序设计》。 9{V54ue;
=8)q-{p3
以下是用不同语言写成的Hello World程序的几个例子: \m;"KyP+
Ada WXC}Ie
with Ada.Text_Io; use Ada.Text_Io; kVb8 $Sp
procedure Hello is #y%?A;
begin 3RTraF
Put_Line ("Hello, world!"); bAqaf#}e
end Hello; /4n :!6rt
a
uz2n
u6(>?r-
汇编语言 $I-i=:}g
8y,
]>n
x86 CPU,DOS,TASM l+1GA0'JP
MODEL SMALL I7nZ9n|KU
IDEAL (l3P<[[?
STACK 100H 'F@#.Op`
4l*4wx""v
DATASEG +k4SN
HW DB 'Hello, world!$' 0jN?5j
<C9_5Ce~
CODESEG W!BIz&SY:-
MOV AX, @data hup<U+p
MOV DS, AX X6dv+&=?
MOV DX, OFFSET HW Dj9).lgc
MOV AH, 09H s$ 2@ |;
INT 21H *0`oFTJ
MOV AX, 4C00H 'M#'BQQ5
INT 21H Ya)s_Zr7
END &zYo
g.d%z
0-W{(xy@4
x86 CPU,GNU/Linux,NASM +L86w7
;"Hello World" for Linux on Intel 80x86 using nasm (Intel syntax). 2$O@T]
;Enter this into "hello.asm" then type: @ 0RB.-
;"nasm -f elf hello.asm" 6*<=(SQI
;"ld hello.o -o hello" bNG;`VZ%
;"./hello" hd2 X/"
)c#m<_^
section .data ;data section declaration u9*}@{,
msg db 'Hello World!',0AH +89s+4Jn
len equ $-msg ;string length xED`8PCfu
,/;mK_6
section .text ;code section declaration R;_U BQ)
global _start ;entry point (start of execution) |6pNe T[
_start: mov edx,len ;string length 0UmK S\P
mov ecx,msg ;string start >k?/'R
mov ebx,1 ;file handle: stdout S3=M k~_&
mov eax,4 ;sys_write l*|^mx^Q
int 80h ;kernel system call JxP=[>I
aNpeePF)z
mov ebx,0 ;return value w`vJE!4B
mov eax,1 ;sys_exit $GyO+xF
int 80h ;kernel system call ,HEx9*E/s
lMX 2O2 o
d))(hk:
x86 CPU,Windows,MASM32 6s833Tmb&r
.386 N;A#3Ter
.model flat,stdcall pHFh7-vj
option casemap:none x7X"'1U
;Include 文件定义 5O
Ob(
include windows.inc R<gC,eV<=
include user32.inc )*I=>v.Jq
includelib user32.lib dUtxG ~9
include kernel32.inc {6v|d{V+e
includelib kernel32.lib "msCiqF{z
;数据段 nu] k<^I5|
.data WYQJ+z5
szCaption db 'A MessageBox!',0 bh&,*Y6=
szText db 'Hello,world!',0 W>Y8 u8
;代码段 GqI^$5?
.code xa`&/W >
start: 22\Buk}?
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK _F^k>Lq&